Questions tagged «gui»

图形用户界面。用于描述玩家可用于与游戏互动的工具的术语。

2
在GUI中,应该在按下或释放按钮时处理输入吗?
在我们游戏的菜单系统(选择级别,选项等)中,玩家按下游戏板上的a按钮进入下一个屏幕。我对菜单系统进行了编码,以等待按钮被释放后再执行任何操作(即显示下一个屏幕)。最近的一些游戏测试反馈建议我们采取相反的方式:按下按钮后立即采取措施。我很好奇,这种处理的标准方式是什么,它甚至会有所作为吗?
12 input  gui 

1
将物理和游戏逻辑与UI代码分开
我正在研究一个简单的基于块的益智游戏。 游戏过程由游戏区域中的许多移动块组成,因此这是一个简单的物理模拟。但是,我认为我的实现还远远不够理想,我想知道您是否可以为我提供任何有关如何更好地实现的建议。 我将代码分为两个区域:游戏逻辑和UI,就像我处理许多益智游戏一样: 游戏逻辑负责游戏的一般规则(例如国际象棋中的正式规则系统) UI显示游戏区域和棋子(例如棋盘和棋子),并负责动画(例如棋子的动画移动) 游戏逻辑将游戏状态表示为逻辑网格,其中每个单位是一个单元格在网格上的宽度/高度。因此,对于宽度为6的网格,可以将宽度为2的块移动四次,直到其与边界碰撞。 UI会获取此网格,然后通过将逻辑大小转换为像素大小(即,将其乘以一个常数)来绘制它。但是,由于游戏几乎没有任何游戏逻辑,因此我的游戏逻辑层[1]除了碰撞检测之外没有其他工作。运作方式如下: 玩家开始拖动一块 用户界面要求游戏逻辑确定该棋子的合法移动区域,并让玩家将其拖到该区域内 玩家放手 UI将样片捕捉到网格(以便它位于有效的逻辑位置) UI告诉游戏逻辑新的逻辑位置(通过mutator方法,我宁愿避免) 我对此不太满意: 我正在为我的游戏逻辑层而不是UI编写单元测试,结果所有棘手的代码都在UI中:阻止该部分与其他对象或边界碰撞并将其捕捉到网格中。 我不喜欢UI告诉游戏逻辑有关新状态的事实,我宁愿让它调用movePieceLeft()方法或类似的方法,就像我在其他游戏中一样,但是我对这种方法没有了解,因为游戏逻辑对用户界面中可能发生的拖动和捕捉一无所知。 我认为最好的办法是摆脱游戏逻辑层,改为实现物理层。我对此有一些疑问: 这样的物理层是常见的,还是让游戏逻辑层更典型地做到这一点? 捕捉到网格和片段拖动代码是属于UI还是物理层? 这样的物理层通常可以与像素大小或某种逻辑单位(例如我的游戏逻辑层)一起使用吗? 我曾经在游戏的代码库中看到过基于事件的碰撞检测,即玩家只需拖动棋子,UI就会顺从地渲染并通知物理系统,物理系统将调用onCollision()方法一旦检测到碰撞,就会在工件上撞上。更常见的是什么?这种方法还是先要求法律流通领域? [1] 层可能不是我所要表达的正确词,但是子系统听起来有些夸大其词,而类却是错误的,因为每一层都可以包含多个类。

3
制作主菜单系统的最佳方法是什么?
我知道,将鼠标移到按钮上方时,使按钮突出显示很容易,但是在子菜单中,我有点卡住了。任何人都有一些最好的方法来获得带有子菜单的主菜单?(例如,单人游戏->载入保存->保存1-5?->开始游戏等)
12 gui 

9
如何处理GUI元素?
注意:我计划制作自己的GUI系统。这对于学习,轻量级,只有我需要的部分,与游戏的联系等将非常有用。 我在考虑该怎么做。我的意思是: 单选按钮 在此处输入文本框 纽扣 滑杆 选框 我还没有考虑如何制作它们。但是更多的是他们将如何发展。 理念 我希望每个州都需要东西,所以几乎所有州都有一个元素容器。每个元素都是一个GUI件。 这些都有位置,图形等。 我更坚持的是他们的逻辑。 我的想法是,允许模块化和简单性是避免使用MainMenuStartButton。一个OptionsOneBackButton等等,而不是能够做Slider slide1; 或按钮启动; 取而代之的是,每个函数都将具有boost :: function到GUI名称空间中的函数,例如Gui :: StartButtonClick或GUI :: ColourSliderHover。 我只是想知道这是否会异常缓慢。 因此,有没有简单,简单的方法来制作游戏的GUI?没有Qt,wxWidgets或其他任何东西。
12 c++  architecture  gui 

1
如何使字体大小与屏幕分辨率匹配?
因此,我正在使用LibGDX进行游戏,但遇到了问题。 为了使我的游戏适合大多数分辨率,我为每个高宽比创建了一个基础资产,例如主菜单背景图像,并以800X600(4:3),1280X720(16:9)等进行制作。 现在,我正在尝试将TextButtons纳入游戏,以供选择;我的问题是我无法弄清楚哪种字体大小与哪种屏幕分辨率匹配。有没有办法解决这个问题,还是我必须逐一检查我拥有的每个分辨率,然后手动将文本与该分辨率匹配?

2
填充宽度或高度的Unity UI正方形
我正在尝试创建一个具有以下要求的板: 它应该是正方形的。 它应适合可用的宽度或高度。 它应在画布中居中。 可以根据需要将其包装到尽可能多的其他中间画布中。 我在玩锚,但找不到任何组合。我能想到的唯一解决方案是为容器编写某种“ OnResize”脚本并以编程方式设置板子的大小。 这是原始布局。(1)是BoardCanvas。(2)是董事会。 我希望如果屏幕变高,正方形会增大,但仍然是正方形: 或减少: 但是,尽管前面的示例捕捉到了顶部和底部边缘,但我也希望如果垂直空间变得比可用宽度高,那么正方形将根据左右边界来限制其大小: Q1:有没有办法用锚/枢轴做到这一点?如果可行,我可以在BoardCanvas和Board本身之间创建中间画布。 Q2:如果是这样,我应该在哪里放置锚?我需要中间物体吗? 问题3:如果不是,编写脚本解决方案吗?画布上是否有任何要处理的OnResize?我在列表中看不到任何调整大小的事件,但也许我不知道在哪里寻找它。我觉得在每个帧上对其进行测试似乎有点过大,事件驱动似乎更好。 谢谢!

5
为什么在Vector3s中不能使用运算符'> ='?
我正在尝试获得一个矩形,以便在我称为_positionA和的两个位置之间移动_positionB。两者都是类型Vector3。矩形移动得很好。但是,到达时_positionB它不会像应该的那样朝相反的方向移动。 我回到代码中看一看。我得出的结论是,随着对象的移动,if代码中的语句错过了rects位置等于的框架_positionB。如果rects的位置大于或等于, 我决定将代码修改为反向_positionB。我的代码不太长,因此我将在下面显示它: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
如何在Unity 5中检测UI图像的鼠标悬停?
我有一幅图像,可以将其设置为四处移动以及放大和缩小。麻烦的是可以在场景中的任何位置进行缩放,但是我只希望在鼠标悬停在图像上时进行缩放。我尝试使用OnMouseEnter,OnMouseOver,事件触发器,所有三个没有对撞机,带对撞机,带触发器对撞机的触发器,以及所有这些在图像本身和空游戏对象上使用的触发器。但是这些都不起作用...所以我绝对很沮丧...有人可以在这里帮助我! 这是我的脚本: private float zoom; public float zoomSpeed; public Image map; public float zoomMin; public float zoomMax; void Update () { zoom = (Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * zoomSpeed); map.transform.localScale += new Vector3(map.transform.localScale.x * zoom, map.transform.localScale.y * zoom, 0); Vector3 scale = map.transform.localScale; scale = new Vector3(Mathf.Clamp(map.transform.localScale.x, zoomMin, zoomMax), Mathf.Clamp(map.transform.localScale.y, …
9 unity  c#  gui  image  mouse 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.