Articles of 界面

为Java CCG创建一个好看的界面?

我想创建一个Javacollections卡游戏。 我有逻辑下来,但我有接口的一些麻烦。 我想使它看起来不错。 而不是使用标准的java SWING组件,我想创建这样的东西。 有什么必要创建类似的东西?

将两个图像渲染到SDL_window

我想为SDL游戏创建一个菜单,所以我将一个图像加载到一个SDL_Window作为背景,然后我尝试加载下一个图像,这个图像将会是一个button,但是它不会显示到窗口的button,它只是显示背景。 我是一个新手,所以也许这是一个明显的错误。 这是我得到的: #include <stdio.h> #define SDL_MAIN_HANDLED #include "SDL.h" int main(int argc, char *argv[]) { int a = 1; SDL_Event event; SDL_Window* window; SDL_Surface* background_surface; SDL_Texture* background_texture; SDL_Renderer* background_renderer; SDL_Surface* button_surface; SDL_Texture* button_texture; SDL_Renderer* button_renderer; SDL_Rect button_pos; button_pos.h = 65; button_pos.w = 320; button_pos.x = 0; button_pos.y = 0; SDL_Init(SDL_INIT_VIDEO); window = SDL_CreateWindow( "Cosmic Racing", […]

基于回合的平铺游戏dynamic项目/技能/命令脚本文件

我想创建一个可以读取文本脚本的机制,例如某种自定义脚本,如“.skill”或“.item”,它们可能包含一些简单的脚本 .item Item.Name = "Strength Gauntlet"; Character.STR += 20; .. .skill Skill.Name = "Poison Attack"; Skill.Description = "Steal HP and inflict poison"; Player.HP += 200; Enemy.HP -= 200; Enemy.Status += Status.POISON; 这可能与此不同,但只是想给我一些想法。 但是,我不知道如何dynamic地parsing这些东西并将其转化为工作脚本。 例如,在战斗scenerio,我应该使我的游戏阅读这个“.skill”文件之一,并将其​​应用到当前的敌人,或当前的玩家。 我将如何做到这一点? 我应该去stringparsing? 它就像一个脚本引擎,但我更喜欢C#而不是创建新的语言,所以我如何parsing自定义文件到适当的状态命令? 另一个问题是,我还创建了一个命令引擎,它将读取stringinput并将其parsing为诸如“MOVE(1,2)”将字符移动到瓦片(1,2)的动作。 每个命令都属于单独的类,并提供应该手工实现的通用parsing方法。 这是每个命令的自定义编号/参数types的原因。 但是,我认为这是不是很好的devise,因为我希望它根据指定的types列表自动parsing参数。 例如,“MOVE 1 2”中的MOVE命令会自动将参数parsing为int,int并将其放入X和Y中。现在,这个表单可以更改,我们可以手动指定所有格式。 对这个问题的任何建议? 我应该从stringparsing更改为一些硬编码方法/类?

libgdx ScissorStack问题

我使用libgdx制作用户界面我创建了一个Window类和一个Textfield类,都使用剪切。 我使用剪裁的libgdx的ScissorStack类。 Textfield是在窗口类中绘制的。 窗口绘制方法 : ScissorStack.calculateScissors(camera, batch.getTransformMatrix(), clipBounds, scissors); ScissorStack.pushScissors(scissors); //Draw textflied ScissorStack.popScissors(); Textfield绘制方法 : clipBounds.setPosition( 700, 200 ); //Draw textfield image ScissorStack.calculateScissors(camera, batch.getTransformMatrix(), clipBounds, scissors); ScissorStack.pushScissors(scissors); //Draw text ScissorStack.popScissors(); 目前的问题是这个代码的Textfield类: clipBounds.setPosition( 700, 200 ); 如果我删除这个代码,我不会得到错误。 这是错误的 : Exception in thread "LWJGL Application" java.lang.IllegalStateException: Array is empty. at com.badlogic.gdx.utils.Array.pop(Array.java:292) at com.badlogic.gdx.scenes.scene2d.utils.ScissorStack.popScissors(ScissorStack.java:77) 我注意到,如果我改变clipBounds的值,我得到的错误,有时,有些值,我没有得到错误。

渲染循环中的外部gui

我在游戏循环中简单地连接现有的Java程序/ GUI是多么的简单。 对不起,如果我的问题有点含糊。 我会尽力解释。 我目前正在为一个工作站devise一个模拟环境。 我们有实际的程序运行在真正的计算机上(它有一个java GUI,并在Linux虚拟机上运行)。 我们也有房间,椅子,监视器等3D模型。我们可以渲染那些在虚幻引擎。 目前,我已经硬编码了非常简单的监视器纹理,代表在计算机上运行的程序,但理想情况下,玩家应该有和在实际控制室中一样的经验,这意味着他应该能够使用程序相同或几乎相同的方式。 我的问题是如果有可能在仿真中连接实际程序的I / O。 更具体地说,如果可以将java awt渲染为监视器的纹理,并且将玩家的行为并将其作为input提供给程序。 实际的程序代码可以在游戏循环内部或外部运行(最好在外部,在其本地虚拟机中)。 你能指引我走向正确的道路吗,因为我只是很熟悉游戏开发。 先谢谢你! 编辑:只是为了澄清一件事:在外部机器上运行程序(虚拟或物理),并提供本机的显示器到本地纹理是可以接受的,但我徘徊,如果有可能使用Java的GUI库输出直接进入游戏循环(而不是主机)。 我想这必须得到游戏引擎的支持(例如支持游戏中的桌面环境/窗口管理器)。 虚幻引擎刚刚被选中进行testing。 任何引擎建议是受欢迎的。

应该input是每帧还是每更新?

我正在实现一个GUI系统来环顾2D瓦片世界。 目前,每当鼠标移动时(每帧都发生,因为这是轮询事件),我正在更新它。 然而,我想知道是否实现它每更新(通过采取所有input事件,平均出来,然后推迟他们处理,直到下一次更新)会更好。 我认为这会让GUI感觉更加一致,但是代价可能不如反应敏锐(因为如果没有控件感觉“粘性”,我不能插入运动)。 在创意方面更好的界面,我应该去哪? 什么游戏通常与?

什么algorithm用来select体素(从玩家的角度来看)?

在第一人称体素游戏(如下图所示)中,您可以通过查看体素来select体素。 什么样的algorithm被用来select体素? 我还没有在我的voxel应用程序中实现它,但我能想到的唯一的解决scheme是投射线和检查交叉点,但它似乎效率非常低。

将接口实例保存到一个Bundle中

所有 我有一个界面,允许我在Android游戏中的不同场景之间切换。 当主键被按下时,我将所有状态(分数,精灵位置等)保存到一个Bundle中。 当重新启动时,我正在恢复所有的状态,一切正常 – 但是,我不知道如何保存我的“场景”,因此当我返回时,它总是从默认屏幕开始,即“主菜单”。 我将如何去拯救我的“场景”(成捆)? 码 import android.view.MotionEvent; public interface Scene{ void render(); void updateLogic(); boolean onTouchEvent(MotionEvent event); } 我认为接口是相关的一段代码,这就是为什么我已经发布该片段。 我设置我的场景是这样的:('选项'是我的Options类的一个对象,它扩展了MainMenu(另一个自定义类),它实现了界面“Scene”) SceneManager.getInstance().setCurrentScene(options); //Current scene is optionscreen

如何沟通,有什么是教程button

我做了一个非常规的(ios)街机游戏,结果很多人不知道该怎么做,或者是什么控件在第一次打开的时候。 作为一个结果,我不得不在我的主菜单屏幕上添加一个矩形的“教程”button,以便当我把它交给人或其他人把它交给人(等)时,一切都好。 仅供参考:当游戏第一次打开时,它会转到教程,我只是希望它可以重复访问,如果有必要的话 在原来的版本中,我devise了所有的button,并在它们上面贴有标签,但是我内部的艺术家说这看起来不太好,所以我让一个朋友重新devise了它们。 新的button是双色的,非常简约(通常与他们的形状轮廓)。 我们想出了适用于“返回”,“播放”和“排行榜”的工作…但我们不能为“教程”提出一个。 什么是可以放在“教程”button上的清晰符号? 这是一个屏幕的图片。 那灰色的形状是一个占位符。 右上角的button打开“Credits”页面。

使用slick2d删除标题栏?

我最近开始在我的游戏程序中使用slick2D,并且我有一个问题是无法删除边框/标题栏。 我通常这样做来创建我自己的cutom外观/界面,但如果我尝试: this.setUndecorated(true); 它不工作。 你如何实现这个目标?