欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    JAVA实验报告18-“打地鼠”游戏程序设计.docx

    • 资源ID:35617243       资源大小:17.68KB        全文页数:8页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JAVA实验报告18-“打地鼠”游戏程序设计.docx

    JAVA 实验(18)课程名称:Java面向对象程序设计学 院:管 理 学 院专业班级:信息管理与信息系统(6)班 学 号:3108006406姓 名:张钟权任课教师:聂小东2010年06月15日管 理学院 信息管理与信息系统专业08信管6班 组学号3108006406姓名张钟权 协作者 教师评定实验题目“打地鼠”游戏程序设计一、实验目的与要求(1)实验目的:通过编写调试“打地鼠”游戏程序,分析了解“打地鼠” 游戏的功能实现过程,掌握游戏设计的有关知识。(2)实验要求:按照实验教程的要求完成“打地鼠”游戏程序的编写和调 试工作。二、实验方案(1) HammerSprite 类:©HammerSprite (Image image, int frameWidth, int frameHeight)方法: 锤子精灵的构造函数,设置精灵贴片图像及精灵的宽度与高度;moveTo (intx, inty)方法:为游戏操控者控制手机的按键,移动 锤子精灵到指定位置。(2) MouseSprite 类:©MouseSprite (Image image, int frameWidth, int frameHeight) 方法: 地鼠精灵的构造函数,设置精灵贴片图像及精灵的宽度与长度;moveTo (int s)方法:根据随机数s,移动地鼠精灵到指定的坐标位 置。(3) MainCanvas 类:MainCanvas ()方法:对游戏进行初始化,设置游戏的背景图像及背景音乐,并实例化游戏精灵;gameStart ()方法:游戏开始,加载地鼠精灵,让其随机现身。(4) BeatSusliksMIDlet:执行程序的入口,定义了 “开始游戏”和“退出游戏”按钮地方法。三、实验结果和数据处理import java. io. *;import java, utiI. *;import javax. microedit ion. Icdui.*;import javax. microedition. Icdui. game. *;import javax. microedition, media. *;import javax. microedition, media, control. *;pub Iic cl ass Mai nCanvas extends GameCanvasimplements RunnabIeprivate private private private privateThread boo Iean int int Imagesleeping;begin;frameDeleay;bkp, hammer Image, start Img, mouse Image,gameOverImg;private private private private privateHammerSprite MouseSprite int long PlayerhammerSprite;mouseSprite;I eve I;Score;musicP layer, musicPIayerl;构造函数,进行一些初始化的设置 pub I ic Mai nCanvas ()(super (true);/frameDeleay = 33;/begin = 0;得分回零Score = 0;try游戏背景图像bkp = Image, create I mage C'/bk. pngn);游戏开始封面start I mg = Image, create I mage ("/start, png'1);锤子系列图像,构造锤子精灵hammer Image = Image. createlmage(n/chuizi. pngN);地鼠锤子系列图像,构造地鼠精灵mouse Image = Image, create I mage("/shu. png");地鼠贴片的宽和高mouseSprite = new MouseSprite( mouse I mage, 40, 30 );锤子贴片的宽和高hammerSprite = new HammerSprite ( hammer Image, 40, 30 );游戏结束画面gameOverImg = Image, createlmage ("/gameover. pngu);catch (IOExcept i on e)1 try 定义声音文件的输入流InputStream is = this. getClass(), getResourceAsStream(nMusic. midn);建立midi文件媒体播放器musicP layer = Manager. createPIayer (i s, "audio/midi");让播放器对声音流进行预提取mus i cP I ayer. prefetch ();设置声音的播放次数(无限循环)musicP Iayer. setLoopCount(-1);启动播放器mus i cP I ayer. start ();catch (IOException ioe)1)catch (MediaExcept ion me)精灵碰撞检测private void checkSpritEvent()(if (hammerSprite. col IidesWith(mouseSprite, true)mouseSprite.();加分 Score+=100;手机按键对应锤子精灵的坐标位置: private void update()(获取手机按键的键值int keySeIect = th i s. getKeyStates ();swi tch ()case LEFT.PRESSED:移动锤子精灵到指定的坐标位置 hammerSpr ite. moveTo (42, 93);检测精灵碰撞 checkSpr i tEvent ();break;case RIGHT_PRESSED:移动雇子精灵到指定的坐标位置 hammerSpr ite. moveTo(180, 92);检测精灵碰撞 checkSpr i tEvent ();break;case FIRE_PRESSED:移动锤子精灵到指定的坐标位置 hammerSpr i te. moveTo(110, 95);检测精灵碰撞 checkSpr i tEvent ();break;case UP_PRESSED:/场动锤子精灵到指定的坐标位置 hammerSpr i te. moveTo(120, 73);检测精灵碰撞 checkSpr i tEvent (); break;case DOWN_PRESSED:移务锤子精灵到指定的坐标位置 hammerSpr ite. moveTo(100, 134);检测精灵碰撞checkSpr i tEvent (); break;)显示游戏封面private void drawStart(Graphics g )(g. setColor( 0, 0, 0 );g. f i I I Rect ( 0, 0, getWidthO , getHe i ght (); g. setColor( 255, 255, 255 );g. dr aw I mage ( start I mg, 0, 0, g. T0P|g. LEFT );刷新画面f lushGraphics ();显示游戏画面private void draw( Graphics g )(g. setColor( 0, 0, 0 );g. f i I I Rect ( 0, 0, getWidthO , getHe i ght ();g. setColor( 255, 255, 255 );显示背景图像g. dr aw I mage ( bkp, 0, 0, g. TOP | g. LEFT );加载地鼠精灵mouseSpr i te. pai nt (g);加载锤子精灵hammerSpr i te. paint(g);g. setColor( 0, 0, 0 );记录得分g. drawStr i ng ( ,H+Score, 70, 194, g. TOP | g. LEFT);记录关卡g. drawStr ing( " n+mouseSpr i te. getLeve I (), 220, 194, g. TOP |g. LEFT);刷新画面f lushGraphics();过关,显示得分和过关数private void drawLevel(Graphics g)(g. setColor( 0, 0, 0 );g. f i I IRect ( 0, 0, getWidthO , getHeight ();g. setColor ( 255, 255, 255 );g. setColor ( 255, 255, 255 );在93行27列显示得分情况g. drawStr i ng ( H,+Score, 27, 93, g. TOP | g. LEFT);在93行106列显示过关数g. drawStr ing( " "+mouseSpr i te. getLeve I (), 106, 93, g. TOP | g. LEFT);在59行30列显示g. drawStr ing( "LeveI:n+mouseSpr ite. getLeveI() +" Start", 30,59,g. TOP | g. LEFT);刷新画面f lushGraphics();结束游戏画面private void drawGameOver( Graphics g )g. setColor( 0, 0, 0 );h. f i I I Rect ( 0, 0, getWidthO f getHe i ght (); 显示游戏结束画面i. draw I mage (gameOver I mg, 0, 0, g. TOP | g. LEFT);刷新画面f lushGraphics ();)启动线程pub I ic void start ()(sIeep i ng = false;t = new Thread (this);t. start ();运行线程pub I ic void run ()(Graphics g = this. getGraphics();whiIe( !sleeping )(游戏结束if ( mouseSprite. isGameOver ()(begin = -1;游戏进行中if( begin = 1 )(锤子精灵移动到指定的坐标位置update ();显示画面draw (g);try 暂停 Thread, sIeep (frameDeIeay); ) catch (InterruptedException ie) 如果是进入新关if ( mouseSprite. isNewLeveI ()显示新的关数drawLevel (g);mouseSprite. setNewLeveI (faIse);mouseSprite. initBeatMouse();Thread, sIeep (5000);catch (InterruptedException ie) 游戏开始else if ( begin = 0 )(drawStart(g);try(Thread, sIeep(frameDeIeay);catch (InterruptedException ie) 游戏结束else if( begin = -1 )(drawGameOver( g );mouseSpr i te. stop ();try mus i cP I ayer. stop () ; catch (Except i on e)( try(Thread.sIeep (500);)catch (InterruptedException ie)停止音乐pub I ic void stop ()(sIeep i ng = true;mus i cP I ayer. c I ose ();设置开始状态标志pub Iic void beginning( int b )begin = b;设置开始状态pub I ic int i fBeg i n ()(return begi n;)游戏开始pub Iic void gameStart()(开始过关数第1关beginning(l);得分归零Score = 0;初始化地鼠精灵的一些状态设置mouseSprite. i n i tGame ();加载地鼠精灵mouseSprite. start();)四、结论设计本程序的关键在于实现地鼠精灵的随机出现,几秒钟延时后,便 立即消失了,游戏操作者能够控制手机按键移动锤子精灵敲打到地鼠,发 生两类精灵碰撞。于是将程序划分为了锤子精灵HammerSprite类、地鼠精 灵 MouseSprite类、控制游戏操作的MainCanvas类以及程序入口 BeatSusliksMIDlet 类。五、问题与讨论锤子精灵HammerSprite类由两个状态的贴片构成,一个准备状态,一 个敲打状态;地鼠精灵MouseSprite类由两个状态的贴片构成,一个伸头状 态,一个被敲打状态。

    注意事项

    本文(JAVA实验报告18-“打地鼠”游戏程序设计.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开