HTML5游戏开发实例分享-百度PPT学习课件
- 格式:ppt
- 大小:6.62 MB
- 文档页数:29
目录•7.1 游戏开发前地技术准备•7.2 实例 7-1 :小黄人吃泡泡游戏•7.3 实例 7-2 :经典俄罗斯方块游戏游戏开发前地技术准备7.1 游戏开发前地技术准备 •7.1.1 Canvas 动画地实现•7.1.2 元素碰撞检测与自由落体•7.1.3 鼠标键盘事件•采用 Canvas 地绘图方法与 JavaScript 时间函数相结合,动画效果就可以实现了,具体步骤如下.•利用 Canvas 绘制动画。
•以 JavaScript 时间函数来控制循环。
•绘制第一帧图形(利用 API 绘图)。
•清空画板(使用方法 clearRect 或 fillRect)。
•绘制下一帧动画。
•JavaScript 提供地时间控制方法:•window.setInterval:指定某个任务每隔一段时间就执行一次,也就是无限次地定时执行•window.setTimeoutt:指定某个函数或字符串在指定地毫秒数之后执行•window.requestAnimationFrame(callback):在下一次浏览器重绘之前,调用指定地函数callback)来更新动画参考代码if(!window.requestAnimationFrame) {// 如果不支持 requestAnimationFrame, 就使用各浏览器地私有属性 webkit, mozwindow.requestAnimationFrame = (window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame ||window.msRquestAniamtionFrame ||window.oRequestAnimationFrame ||function(callback) {// 通过 setTimeout 指定 1 秒调用 60 次return setTimeout(callback, Math.floor(1000 / 60));})}•一般情况下,优先使用 requestAnimationFrame,但兼容性不太理想,可以通过以下代码实现兼容7.1.1 Canvas 动画地实现例如:实现一个小球来回往返匀速运动地动画效果参考代码<!-- 项目 Example7-1--><canvas id="myCanvas" width="640" height="600">您地浏览器不支持 Canvas, 请更换浏览器或者升级浏览器版本!</canvas><script>var canvas = document.getElementById('myCanvas');var ctx= canvas.getContext('2d');// 小球地初始位置var x = 20;// 设定小球运动地速度var V = 4;function run() {// 清空画布ctx.clearRect(0, 0, canvas.width, canvas.height);// 每次在新地地点重新绘制小球ctx.beginPath();var gradient = ctx.createRadialGradient(x , 180, 0, x, 190, 20);gradient.addColorStop(0, '#FFB6C1');gradient.addColorStop(1, '#FF1493');ctx.fillStyle = gradient;ctx.arc(x, 200, 30, 0, 2 * Math.PI);ctx.fill();x = x + V;// 沿着 x 轴方向往返移动if(x > (canvas.width - 20) || x < 20) {V = -V;}// 使用 requestAnimationFrame 方法完成递归调用window.requestAnimationFrame(run);}run();</script>•根据由自由落体原理,小球运动地轨迹可分解为计算 x 轴方向与 y 轴方向地轨迹。