Articles of 菜单

根据移动的物理像素计算速度/时间

在我的游戏中,我整合如下:(请假设所有variables被声明) sprite.xTimeInSeconds = 5.0; //Time in seconds it should take this object to cross screen sprite.xVelocity = 1f/xTimeInSeconds; 然后我像这样移动它: sprite.gridX+=sprite.xVelocity*dt; sprite.x=sprite.gridX*screenWidth; 然后我只是在这些坐标上呈现精灵: sprite.draw(); //Uses sprite's internal 'x' which was set above 所以,游戏中的所有东西都能正常工作 – 也就是说。 所有的移动都可以正确地缩放,不管是什么设备,但是现在我正在尝试为自己的菜单编写自己的滑动触摸控制系统。 菜单确实起作用 – 用户可以将手指放在屏幕上,上下移动,当他们松开手指时,菜单保持滚动(*见下文)。 如果他们再次按下手指,滚动将立即停止,正如人们所期望的那样。 我唯一遇到的问题是如何在用户释放手指时“减速”滚动。 目前,它保持相同的速度滚动,直到达到限制或用户点击屏幕停止。 在我的触摸滚动方法中,我只是确定用户手指移动了多less,然后移动相同数量的对象。 我需要知道(而且不能弄清楚),我怎么能 – 只知道移动像素的数量,找出上面的“时间”variables? (一旦我有了这个,我可以在所有设备上按比例减速)。

可点击2D元素的观察者模式?

所以我现在正考虑在一个非常简单的DirectX游戏中处理和实现可点击的2D菜单元素的最佳方式。 我非常喜欢让订阅者获得通知的事件(例如鼠标点击)。 我现在的问题是:在哪里以及如何确定哪个用户通过点击鼠标得到通知? 出版商是否了解订户的所有位置数据? 如果发布者只是通知所有的2D菜单元素,以便他们需要处理这个事件(检查点击的位置是否与他们自己的维度相交)? 这是一个好主意吗? 如前所述,这将是一个非常基础的游戏,所以性能不应该成为真正的问题。 不过,我总是喜欢使用一些最佳实践,所以我至less要学习一些部分(因此我不会实现一个完整的GUI系统,只有用户部分)。 谢谢!

如何使用Unity在C#中创建一个alignment滚动菜单

我正在尝试创建一个ScrollMenu,可以捕捉它的物品。 问题是它不会捕捉到物品。 实际上,它会自动滚动到最后一个项目,并拒绝滚动到最接近中心的项目。 我试过这个代码,但我认为问题是在第16行。代码有什么问题? 很感谢任何forms的帮助。 PS:我意识到有一个空的游戏对象比较最接近它。 它不是滚动面板的孩子。 private void Start() { int charLength = characters.Length; distance = new float[charLength]; distanceBetweenCharacters = 200; } private void Update() { for (int i = 0; i < characters.Length; i++) { distance[i] = center.transform.position.y – characters[i].transform.position.y; } float minDistance = Mathf.Min(distance); Debug.Log(distanceBetweenCharacters); for (int a = 0; a < […]

菜单的实施

这个问题已经有一个或多个答案,但是与我的目标不符。 我正在寻找一种可以代表游戏整个“菜单树”的方法。 假设我有一个游戏(一个应用程序)。 开始时,用户看主菜单,其中包含以下项目:设置,级别,信息和退出。 每个项目是一个子菜单。 我怎样才能保存这个结构? 我find的解决scheme是创建一个文本文件,其中包含菜单树和他的graphics表示(例如button的位置,颜色,菜单项,ecc ..)。 所以我的应用程序读取这个文件并在屏幕上绘制菜单,这样可以避免在我的源代码中定义菜单树结构的麻烦。 你对我的解决scheme有什么看法? 可以考虑吗? 如果不是你的提示是什么? 编辑: 我意识到我的问题是不完整的,没有更多的细节。 我目前正在使用SFML 2.4.2(C ++)。 我知道这不是很好,但它很简单,高效,适合我的目标。

使用Libgdx的侧面菜单

我想这样做,当玩家按下开始时,一个侧面菜单滑出,给玩家一些select在屏幕的一边,类似于愤怒的小鸟或宠物小精灵。 我不知道如何去做这个,但我认为它的东西就像在渲染方法中放置一个if语句? render(){ if(menuVisible){ //draw menu? } } 我对libgdx相当陌生,所以我不知道如何充分利用它。

使用箭头键或控制器导航Libgdx菜单

我试图用箭头键或通过控制器上的d-pad使我的菜单成为可导航的。 到目前为止,我没有运气。 问题是 : 有人可以通过如何使我的当前菜单或任何libgdx菜单键盘访问? 我有点不喜欢一些东西,我来自Javascript的背景。 以下是我想要做的一个例子: http://dl.dropboxusercontent.com/u/39448/webgl/qb/qb.html 对于一个简单的菜单,你可以添加几个button,并运行它,使用这个: http://www.sadafnoor.com/blog/how-to-create-simple-menu-in-libgdx/ 或者你可以使用我的代码,但我使用了很多自定义样式。 这里是我的代码的一个例子: import aurelienribon.tweenengine.Timeline; import aurelienribon.tweenengine.Tween; import aurelienribon.tweenengine.TweenManager; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.Align; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import […]

需要帮助为Java中的MenuScreen制作button

我为我的游戏做了一个菜单,我做了MenuState(class),并创建了一个MouseManager(类,实现的MouseListener和MouseMotionListener),它们是不同的文件夹中的类。 这是我的问题,通常人们让他们的button我的绘图矩形,并添加字体,使他们的button。 但是我没有那样做。 我用Photoshop制作了一个button,然后把它放在我的精灵表中,裁剪出来并做成button。 现在我想让它如果我点击我的“播放”button图片发送到我的GameState,如果我点击我的“退出”button图片它closures我的窗口 MyMenuState(类) package com.vescorspel.game.MyFirstGame.states; import java.awt.Color; import java.awt.Graphics; import com.vescorspel.game.MyFirstGame.Handler; import com.vescorspel.game.MyFirstGame.gfx.Assets; public class MenuState extends State{ // Resizing my button from 64 pixels to 256 pixels public static final int ButtonWidth = 256; public static final int ButtonHeight = 256; // coordinates where my buttons are placed in pixels 😉 […]

Unity和C#脚本的响应GUI

我正在为Unity中的RPG角色菜单工作。 我有我的菜单设置不同类别的button。 一切都很好,除了当我重新调整我的屏幕,我的布局大小不正确。 我需要我的GUI来响应我的屏幕大小。 有什么资料或教程可以阅读吗?

Xna菜单导航与控制器

我有一个菜单,你可以用键盘导航,但我也想要它,所以你可以用控制器的拇指棒导航它。 但我的问题是,如果你按下或拇指棒上,它只会通过菜单飞行。 要解决问题,如果它是一个键盘,你只要做: prevKeyState.IsKeyUp(Keys.Down) 。 所以我想知道是否有像这样的控制器拇指棒? 我不确定如果我做错了什么,但它仍然通过菜单飞行。 private enum GamePadStates { None, GoingDown, GoingUp } GamePadStates CurrentGamePad, PreviousGamePad = GamePadStates.None; public void Update(GameTime gameTime) { keyState = Keyboard.GetState(); gamePadState = GamePad.GetState(PlayerIndex.One); PreviousGamePad = CurrentGamePad; if (gamePadState.ThumbSticks.Left.Y > 0.1) CurrentGamePad = GamePadStates.GoingUp; else if (gamePadState.ThumbSticks.Left.Y < -0.1) CurrentGamePad = GamePadStates.GoingDown; else CurrentGamePad = GamePadStates.None; if (keyState.IsKeyDown(Keys.Down) […]

Unity3D:重试菜单(场景管理)

我正在使用Unity3D游戏引擎为Android做一个简单的2D游戏。 我创建了所有的关卡和所有东西,但是我一直在制作游戏结束/重试菜单。 到目前为止,我一直在使用新的场景作为菜单上的游戏。 我用这个简单的脚本: #pragma strict var level = Application.LoadLevel; function OnCollisionEnter(Collision : Collision) { if(Collision.collider.tag == "Player") { Application.LoadLevel("GameOver"); } } 而这作为一个“菜单”: #pragma strict var myGUISkin : GUISkin; var btnTexture : Texture; function OnGUI() { GUI.skin = myGUISkin; if (GUI.Button(Rect(Screen.width/2-60,Screen.height/2+30,100,40),"Retry")) Application.LoadLevel("Easy1"); if (GUI.Button(Rect(Screen.width/2-90,Screen.height/2+100,170,40),"Main Menu")) Application.LoadLevel("MainMenu"); } 问题在于,我必须创建超过200场比赛场景,障碍物(杀死玩家的对象),并为每个级别重新创建相同的脚本超过200次。 有没有其他办法可以使这个更快,更痛苦?