资源描述:
《J2ME程序设计实例教程(第07章)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、J2ME程序设计实例教程第07章推箱子作者:杨光E-mail:guang760212@sohu.com第7章推箱子本章将设计一个手机上的推箱子游戏,学习GAMEAPI的使用。7.1知识点7.2设计要求7.3类设计7.4代码实现7.5实践7.1知识点——GAMEAPIGAMEAPI定义在javax.microedition.lcdui.game包中,由GameCanvas、Layer、TiledLayer、Sprite、LayerManager等5个类组成。7.1知识点——GameCanvas类GameCanvas扩展了javax.microedition.lc
2、dui.Canvas,是一个抽象类,为游戏提供了基本的游戏用户界面。GameCanvas类实现了双缓存技术。publicvoidflushGraphics()publicvoidflushGraphics(intxinty,intwidth,intheight)按键状态查询intkeyState=getKeyState();if((key&UP_PRESSED)!=0){//向上的方向键被按下}7.1知识点——Layer类Layer是个抽象类,用于表示游戏中的可见元素。例如:游戏背景、行走的人物、奔跑的怪兽等。GameAPI为开发人员提供了两个Layer的子类
3、:TiledLayer和Sprite。常用方法:publicintgetWidth()publicintgetHeight()publicintgetX()publicintgetY()publicvoidsetPosition(intx,inty)publicvoidsetVisible(booleanb)publicbooleanisVisible()publicvoidmove(inthd,intvd)7.1知识点——TiledLayer类TiledLayer是Layer的子类,用于创建游戏背景。该类创建的游戏背景由单元网格组成,单元格使用图像贴砖填充,
4、就好像在用马赛克拼图一样。图像贴砖由Image对象提供,一个Image对象表示一幅图片,这个图片可以被水平和垂直分割成一系列大小相等的图像贴砖,并且每个图像贴砖都被指定一个唯一的引用值。7.1知识点——TiledLayer类try{Imageimg=Image.createImage("/Storage.png");TiledLayerbackground=newTiledLayer(8,8,img,16,16);}catch(IOExceptionioe){System.out.println("读取图片错误!"+ioe.toString());}7.1知识
5、点——TiledLayer类填充背景方法:publicvoidsetCell(intcol,introw,inttiledIndex)publicvoidfillCells(intcol,introw,intnumCols,intnumRows,inttiledIndexs)7.1知识点——TiledLayer类常用方法:publicintgetRows()publicintgetColumns()publicintgetCell(intcol,introw)publicintgetCellWidth()publicintgetCellHeight()publ
6、icvoidsetStaticTileSet(Imageimg,inttileWidth,intTileHeight)7.1知识点——Sprite类Sprite是Layer的子类,描述了游戏中活动的角色。例如,行走的人物、奔跑的怪物、飞行的子弹等。Sprite创建的对象拥有一个帧的集合,集合中的帧用来描绘Sprite对象的外观,任一时刻只显示一帧图像。如果快速、连续的显示集合中不同的帧,那么Sprite对象就会呈现出动画的效果。7.1知识点——Sprite类7.1知识点——Sprite类创建Sprite对象try{Imageimg=Image.createIm
7、age("/worker.png");Spriteworker=newSpriter(img,16,16);}catch(IOExceptionioe){System.out.println("加载图片错误!"+ioe.toString());}7.1知识点——Sprite类Sprite对象通过下面的方法可以改变当前显示的帧。publicvoidsetFrame(intsequenceIndex)publicvoidnextFrame()publicvoidprevFrame()7.1知识点——Sprite类碰撞检测publicbooleancollidesW
8、ith(Sprites,boolean