我会避免线程化游戏逻辑,因为J2ME线程,当然,取决于制造商,并没有很好地共享有限的资源.当线程执行繁重的处理时,您经常会看到暂停.我只推荐用于加载或网络连接功能的线程,因为在这种情况下,您只需向用户提供基本的“加载…”反馈.

为了解决这个问题,我不会有子循环来更新一帧中的每个AI.我会在run函数中执行以下操作:

public void run() {

while(true) {

// Update the Game

if(gameManager.isUsersTurn()) {

// Collect User Input

// Process User Input

// Update User's State

}

else {

// Update the active NPC based on their current state

gameManager.updateCurrentNPC();

}

// Do your drawing

}

}

您希望避免在一帧中更新所有内容,因为1)更新可能很慢,导致用户没有立即的视觉反馈2)您无法在每个NPC进行动作时制作动画.通过此设置,您可以拥有NPC状态NPC_DECIDE_MOVE和NPC_ANIMATING,这将允许您进一步控制NPC正在执行的操作. NPC_ANIMATING基本上将游戏置于动画发生的等待状态,避免任何进一步处理直到动画完成.然后它可以继续下一个NPC.

另外,我只需要一个gameManager.update()和gameManager.paint(g)(将从paint中调用paint)来处理所有事情并保持run方法的精简.

最后,你看看flushGraphics()?使用GameCanvas,您通常会创建一个Graphics对象,将所有内容绘制到该对象,然后调用flushGraphics(),然后等待.你提到的方法是为Canvas类处理它的方法.我想我会提到这个并发布一个链接:

Game Canvas Basics

java 回合制_java – 用于j2me“回合制”游戏的Gameloop相关推荐

  1. java八进制写法_Java中8进制和16进制的表示方法

    由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题. 但,二进制数太长了.比如int 类型占用4个字节,32位.比如100,用int类型的二进制数表达将是: ...

  2. java对嵌入式_Java用于嵌入式系统的优点

    Java用于嵌入式系统的优点 与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务.yjbys小编下面为你整理了关于Java用于嵌入式系统的优点,希望对你有所帮助. ...

  3. java 打地鼠 源代码_Java实现的打地鼠小游戏完整示例【附源码下载】

    本文实例讲述了Java实现的打地鼠小游戏.分享给大家供大家参考,具体如下: 这里涉及到java线程和GUI的相关知识,一个简单的java小游戏打地鼠,有兴趣的朋友可以优化一下.先来看看运行效果: 具体 ...

  4. java swing 代码_java swing编写gui生命游戏代码,新手上路

    项目描述 生命游戏其实是一个零玩家游戏,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞.一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量.如果相邻方格活着 ...

  5. 斗牛java主程序设计_Java swing中制作斗牛游戏如何牛点

    雷晓东NANA 2019.01.08 采纳率:63%    等级:39 已帮助:98296人 进口的java.awt.BorderLayout;进口java.awt.event.MouseEvent中 ...

  6. 猜字小游戏java方法体_java实现猜字小游戏

    java实现猜字小游戏 闲来无事,实现一个猜数字的小游戏,目的是巩固自己的基础知识,培养敲代码的乐趣. 首先在项目中所创建的类中导包 (视频教程推荐:java课程)import java.util.S ...

  7. java五子棋棋盘_Java实现两人五子棋游戏(二) 画出棋盘

    此文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下 棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根 ...

  8. java 五子棋项目_Java项目实现五子棋小游戏

    本文实例为大家分享了Java实现五子棋小游戏的具体代码,供大家参考,具体内容如下 项目名称 五子棋小游戏 项目描述 可以改变获胜棋子数,率先连成棋数的人获胜 代码实现 测试类 public class ...

  9. java 64进制转10进制_java进制转换

    import java.math.BigDecimal; import java.util.LinkedList; import java.util.List; import java.util.st ...

最新文章

  1. 用 PHP 和 MySQL 保存和输出图片
  2. 【转载】MongoDB安装并随windows开机自启
  3. HJ9 提取不重复的整数
  4. React Native 轻松集成分享功能(Android 篇)
  5. 【转】2.3async中必须始终返回Task(@Ron.liang)
  6. MyEclipse 汉化教程(含资源)
  7. VC++ 6.0(英文正版)安装及其编译注意事项
  8. Active Directory的安装
  9. 《微积分》框架逻辑的简单理解
  10. vscode 不支持的客户端_Windows平台上有哪些你不知道的神器?
  11. python3----练习题(图片转字符画)
  12. windows全部启动项
  13. VM在使用过程中开机频繁黑屏(VM14版本问题导致的,频繁开机黑屏)
  14. java 港澳台手机号码正则表达式
  15. VHDL三段式状态机
  16. Iframe的allow属性生效时机
  17. EXCEL如何快速拆分合并单元格数据
  18. java模拟简单的qq聊天_初学java之模拟QQ聊天软件(简单实现)
  19. 邮箱,手机号的正则表达式
  20. 微信订阅号如何开通付费功能

热门文章

  1. java面试宝典2019(总结)
  2. 【Vue】Vue基础知识点介绍(入门级,简单易懂)——day01
  3. 装php需要安装apache吗,在学习PHP时我们需要安装Apache服务器。Apache是一种( )服务器。...
  4. 佳能推出三款家用照片喷墨打印机及两款照片纸
  5. 大淘宝 淘宝对传统营销的影响
  6. java thread resume_java 线程Thread方法之suspend()和resume() | 学步园
  7. 为什么网络棋牌的分成那么高?
  8. R语言用逻辑回归建立用户付费模型
  9. 【论文精读】Single-Perspective Warps in Natural Image Stitching
  10. 《人月神话》(The Mythical Man-Month)1 看清问题的本质:如果我们想解决问题,就必须试图先去理解它...