`

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基于J2ME的手机游戏开发的实现.rar

    J2ME 手机游戏开发是一种基于 Java 平台的轻量级游戏开发方式,通过 J2ME 提供的 API 和工具集,开发者可以快速构建适用于各种移动设备的游戏应用,具体实现步骤如下: 选择开发工具: 使用集成开发环境(IDE),...

    基于Android的炸弹人游戏(源码+文档).zip

    3G时代的到来以及智能手机的迅速发展,使得更多内容丰富的...系统实现了游戏界面的设计、关卡设计、角色设计、人工智能设计、背景音乐以及各模块功能。游戏者采用触屏操作,运行界面流畅、友好。系统实现了移动应用。

    python飞机大战.zip

    而游戏有着很好交互性,玩家并不是仅仅在观看角色在如何移动,而是也要融入角色当中进行操作。在游戏中,玩家的行为也会对游戏产生影响。游戏除了让人娱乐之外还可以作为缓解压力的方式,在休息的时候可以不用想其他...

    微信小程序宠物领养医院系统.zip

    基于Java+springboot的, 本项目有网页版和小程序端 用户功能: - 登录、注册、宠物领养、医生在线咨询、查看挂号、个人中心、密码修改、宠物寄养查看 医生角色包含以下功能: - 登录、查询挂号、在线回复、挂号、...

    医院挂号小程序系统 .zip

    基于Java+Springboot+Vue+uniapp的,本系统前后端分离(网页端和小程序端都有) 本系统分为管理员、医院、用户三种角色(角色菜单可自行分配) 用户功能 -注册、登录、医院搜索、最新资讯、医生搜索、挂号预约、挂号记录...

    这是一个后台基础库,包括用户、机构、角色、权限等常用功能,并集成微信公众号、小程序支持.zip

    随着移动互联网技术的发展和用户需求的变化,【小程序名称】应运而生,以其轻量化、便捷化的设计理念为用户提供了一种全新的服务模式。作为一款无需下载安装即可使用的应用,【小程序名称】依托于微信庞大的生态系统...

    SpringBoot项目基于springboot的实习管理系统.zip

    9. **移动和远程访问**:支持移动设备访问,让管理工作和申请流程可以更加灵活地进行。 10. **易于维护和扩展**:采用模块化的设计方式,方便未来根据教育部门的政策变化或技术发展增加新功能或进行系统升级。 ...

    SpringBoot项目毕业生实习与就业管理系统的设计与实现.zip

    9. **移动和远程访问**:支持移动设备访问,让管理工作和申请流程可以更加灵活地进行。 10. **易于维护和扩展**:采用模块化的设计方式,方便未来根据教育部门的政策变化或技术发展增加新功能或进行系统升级。 ...

    该项目是一起货运吧小程序源码.zip

    目前小程序已经上线,该项目由本人一个人开发,有需要的小伙伴可以参考,该项目的特色是可以集成多语言,可以随便切换司机和货主角色 随着移动互联网技术的发展和用户需求的变化,【小程序名称】应运而生,以其轻量...

    SpringBoot项目企业oa管理系统.zip

    4. 邮件和通知:集成电子邮件服务和内部即时消息系统,保持沟通流畅并实时传达重要信息。 5. 会议和活动安排:提供会议室预订、活动日程安排和提醒功能,简化会议的组织和参与过程。 6. 项目协作工具:支持项目...

    SpringBoot项目企业级工位管理系统.zip

    4. 邮件和通知:集成电子邮件服务和内部即时消息系统,保持沟通流畅并实时传达重要信息。 5. 会议和活动安排:提供会议室预订、活动日程安排和提醒功能,简化会议的组织和参与过程。 6. 项目协作工具:支持项目...

    SpringBoot项目大学生就业需求分析系统.zip

    6. **权限控制与安全性**:确保不同用户角色(学生、学校管理员、雇主)根据权限安全访问系统数据。 7. **交互式用户界面**:提供直观的用户界面和流畅的操作体验,使用户能够轻松地使用系统功能。 8. **移动设备...

Global site tag (gtag.js) - Google Analytics