小编Log*_*ror的帖子

Gameloop for j2me"回合制"游戏

编辑:这对我来说更有意义,因为我已经离开了代码,谢谢你的帮助.

刚刚通过Coding Horror发现堆栈溢出,它看起来很棒.我想向社区询问我目前正在尝试解决的问题.

我正在使用j2me为midp 2.0手机开发一款roguelike游戏.该项目仍然处于开发的基本阶段,因为我弄清楚它是如何运作的.我目前坚持的部分与线程有关.

游戏有一个自定义HaxCanvas类,它扩展了GameCanvas和Implements runnable.它的run方法调用repaint()然后休眠50 ms,导致帧速率为20 FPS.这使我可以编写游戏的其余部分,而无需在任何地方放置重绘,并且应该使动画和效果更容易在以后进行.(至少在理论上).

游戏的流程由GameManager类控制,该类循环遍历地图上的所有NPC,轮流进行,直到玩家轮到.此时我需要输入以允许玩家四处移动和/或攻击事物.我最初是在调用我gameManager.runUntilHeroTurn()keyPressed方法HaxCanvas.然而,在阅读了j2me系统线程之后,我意识到在回调中放置一个可能会运行一段时间的方法是一个坏主意.但是我必须使用keyPressed来输入handeling,因为我需要访问数字键,并且getKeyStates()不支持这个.

Sofar我尝试将我的游戏循环放入其自己的线程中导致了灾难.在游戏运行了几次之后,出现了一个没有堆栈跟踪的奇怪的"未捕获的ArrayIndexOutOfBoundsException".

所以我想我的问题是:

对于j2me中的"回合制"游戏,实现游戏循环的最佳方式是什么,只有当玩家轮到你时才允许输入游戏?

java midp lcdui java-me

6
推荐指数
2
解决办法
1874
查看次数

标签 统计

java ×1

java-me ×1

lcdui ×1

midp ×1