- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Java___活动图像程序和游戏编写》.doc
Java 活动图像程序和游戏编写.
一 关于用Java构造游戏.
在本文中笔者用Java编写一个小游戏软件.为什么写游戏软件?游戏软件要求的编程能力较高,也很少有比写游戏软件更加激动人心的创造性工作了.因此,写游戏是很好的学习编程的手段:笔者相信一句老话:取法乎上,得乎其中. 假如读者可以弄懂本文给出的各种算法,并举一反三,相信可以很快掌握目前流行的活动主页的编写方法.
显然,用Java构造商品化的游戏软件目前不可能.为什么?C++编程的游戏,其最终运行文件是运行平台的中央处理机的机器码,运行速度相当高.而Java将以字节码的形式运行于Java虚拟机上,效率低下.但笔者希望通过本篇文章能对Java的初学者提供帮助,弄清一些Java编程技巧,如事件,线程,动画,双缓冲图像,复合键控制,等.一方面有助于Java编程学习,另一方面即使使用C或C++编程,本文的算法和技巧也都有相当价值.
本文假定读者有一定的Java编程常识,也初步理解面向对象的含义.同时,为便于实践,读者最好能自己使用PhotoShop之类的图像处理软件编辑图片.程序在IE4.0下运行.
二 最简单的雏形:支持复合键控制的小方块.
首先我们要写出一个能在屏幕上随心所欲移动的小方块.用户用键盘控制小方块的移动,但支持复合键控制.比如,假如用户按下向上键,小方块向上移动.用户又按下了向右键,小方块向右上方移动.随后用户松开向右键,小方块恢复向上移动.
关键是程序中有四个表示方向的布尔变量.变量的值随键盘的状态改变而改变,按下某个方向键,相应的方向布尔变量置位;松开,就清零.小方块的移动根据四个方向布尔变量的值确定,某方向为true,就向哪个方向移动.读者可以设想,假如用户按下向上键,向上布尔变量为true,小方块向上移动,又按下向右键,向右布尔变量为true,小方块又向右移动,总体效果就是向右上移动.用户再按下向左键,小方块向上,向右,再向左,总体结果就是向上.要注意的是,用户必须使用数字键盘区的方向键! 此外,读者应先用鼠标器在程序运行画面上点击一次,使屏幕焦点落在本程序上.
程序中用键盘事件来控制表示方向的布尔变量的值,按下键,置true;松开,置false.小方块的移动由线程完成,因为线程可以不要任何激励周而复始的不断运行.下面是程序代码.注意:文件名要叫wumin1.java
输入编译后,还要输入一个HTML文件使它在浏览器中可以运行.本文一样给出范例.
import java.awt.*;
import java.applet.*;
public class wumin1 extends Applet
{
carton carton_1=null;//声明一个carton类的实例.
public void start()
{
if (carton_1==null)//假如未初始化
{
carton_1=new carton(getGraphics(),this);//初始化
carton_1.start();//启动
}
}
public void stop()
{
carton_1.stop();//停止
carton_1=null;//释放资源
}
//键被按下事件的处理.
public boolean keyDown(Event e,int key)
{
if (key==Event.UP)//假如是向上键被按下
carton_1.set_direction(0);//向上的布尔变量置true
if (key==Event.DOWN)//假如是向下键被按下
carton_1.set_direction(1);//向下的布尔变量置true
if (key==Event.LEFT)//假如是向左键被按下
carton_1.set_direction(2);//向左的布尔变量置true
if (key==Event.RIGHT)//假如是向右键被按下
carton_1.set_direction(3);//向右的布尔变量置true
return true;
}
//键被松开事件的处理.
public boolean keyUp(Event e,int key)
{
if (ke
您可能关注的文档
- 《GE塑壳断路器简体样本》.pdf
- 《GF3502T_001-2016_LED道路照明灯具修改标记稿20160617》.doc
- 《GF3502T_006-2016_LED隧道照明灯具修改标记稿20160617》.doc
- 《Git_real-level-1》.pdf
- 《glass_and_light》.pdf
- 《Glencoe Science - Level Green:Contents》.pdf
- 《Glencoe Science - Level Red:Contents》.pdf
- 《global consequences of land use》.pdf
- 《global》.pdf
- 《glossary of leather terms_1》.pdf
最近下载
- PLC编程手册.pdf VIP
- 注册环保工程师之注册环保工程师专业基础题库及答案【各地真题】.docx VIP
- 2025春议题式导与学道德与法治七年级下册04-第四单元 生活在法治社会(教用).docx
- 存储架构优化方案.docx VIP
- 中医在抑郁焦虑调理中的思路.pptx VIP
- 住院患者走失应急预案.pptx VIP
- 脾梗死护理个案.pptx VIP
- GB∕T 40685-2021 信息技术服务 数据资产 管理要求.pdf
- 变配电所二此设备应急故障处理—变配电所保护误动和拒动故障查找处理(高铁变电设备检修).pptx
- 部编人教版六年级上册《道德与法治》全册知识点归纳、考点整理,复习必备.docx VIP
文档评论(0)