canvas游戏开发.ppt_第1页
canvas游戏开发.ppt_第2页
canvas游戏开发.ppt_第3页
canvas游戏开发.ppt_第4页
canvas游戏开发.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CANVAS 游戏制作,Make Presentation much more fun,WPS官方微博 kingsoftwps,杭州电子科技大学 王劲 ,CANVAS 常用操作,操纵像素 putImageData(),getImageData(),绘制位图 drawImage(),绘制矩形 clearRect(),fillRect(),绘制复杂路径 beginPath(),closePath(),fill(),stroke(),矩形转换 rotate(),scale(),translate(),transform(),游戏的基本流程,擦除背景,画游戏物体,1更新游戏数据 2处理键盘,鼠标事件,

2、循 环,Sprite 图像精灵,(x,y),height,width,property:x,y,width,height,angle,scaleX,scaleY,alpha,MovieClip 影片剪辑,time+,frame+,时间轴,帧数,property:x,y,width,height,frame,totalFrame,fps,物体de移动,基本方式 :sprite.x += sprite.speedX; sprite.y += sprite.speedY;,更进一步 : sprite.speedX += sprite.ax; sprite.x += sprite.speedX; sp

3、rite.speedY += sprite.ay; sprite.y += sprite.speedY;,向量来了,function Vector(x, y) this.x = x | 0; this.y = y | 0; ,a,b,a + b,a,b,a - b,向量来了,位置,速度,加速度都可以用向量表示,x,y,a,v,a,a + v = a,向量来了,y,x,cir1,cir2,cir1 - cir2,v,v,碰撞检测,矩形碰撞 :,function hitRect(x0,y0,w0,h0,x1,y1,w1,h1) var w =Math.abs( x0 - (x1 + w1); va

4、r h = Math.abs(y0 - (y1 + h1); return w (w0 + w1) ,像素级碰撞,这可以通过getImageData()来判断,第一步:先矩形检测,若碰撞,则再进行第二步,若无碰撞,直接返回false,(minx, miny),(maxx, maxy),context.drawImage(this.img, this.x, this.y); var data1 = context.getImageData(minx, miny, maxx - minx, maxy - miny).data; context.clearRect(0, 0, 550, 400);

5、context.drawImage(sprite.img, sprite.x, sprite.y); var data2 = context.getImageData(minx, miny, maxx - minx, maxy - miny).data; for(var i = 3; i 0 ,第二步:有两种方法,第一种:同时检测两图在红色矩形内的像素,若存在一点在两个图上的alpha值不为0,则发生碰撞,(minx,miny),(maxx,maxy),context.drawImage(this.img, this.x, this.y); context.globalCompositeOpe

6、ration = source-in; context.drawImage(sprite.img, sprite.x, sprite.y); var data = context.getImageData(minx, miny, maxx - minx, maxy - miny).data; context.globalCompositeOperation = source-over; for(var i = 3; i 0 ) return true; return false;,第二步:有两种方法,(minx,miny),(maxx,maxy),第二种:先画一张图,然后将混合模式改为source-in,这时再画图,新图片会仅仅出现与原有内容重叠的地方,其他地方透明度变为0,这时就可以通过判断是否所有像素都透明来判断碰撞了,数组地图,键盘控制,用一个keyState储存按键状态:var keyState = ; 在keydow

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论