网站大量收购闲置独家精品文档,联系QQ:2885784924

[绘画游戏引擎说明.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[绘画游戏引擎说明

MVC动画的原理引擎伪代码原理:一个僵尸画在屏幕上X轴50-Y轴100,宽40高60(最底层的调用);Canvas canvas = getHolder().lockCanvas(); Bitmap src = BitmapFactory.decodeResource(context.getResources(), R.draw.zomb_0);new Drawable draw=new BitmapDrawable(src); posX=50;posy=100;width=40;height=60;draw.setBounds(posX, posY, posX + width, posY + height);draw.draw(canvas);getHolder().unlockCanvasAndPost(canvas);于是将定义角色(精灵)封装绘画作为最底层调用Public class Actor(){ Int x; Int y; Int width; Int height;Drawable currentDrawable; public void draw(Canvas canvas) { if (currentDrawable != null) {try {currentDrawable.setBounds(posX, posY, posX + width, posY+ height);currentDrawable.draw(canvas);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}} }}一片僵尸(静态的)画在屏幕上;//新建10个僵尸的X,Y轴为随机位置stage.draw()伪代码:Public class Main extends Activtity{static ListActor list = new ListActor();Canvas canvas = getHolder().lockCanvas();for(int i=0;i10;i++){ Actor actor=new ZombActor(); actor..setposX(new Random().nextInt(300)); actor..setposY(new Random().nextInt(300));actor.draw(canvas)}; list.add(actor);}getHolder().unlockCanvasAndPost(canvas);}进一步封装由stage管理Actor的list集合;Public void stage (){ ArrayList actorList=new ArrayListactor(); //将所有Actor画在某个画布上Void draw(Canvas canvas){ for(Actor actor:actorlist){ actor.draw(canvas);}}} 由view管理canvas绘画于是stage.draw()相当于遍历所有Actor集合调用所有Actor的draw()方法;view.draw();相当于将一次stage.draw()画在一次画布上;pubic class view{draw();伪代码:Canvas canvas = getHolder().lockCanvas();stage.draw(canvas);getHolder().unlockCanvasAndPost(canvas);}}一片僵尸(动态)在屏幕上向右移动;Stage stage=new Stage();SurfaceView view=(SurfaceView)findViewByid(R.id.view);view.setStage(stage);stage.setActorlist(new ArrayListActor());//添加10个僵尸到stage的actorListfor(int i=0;i10;i++){Actor actor=new Actor();actor.currentdraw=Bitmap.uitl(”僵尸”);actor.x=new Random().nextInt(300);actor.y=new Random().nextInt(300);actor.width=40;actor.height=60;stage.getArraylist().add(new Actor)}启动一个线程来绘画new Thread(public void run(){ While(true ){ //遍历所有stage中list的Actor集

文档评论(0)

1789811832 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档