精华内容
下载资源
问答
  • Cocos2d-x布局

    千次阅读 2013-05-27 14:14:10
    创建游戏场景,在场景上添加一个或者多个层,在指定层上添加精灵、菜单、文字,为精灵和文字执行某个动作(移动),检测玩家触屏...它是构成游戏的画面,一般是先绘制一个场景,然后在场景中叠加或组合一个或者多个层。

    创建游戏场景,在场景上添加一个或者多个层,在指定层上添加精灵、菜单、文字,为精灵和文字执行某个动作(移动),检测玩家触屏事件,开启任务调度执行碰撞检测和更新数据,通过导演类管理和切换场景等等。

    (1)场景(CCScene)

    就是游戏的关卡,也可以表示一个界面。你可以只创建一个场景也可以创建多个场景。它是构成游戏的画面,一般是先绘制一个场景,然后在场景中叠加或组合一个或者多个层。

    (2)层(CCLayer)

    我们的游戏内容一般是显示在层上的,通过叠加多个层来实现不同的效果。可以设置层的叠加顺序,处理事件响应机制。cocos2d-x提供了一些公用层:菜单层,颜色层等。每一层可以包含各式各样的内容要素:文本、精灵、地图等。

    (3)精灵(CCSprite)

    精灵是整个游戏中的核心对象,如:敌机、英雄、子弹等,精灵就是一些可以不断变化的图片,而所谓游戏,就是玩家操作一个或多个精灵与其他玩家或者系统控制的精灵进行互动。

    (4)导演(CCDirector)

    cocos2d-x中导演类CCDirector是个单例,这里主要用来管理和显示场景的,还提供一些常用的属性,如获取窗口的宽高等。

    (5)任务调度机制

    通常在游戏中需要实现一个计时器,以指定的时间间隔不停的调用某个指定的回调函数,来改变屏幕的显示或者进行数据处理。cocos2d-x提供了内置的任务调度机制,即CCNode的schedule成员函数。如:

    1
    this->schedule(schedule_selector(GameScene::update), 1.0f);

    每隔1秒执行一次update函数,如果不指定时间则每一帧执行一次。

    (6)动作(CCAction)

    就是精灵拥有的动作,如:子弹移动、飞机飞行等。


    展开全文
  • 操作游戏场景画面大小: 代码: void UCommonBPLibrary_Core::AdjustViewportSize(UObject * WorldObjectContext, FMargin margin) { UE_LOG(LogTemp, Log, TEXT(" AdjustViewportSize ")); if ...

    重定义GameViewport布局(Slate)

     

    操作游戏场景画面大小:

    代码:

    void UCommonBPLibrary_Core::AdjustViewportSize(UObject * WorldObjectContext, FMargin margin)
    {
        UE_LOG(LogTemp, Log, TEXT(" AdjustViewportSize "));
        if (WorldObjectContext->GetWorld() &&
            /*GetWorld()->WorldType == EWorldType::Game &&*/
            GEngine && GEngine->GameViewport)
        {
            FVector2D ViewportSize;
            GEngine->GameViewport->GetViewportSize(ViewportSize);
    
            // The GameViewport takes some time to initialize
            if (ViewportSize.X > 0 && ViewportSize.Y > 0)
            {
    
                FMargin relativeMat = FMargin
                {
                    margin.Left            /  ViewportSize.X    ,
                    margin.Top            /  ViewportSize.Y    ,
                    1 - margin.Right    /  ViewportSize.X    ,
                    1 - margin.Bottom    /  ViewportSize.Y
                };
    
                GEngine->GameViewport->SplitscreenInfo[0].PlayerData[0].OriginX = relativeMat.Left;
                GEngine->GameViewport->SplitscreenInfo[0].PlayerData[0].OriginY = relativeMat.Top;
                                                                                 
                GEngine->GameViewport->SplitscreenInfo[0].PlayerData[0].SizeX    = relativeMat.Right;
                GEngine->GameViewport->SplitscreenInfo[0].PlayerData[0].SizeY    = relativeMat.Bottom;
            }
        }
    }

    蓝图:

    Margin是控制窗口的位置

    配合左侧WebUI,实现的画面效果:

     

    参考链接:https://www.cnblogs.com/linqing/p/10979452.html

    展开全文
  • 布局,这个在服务端变成是没有的,也是服务端的人学习client的...现有一个场景的概念,就像一个画布,然后上面分一层一层。能够单独某一层进行操作。显示的时候,能够觉得画面是从下往上一层一层堆上去。层里面有...

    布局,这个在服务端变成是没有的,也是服务端的人学习client的一道坎吧。

    曾经用cocos2d-x写小游戏的时候就是这个非常难懂,或者能用,可是理解不多的话,非常难写出好的布局,难以适合商业化的应用。

    游戏的布局有点像用photoshop画画的感觉。现有一个场景的概念,就像一个画布,然后上面分一层一层。能够单独某一层进行操作。显示的时候,能够觉得画面是从下往上一层一层堆上去。层里面有非常多精灵,精灵就是我们看到的那些会动的人物,建筑,怪什么的。这大概是cocos2d的设计思想吧。

    我一直认为,学编程,一定要想理解人家的设计思想,理解了,跟着思想走。一路顺畅。

    不能理解。就是一个大迷宫,这里一扇门,那边一扇门,好像哪里都能去。都能通向成功,可是有些路径看似能实现,实际上事半功倍。相同,我们做功能,做应用,也是一样,先想好思路,然后才干动手去做。也许这就是大学的时候学的概要设计吧,一直这么做,可能当年学的理论还是有点用的。

    临时先这么想。先在去看看别人的博客吧。最后,可能在后面几个文章里面。再回过头来总结对比一下。

    布局是什么?

    布局是Android程序中基础的容器,能够把各种控件放进去,自己主动按特定的方式拍板。

    布局方式有哪些?

    LinearLayout, RleativeLayout, TableLayout, FrameLayout 等,可以通过XML方式类声明。或者编码的方式。通过XML声明的方式可以更好地让代码和视图分离,改动后不须要编译,更easy支持不同屏幕大小。


    讲到这里,大家应该明确,布局单独存在的时候是看不到的,须要通过其它组件来表现。既然是入门,一上来就跟我说这些抽象的东西,是在难以费解。

    RleativeLayout:

    先来几个能看到的,我想想。button、文字、输入框。应该是比較简单,能看得到的。我们先来看看能看见的东西吧。

    先看看布局文件,文件放在哪里了?来看看project结构说明


    布局文件在res/layout/文件夹以下,activity_hello_world.xml.这里顺便说明一下。文件名称必须用小写。不同单词用‘_’分开。

    打开文件,点击图中的Graphical Layout能够看到一个可视化的布局界面,能够选择不同组件,然后拖拽摆放。

    我们能够看到已经有一个字符串在上面了“Hello world!”。

    如今加多一些文字,button,输入框看看吧。

    这样应该能显示出布局的作用。


    拖拽的时候,会出现各种对齐其它组件的提示。我随便摆。然后就非常乱了。


    随便拉了一些button和文字。拉过去就会显示出来,本来想拉个输入框的。可是好像报错。可能有些操作不正确。只是今天的主题的布局,所以先不研究文本、button这些控件的细节。执行程序后界面跟上图一样,就不上图了。

    上图的文本。button乱糟糟的,是我任意拉的,好像放在哪里就哪里了。

    我们先看看布局文件的xml代码怎样。为什么会是这种。

    <!--相对布局方式,能够指定子元素相对于父元素或者其它子元素的位置。

    这个是比較经常使用的布局之中的一个。

    xmlns:android xml的命名空间。通过这里告诉Eclipse相关的属性 android:layout_width 当前这个布局的宽度,android:layout_height 当前这个布局的高度,都是match_parent。即是填充父元素。这个布局已经是最外层了。所以填充了整个手机屏幕。 tools:context 关联指定的activity,普通情况下一个布局文件能够在多个地方被用到。这么写是声明特定的上下文。假设指定了主题还能够进行渲染。 --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" > <!-- 文本, "wrap_content"自适应大小,强制显示文本的所有内容。这里宽高都是了。 android:text文本内容,这里填了@string,指示内容在res/values/strings.xml内,名称为hello_wrold的属性。

    android:id定义这个TestView的id。

    会在R.java内生成相应的id。写java代码的时候,能够通过R.id.textView2来获取这个文本 --> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" android:id="@+id/textView2"/> <!-- 这是手动拉进来的TextView,跟上面的差点儿相同。还多了一些属性。 layout_alignParentLeft相对于父控件是否左对齐。 layout_below设置了为某个控件的以下。这里填了在textView2以下。 android:text这里直接填了文本的内容,能够通过id,配在strings.xml中--> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" android:text="TextView" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="16dp" android:text="Button" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/button1" android:layout_marginLeft="27dp" android:layout_toRightOf="@+id/button1" android:text="Button" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button2" android:layout_alignBottom="@+id/button2" android:layout_toRightOf="@+id/button2" android:text="Button" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/button2" android:layout_below="@+id/button1" android:layout_marginRight="32dp" android:layout_marginTop="23dp" android:text="Medium Text" android:textAppearance="?

    android:attr/textAppearanceMedium" /> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button3" android:layout_below="@+id/textView3" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> </RelativeLayout>

    通过这个xml文件,我们能够看到layout组件跟TextView、Button,有非常多相似的地方。

    他们有非常多共同的属性。这些属性是有默认值的,非常多是能够不配置的。并且非常多,建议用到了再去百度。

    总结一下,如今接触到的属性主要有显示的文字内容,摆放位置。以及id。

    如今有了初步的印象,能够看看其它的布局了方式了(差点忘了今天是说布局的。呃。。。


    LinearLayout:

    直接把RleativeLayout改了。layout_alignParentLeft这些明显是相对位置的属性,所有提警告说不合法了。把那些明显是相对布局的东西删除掉后。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    <!--android:orientation为方向属性。vertical为垂直排列。所以layout组件会把全部的子元素,都竖直排列出来。

    --> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" android:id="@+id/textView2"/> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/text1" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/text2" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/text3" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/text4" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/text5" /> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/text6" /> </LinearLayout>

    能够看到,非常整齐了,竖着拍成一排了。

    TableLayout:

    感觉上这个布局就跟HTML的table一样,把全部的组件弄成一个一个的表格。

    它的元素分成一行一行的,TableRow。再以下才是详细的一个个元素。子元素的宽度是不可控的,高度能够依据自身变化。

     
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
      
    <!--用TableRow来分成一行一行的。-->
            <TableRow 
                android:id="@+id/tableRow1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
    
                <Button
                    android:id="@+id/button4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Button1" />
    
                <Button
                    android:id="@+id/button5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Button2" />
    
                <Button
                    android:id="@+id/button7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Button3" />
     
    
            </TableRow>
    
            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
    
                <TextView
                    android:id="@+id/textView5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView" />
    
                <TextView
                    android:id="@+id/textView6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView" />
    
                <TextView
                    android:id="@+id/textView7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Large Text"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
    
                
    
            </TableRow>
    
            <TableRow
                android:id="@+id/tableRow3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
    
                <TextView
                    android:id="@+id/textView9"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView" />
    
                <TextView
                    android:id="@+id/textView10"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Large Text"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
    
                <Button
                    android:id="@+id/button8"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Button" />
     
    
            </TableRow>
    
            <TableRow
                android:id="@+id/tableRow4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </TableRow> 
    
    </TableLayout>
    


    FrameLayout:

    所有的子元素将会固定在屏幕的左上角;不能为FrameLayout中的一个子元素指定一个位置。但能够通过子控件自身控制其位置。

    后一个子元素将会直接在前一个子元素之上进行覆盖填充。把它们部份或所有挡住(除非后一个子元素是透明的)

    此布局通经常使用于游戏或者处理一些画廊程序。

    从下图能够看出。三个button都被叠加在一起了。


     
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
      
    
     
          <Button
              android:id="@+id/button4"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Button1" />
    
          <Button
              android:id="@+id/button5"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Button2" />
    
          <Button
              android:id="@+id/button7"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Button3" />
    
    </FrameLayout>
    

    布局临时就讲到这里,由于是入门。准确来说是让我自己入门。不是必需深究,最重要是了解layout是什么,有个大致了解,会用,这才是学习的第一步。建议大家把代码拷贝到自己的Eclipse上面看看。可以理解更深入。



    转载于:https://www.cnblogs.com/clnchanpin/p/7191342.html

    展开全文
  • 系统通过画面及声音特效引导用户发现火情并开始逃生前期相关应急操作。 2、VR家庭火灾逃生 100%还原现场环境,体验者进入系统,从自救-应急处理-逃生等各方面沉浸式体验。 3、VR家庭火灾隐患排查 家庭易发生...

    VR火灾系统多场景选择

    我们致力于扎根行业、深入场景进行产品设计和创新,为消防安全构建完美的解决方案。

    1、VR校园火灾逃生

    系统通过画面及声音特效引导用户发现火情并开始逃生前期相关应急操作。

     

    2、VR家庭火灾逃生

    100%还原现场环境,体验者进入系统,从自救-应急处理-逃生等各方面沉浸式体验。

     

    3、VR家庭火灾隐患排查

    家庭易发生的隐患点进行逐排查,寓教于乐,并且自带评分功能考核成绩。

     

    4、VR商场火灾逃生

    根据商场布局进行环境设计,事故发生后通过引导教会体验者火灾事故处理方法。

     

    5、VR办公室火灾逃生

    系统通过画面及声音特效,引导用户发现火情并开始逃生前期相关应急操作。

     

    6、VR宿舍火灾隐患排查

    让体验者对宿舍内易发生的隐患点,进行逐个排查,寓教于乐,并且自带评分功能考核成绩。

    等等....

    展开全文
  • 协调布局CoordinatorLayout能够让内部的子控件互相配合着移动,这跟以往孤立的控件运动截然不同,协调运动的结果,意味着App画面更加流畅、自然,也更符合日常生活中的动作场景。如果你对CoordinatorLayout的用法还...
  • 场景中相机所渲染的游戏画面,是游戏发布后玩家所能看到的内容 层级视图(Hierarchy) 用于显示当前场景中所有游戏对象的层级关系 项目视图(Project) 整个工程中所有可用的资源,例如模型、脚本等 检视视图...
  • CSS 框模型( Box module )

    2016-05-31 17:04:00
    布局是讲在电影画面构图中,对环境的布置、人物地位的调度、人物之间的关系、人物和景物的关系等的安排。大同小异,CSS 的布局也是一样。 CSS 的布局,包含两个大部分: 元素:元素及其组成,类似电影布局中人物...
  • 布局是讲在电影画面构图中,对环境的布置、人物地位的调度、人物之间的关系、人物和景物的关系等的安排。大同小异,CSS 的布局也是一样。 CSS 的布局,包含两个大部分: 元素:元素及其组成,类似电影布局中人物...
  • unity3D的界面并不复杂,界面的布局也可以通过Layout下拉列表进行...2、游戏面板:上图最左侧下半部分,该面板显示的是游戏运行时的画面,即玩家直接看到的画面,可以根据游戏面板的效果在场景面板进行相应的调整...
  • 游戏总共有分开始场景(游戏初始场景)、输入检测、碰撞检测、胜负判定、结束画面(关卡选择)五大模块; (1)游戏场景 基于C语言的游戏场景搭建分为控制台输出界面与GUI图像绘制界面两类;此次短训讲解控制台输出...
  • unity3D界面介绍

    2018-08-06 12:42:00
    unity3D的界面并不复杂,界面的布局也可以通过Layout下拉列表...2、游戏面板:上图最左侧下半部分,该面板显示的是游戏运行时的画面,即玩家直接看到的画面,可以根据游戏面板的效果在场景面板进行相应的调整。3、...
  • 新手指引这种东西应该是从游戏开始的,游戏和游戏之间在操控上和画面布局上确实差别很大,用户交互场景非常复杂。特别如果是网游的话,操作不当的情况下很容易给玩家造成损失,这样会带来挫败感。所以,在比较复杂的...
  • 设计中常见八个构图类型

    千次阅读 2020-04-17 16:54:44
    一、中心型版式 概念:文案和主体居页面中心靠拢...特点:画面规整,醒目大方,讲究平衡和呼应的布局场景:项目气质表达稳定/庄严/整齐/安宁/沉静/古典 三、分割型版式 概念:利用分割线/文字/色块分割。 特点:...
  • JAVA游戏《坦克大战》(一)

    千次阅读 2019-06-17 15:49:59
    JAVA游戏《坦克大战》(一) ...游戏场景布局 游戏的整体都是使用图片进行加载展示的,图片可以上网找并进行ps处理,也可以简单的使用纯背景颜色搭建一个画面简单的游戏。 public class tankedz e...
  • 基本布局系统,它将在画布上绘制UI元素(矩形,文本,子画面),并将此画布呈现在单独的Three.js场景中的四边形上。 用法 一旦确定已加载three.js和three-ui,就可以轻松上手。 // Setup THREE.WebGLRenderer ...
  • 如果是为了促销活动,就要强化价格和折扣力度,同时将描述性文字和元素合理布局,补充信息的同时让画面更有层次。下面是优图网带来的很适合大促活动的PSD素材模板,想要图层中的任意元素,只要选择该图层,直接拖
  • reactManagerTemplate-源码

    2021-05-11 07:51:45
    保持简洁画面 增加很多在实际项目开发中用到的功能(鉴权,签名,列表查询,表单提交等等) 依赖模块 react@15.5.0 react-router@3.0.2(react路由,4.x的差异还是比较大,暂时还是3.x的版本) antd@2.9.3(蚂蚁金服开源的...
  • 然后按照Ext JS的开发顺序,首先讲解了页面的布局设定,接着详细讲解了各种常用组件的使用方法,并对实际开发中常用的画面场景进行了总结,最后通过完整的示例演示了Ext JS+REST+Spring+Hibernate的整合方案。...
  • 然后按照Ext JS的开发顺序,首先讲解了页面的布局设定,接着详细讲解了各种常用组件的使用方法,并对实际开发中常用的画面场景进行了总结,最后通过完整的示例演示了Ext JS+REST+Spring+Hibernate的整合方案。...
  • 然后按照Ext JS的开发顺序,首先讲解了页面的布局设定,接着详细讲解了各种常用组件的使用方法,并对实际开发中常用的画面场景进行了总结,最后通过完整的示例演示了Ext JS+REST+Spring+Hibernate的整合方案。...
  • 然后按照Ext JS的开发顺序,首先讲解了页面的布局设定,接着详细讲解了各种常用组件的使用方法,并对实际开发中常用的画面场景进行了总结,最后通过完整的示例演示了Ext JS+REST+Spring+Hibernate的整合方案。...
  • 有图全媒体设计云平台能够更快、更轻松地高效设计用于印刷或屏幕显示的页面布局。能够帮您优化设计和排版像素的多功能桌面出版应用程序。创建用于打印、平板电脑和其他屏幕中的优质和精美的页面。各种功能组件能够...
  • 快意编程 EXT JS Web开发技术详解.pdf

    热门讨论 2013-03-08 15:37:48
    然后按照Ext JS的开发顺序,首先讲解了页面的布局设定,接着详细讲解了各种常用组件的使用方法,并对实际开发中常用的画面场景进行了总结,最后通过完整的示例演示了Ext JS+REST+Spring+Hibernate的整合方案。...
  • 1.2.4 画面比较混乱的幻灯片 1.2.5 只突出标题的幻灯片 1.2.6 难以说明内容的幻灯片 1.2.7 容易引起视觉疲劳的图表幻灯片 1.2.7 背景颜色过于鲜亮的标题幻灯片 第2章 演示文稿的色彩和布局设计 2.1 色彩设计基础 ...
  • 强烈推荐开发者去参考目前已运营的商业游戏,利用浏览器缓存查看它们的资源布局、配置存储、压缩加密以及动画的处理手法等等,高手均诞生于普通人之中,只是看得多了,做的多了就成了师傅,尔耳。
  • Android 上百实例源码分析以及开源分析 集合打包4

    千次下载 热门讨论 2012-07-10 21:54:03
    ContactsPositionOverlay 接触者的位置显示物,Overlay的子类,主要负责在地图上显示自定义图像,内置滚动与否以及图像大小改变与否,在地图上话画在线联系人以及场景等。 ContactsUpdaterBehaviour主要表现在其设置...

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

场景画面布局