`

java游戏对于角色移动流畅度的处理

 
阅读更多

    当我们用java的swing做小游戏的时候,如果只是单纯的用键盘监听器,去监听上下左右键的按下,每按一下,让角色的坐标变化一次的话,做出来的移动效果将会十分的卡顿,而且不能向斜方向移动。

    所以,在让角色移动的监听器这里,我们使用多线程的方式。

    首先让角色启动4个线程,分别控制上下左右移动,着4个线程启动之后便在不停的运行,然后在线程中设定一个判断,判断一个boolean变量是否为true,如果为true,角色就移动,如果为false,角色便不移动,初始设置这上下左右4个boolean变量都为false,所以角色在无人操作的情况下是不移动的,然后再用键盘监听器,监听上下左右按键,当按下一个键时,对应该方向移动的boolean变量便设为true,这样角色便想那个方向移动了,当释放掉按下的那个键时,则把该boolean值置回false。

    这样,由于四个线程是在不停的执行的,所以角色移动看起来就会十分的流畅,也不会出现不能同时按多个键之类的情况。

9
0
分享到:
评论
4 楼 Y_1746119035 2014-10-26  
rex0654335 写道
为嘛要启四个线程,如果加上动作键等其他按键,难道要启N 个?

其实更准确的来说启动两个线程就行了,一个上下,一个左右,因为移动你有可能同时向两个方向移动(也就是斜着移动),如果不用线程是做不到斜着移动的,因为你不用多线程同一时间只能按下一个键...
而其他的按键,比如打开菜单,或者释放技能什么的,没必要同时按下多个,就不需要线程了呗....
3 楼 rex0654335 2014-10-26  
为嘛要启四个线程,如果加上动作键等其他按键,难道要启N 个?
2 楼 Y_1746119035 2014-07-23  
LieutenantGeneral 写道
这个好像不是那么简单的,我记得以前大概看到过一篇文章就是说这个。(不对勿喷,很久以前看的)那个卡顿是由于屏幕的刷新频率和你的定时重绘之间不一致产生的问题。解决的好像挺麻烦的。用到了那么主线程啥之类的。。很久了不记得了。。。

额,这个也是一个方面啊,我觉得要是整个游戏中刷新屏幕的线程中线程休眠的时间设成最短应该就没问题了...
1 楼 LieutenantGeneral 2014-07-21  
这个好像不是那么简单的,我记得以前大概看到过一篇文章就是说这个。(不对勿喷,很久以前看的)那个卡顿是由于屏幕的刷新频率和你的定时重绘之间不一致产生的问题。解决的好像挺麻烦的。用到了那么主线程啥之类的。。很久了不记得了。。。

相关推荐

    Java游戏_角色类.rar

    这部分逻辑通常在游戏循环中处理,确保游戏的流畅运行。 5. **扩展性**:好的角色类设计应该允许方便地添加新特性和功能,比如新的技能、装备系统等,这样可以提高游戏的多样性和可玩性。 对于NOKIA S40平台,由于...

    Java游戏_动作类.rar

    在Java平台上,由于硬件限制,动作游戏的设计通常更加注重游戏机制的简洁性和流畅性,以及较低的内存和处理需求。 在"压缩包子文件的文件名称列表"中提到的"动作类"可能是指包含多个动作游戏的子目录或者文件集合。...

    JAVA游戏大综合及各种特效

    Java游戏开发通常基于JavaSE(标准版)或JavaME(微型版)平台,其中JavaSE更适合桌面游戏,而JavaME则适用于移动设备。 二、Java游戏框架 1. LibGDX:这是一个开源的游戏开发框架,支持2D和3D游戏开发,提供了丰富...

    85个支持触屏的手机java游戏

    游戏内的控制通常包括虚拟按键、滑动操作和触摸屏幕的点击,使玩家能够通过直接触摸屏幕来控制角色移动、射击、跳跃等动作,提升了游戏的交互体验。 2. **游戏类型多样**:这85款游戏涵盖了多种类型,如冒险、动作...

    java游戏开发实例

    例如,游戏循环决定了游戏的速度和流畅度,而状态管理则确保游戏在不同阶段(如菜单、游戏进行、暂停等)间正确切换。在这个实例中,开发者可能使用了条件语句、循环、队列或栈等数据结构来实现这些逻辑。 此外,...

    java小游戏 java小游戏

    4. **事件处理**:在Java游戏中,玩家的输入需要被监听并响应。例如,使用键盘控制角色移动,鼠标点击进行射击等。这涉及到事件监听器和处理器的概念。 5. **线程**:为了实现游戏的实时性,通常会使用多线程。一个...

    简单的java射击游戏

    游戏的核心在于游戏逻辑的实现,包括角色移动、射击、碰撞检测等。这里可能使用了定时器(`javax.swing.Timer`)来控制游戏的帧率,确保游戏流畅运行。射击行为可能通过按下z键触发,需要处理子弹的发射、移动和...

    java游戏编程导学

    此外,Java还支持多线程,可以实现游戏循环与用户界面的分离,确保游戏流畅运行。 游戏逻辑是游戏设计的核心。这包括游戏规则的实现、AI算法、碰撞检测以及分数系统等。在Java中,可以使用各种算法和数据结构(如栈...

    Java小游戏Java雷电游戏Java小游戏Java雷电游戏Java小游戏Java雷电游戏Java小游戏Java雷电游戏

    这款游戏的开发涉及到多个Java技术点,包括图形用户界面(GUI)、事件处理、多线程以及对象导向编程等。 首先,Java基础是开发此游戏的前提。这包括对Java语法、类与对象、继承、封装、多态等核心概念的掌握。玩家...

    43个java 经典手机游戏(打包下载)

    尽管如此,这些Java经典游戏仍保留了它们独特的魅力,对于开发者来说,它们是了解早期移动游戏开发和编程技术的好资料;对于玩家而言,它们是一段美好的回忆,能够重温那些简单而纯粹的乐趣。 在这个压缩包中,你...

    java游戏源代码

    本项目是一个角色类游戏,专注于角色的跑动机制,这对于想要深入学习游戏开发,特别是移动和动画控制的终极开发工程师来说,是非常有价值的参考资料。 游戏开发中的角色跑动机制涉及到多个关键知识点: 1. **面向...

    Java游戏开发ppt

    Java游戏开发是一个涵盖广泛的技术领域,它涉及到计算机图形学、数据结构、算法、网络编程以及用户界面设计等多个方面。...无论是想开发简单的桌面游戏还是复杂的移动游戏,掌握Java游戏开发的知识都是一个很好的起点。

    Java游戏沙丘城堡源代码

    9. **输入处理**:针对移动设备,游戏需要处理触摸屏事件,如滑动、点击等,Java可以捕捉这些事件并转化为游戏内动作。 10. **数据存储与读取**:游戏可能会有保存进度、设置等功能,这需要用到Java的I/O流来读写...

    JAVA RPG 游戏 控制上下左右

    4. **动画与帧速率**:为了提供流畅的游戏体验,角色移动通常会伴随动画效果。这需要一个定时器或者基于帧的更新机制来控制每帧的渲染。例如,可以使用`javax.swing.Timer`或`java.util.concurrent`包中的工具来管理...

    Java游戏设计代码

    5. **动画和图像处理**:使用Java的图像API(如AWT和Swing的Image类),开发者可以加载、绘制和操纵游戏中的图像,实现角色的移动、旋转等动画效果。 6. **碰撞检测**:在游戏中,判断不同对象之间的碰撞是至关重要...

    Java游戏编程读书笔记

    Java内置了强大的多线程支持,允许同时处理游戏循环、用户输入、网络通信等多个任务,确保游戏的流畅运行。 4. **游戏循环**:游戏通常有一个主循环,负责处理游戏状态更新、渲染画面以及处理用户输入。Java中的`...

    最新Java游戏源码

    对于在线多人游戏,Java源码还会涉及到网络通信的部分,如使用Socket编程实现客户端和服务器之间的数据传输,处理玩家之间的互动。 6. **数据存储** 游戏中的进度、成就、设置等数据通常需要持久化存储。Java提供...

    java仙剑奇侠传游戏

    9. **多线程**:在大型游戏中,可能需要使用多线程来处理不同的任务,比如背景音乐播放、网络通信等,以避免阻塞主线程,保证游戏流畅运行。 10. **调试与测试**:游戏开发过程中,调试和测试是非常关键的环节。...

    深度解析java游戏服务器开发.zip

    Java游戏服务器开发是一个涵盖多个领域的复杂工程,涉及网络编程、并发处理、数据库交互、游戏逻辑等多个方面的技术。这里,我们将深度解析这个主题,探讨在Java环境下构建游戏服务器的关键知识点。 首先,我们需要...

    java游戏保卫萝卜

    6. **游戏逻辑**:游戏的核心在于其逻辑,比如角色移动规则、碰撞检测、分数计算等。开发者需要编写逻辑代码来处理这些复杂的业务规则。 7. **事件处理**:玩家的输入需要被正确地捕获和响应,例如点击按钮启动游戏...

Global site tag (gtag.js) - Google Analytics