您现在的位置是:网站首页> 编程资料编程资料
用HTML5制作一个简单的桌球游戏的教程HTML5 audio标签使用js进行播放控制实例HTML5全屏(Fullscreen)API详细介绍HTML5 video播放器全屏(fullScreen)方法实例
2023-10-14
438人已围观
简介 这篇文章主要介绍了用HTML5制作一个简单的桌球游戏的教程,主要利用到了HTML5的Canvas API,需要的朋友可以参考下
话说这只是一个简单的DEMO。游戏性,游戏规则什么的我都没怎么考虑,如果有兴趣细化的朋友可以细化一下,比如细化一下规则,游戏开关,加个声音,细化一下进球检测,更严谨甚至可以去查下击球力度、桌面真实摩擦力等来把游戏弄的更像游戏。我只是给个编程思路哈,随便坐个DEMO而已,玩起来估计还是不会很爽快的~~
桌球游戏
整个桌球游戏就两个类,一个是球,一个是辅助瞄准线。如果想把改游戏弄的更复杂,还可以再抽象一个形状类,用于检测球与边角的碰撞以及进球。我做的这个游戏采取了最简单的墙壁碰撞检测,所以没有进行球与不规则形状的碰撞检测,如果想玩更复杂的碰撞,可以戳 关于简单的碰撞检测 岑安大大讲的还是很好的。好,接下来就一步一步来:
【球】
先贴代码:
[/code]var Ball = function(x , y , ismine){
this.x = x;
this.y = y;
this.ismine = ismine;
this.oldx = x;
this.oldy = y;
this.vx = 0;
this.vy = 0;
this.radius = ballRadius;
this.inhole = false;this.moving = true;
}
Ball.prototype = {
constructor:Ball,
_paint:function(){
var b = this.ismine?document.getElementById("wb") : document.getElementById("yb")
if(b.complete) {
ctx.drawImage(b , this.x-this.radius , this.y-this.radius , 2*this.radius , 2*this.radius);
}
else {
b.onload = function(){
ctx.drawImage(b , this.x-this.radius , this.y-this.radius , 2*this.radius , 2*this.radius);
}
}
},
_run:function(t){
this.oldx = this.x;
this.oldy = this.y;
this.vx = Math.abs(this.vx)<0.1? 0 : (this.vx>0? this.vx-mcl*t : this.vx+mcl*t);
this.vy = Math.abs(this.vy)<0.1? 0 : (this.vy>0? this.vy-mcl*t : this.vy+mcl*t);
// this.vx += this.vx>0? -mcl*t : mcl*t;
// this.vy += this.vy>0? -mcl*t : mcl*t;
this.x += t * this.vx * pxpm;
this.y += t * this.vy * pxpm;
if((this.x<50 && this.y<50) || (this.x>370 && this.x<430 && this.y<50) || (this.x > 758 && this.y<50) || (this.x<46 && this.y>490) || (this.x>377 && this.x<420 && this.y>490) || (this.x > 758 && this.y>490)){
this.inhole = true;
if(this.ismine){
var that = this;
setTimeout(function(){
that.x = 202;
that.y = canvas.height/2;
that.vx = 0;
that.vy = 0;
that.inhole = false;
} , 500)
}
else {
document.getElementById("shotNum").innerHTML = parseInt(document.getElementById("shotNum").innerHTML)+1
}
}
else {
if(this.y > canvas.height - (ballRadius+tbw) || this.y < (ballRadius+tbw)){
this.y = this.y < (ballRadius+tbw) ? (ballRadius+tbw) : (canvas.height - (ballRadius+tbw));
this.derectionY = !this.derectionY;
this.vy = -this.vy*0.6;
}
if(this.x > canvas.width - (ballRadius+tbw) || this.x < (ballRadius+tbw)){
this.x = this.x < (ballRadius+tbw) ? (ballRadius+tbw) : (canvas.width - (ballRadius+tbw));
this.derectionX = !this.derectionX;
this.vx = -this.vx*0.6;
}
}
this._paint();
if(Math.abs(this.vx)<0.1 && Math.abs(this.vy)<0.1){
this.moving = false;
}
else {
this.moving = true;
相关内容
- 利用HTML5绘制点线面组成的3D图形的示例Html5+JS实现手机摇一摇功能HTML5 Canvas的事件处理介绍HTML5 audio标签使用js进行播放控制实例
- 用HTML5制作烟火效果的教程html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- 浅谈利用缓存来优化HTML5 Canvas程序的性能一张图看懂移动HTML5前端性能优化
- 用HTML5制作数字时钟的教程Html5 canvas实现粒子时钟的示例代码HTML写一个网页动态时钟HTML5实现可缩放时钟代码用HTML5的canvas实现一个炫酷时钟效果使用html5 canvas 画时钟代码实例分享html5绘制时钟动画html5时钟实现代码HTML 罗盘式时钟的实现
- 用HTML5 实现橡皮擦的涂抹效果的教程Html5+JS实现手机摇一摇功能HTML5 Canvas的事件处理介绍HTML5 audio标签使用js进行播放控制实例
- 用HTML5中的Canvas结合公式绘制粒子运动的教程详解使用HTML5 Canvas创建动态粒子网格动画Html5 canvas实现粒子时钟的示例代码
- 使用分层画布来优化HTML5渲染的教程html5 分层屏幕适配的方法Html分层的box-shadow效果的示例代码
- 简单介绍HTML5中的文件导入jQuery+HTML5实现的页面整屏滑动切换效果源码html5实现的网格布局动画加载并打开内容特效源码html5实现的可拖拽图片循环滚动切换特效源码
- HTML5实现获取地理位置信息并定位功能HTML5地理定位_动力节点Java学院整理HTML5地理定位实例简单html5代码获取地理位置h5实现获取用户地理定位的实例代码
- 天天飞车怎么超车 各种超车技巧详解_手机游戏_游戏攻略_
