html5 制作颜色判断游戏,html5 canvas颜色爆炸射击类小游戏

一款html5 canvas颜色爆炸射击类小游戏特效代码,通过键盘来控制方向的移动,通过空格键发射子弹和游戏结束时重新开始,整个效果还是不错的,想拿高分也是不容易的哦。

8ce5e1fce0f290c5e28c16adbd0ecb81.png

分类:游戏

> 益智

难易:初级

查看演示

下载资源:

8

次 下载资源

下载积分:

20

积分

页面的head部分,需要设置好各元素的样式,代码如下: * {

margin: 0;

padding: 0;

box-sizing: border-box;

}

html, body {

height: 100%;

}

body {

min-height: 100%;

max-width: 100%;

background: #111;

font-family: 'Microsoft YaHei','Lantinghei SC','Open Sans',Arial,'Hiragino Sans GB','STHeiti','WenQuanYi Micro Hei','SimSun',sans-serif;

}

}

.container {

min-height: 100%;

max-width: 960px;

margin: 0 auto;

}

.game-wrap {

position: relative;

padding: 20px 0 0;

}

canvas {

position: relative;

max-width: 100%;

border: 2px solid black;

max-height: 100%;

display: block;

margin: 0 auto;

}

.content {

color: #ccc;

text-align: center;

padding: 0 20px;

}

p {

margin: 10px 0;

font-size: 18px;

line-height: 1.5em;

}

code {

background: #222;

background: -webkit-linear-gradient(#222, #000);

background: linear-gradient(#222, #000);

line-height: 1.3em;

display: inline-block;

border-radius: 3px;

font-family: monospace;

padding: 1px 5px;

margin: 0 2px;

}

a {

color: skyblue;

text-decoration: none;

-webkit-transition: .2s;

transition: .2s;

}

a:hover {

color: #b3e0f2;

text-decoration: underline;

}

.title {

font-size: 40px;

font-weight: 900;

margin: 20px 0;

}

.title span:nth-child(1) {

color: #bf8040;

}

.title span:nth-child(2) {

color: #bfbf40;

}

.title span:nth-child(3) {

color: #80bf40;

}

.title span:nth-child(4) {

color: #40bf40;

}

.title span:nth-child(5) {

color: #40bf80;

}

.title span:nth-child(6) {

color: #40bfbf;

}

.title span:nth-child(7) {

color: #4080bf;

}

.title span:nth-child(8) {

color: #4040bf;

}

.title span:nth-child(9) {

color: #8040bf;

}

.title span:nth-child(10) {

color: #bf40bf;

}

.title span:nth-child(11) {

color: #bf4080;

}

页面的body部分,将canvas和其实操作说明放在一个div容器里,代码如下:

使用 小键盘"左" 和 "右" 箭头或 "a" 和 "d" 键移动, "空格键" 发射子弹。

页面的底部,需要写好所有的事件响应,代码比较多,这里贴出部分代码: init: function(){

this.c = document.getElementById("game");

this.c.width = this.c.width;

this.c.height = this.c.height;

this.ctx = this.c.getContext("2d");

this.color = "rgba(20,20,20,.7)";

this.bullets = [];

this.enemyBullets = [];

this.enemies = [];

this.particles = [];

this.bulletIndex = 0;

this.enemyBulletIndex = 0;

this.enemyIndex = 0;

this.particleIndex = 0;

this.maxParticles = 10;

this.maxEnemies = 6;

this.enemiesAlive = 0;

this.currentFrame = 0;

this.maxLives = 3;

this.life = 0;

this.binding();

this.player = new Player();

this.score = 0;

this.paused = false;

this.shooting = false;

this.oneShot = false;

this.isGameOver = false;

this.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;

for(var i = 0; i

new Enemy();

this.enemiesAlive++;

}

this.invincibleMode(2000);

this.loop();

},

binding: function(){

window.addEventListener("keydown", this.buttonDown);

window.addEventListener("keyup", this.buttonUp);

window.addEventListener("keypress", this.keyPressed);

this.c.addEventListener("click", this.clicked);

},

clicked: function(){

if(!Game.paused) {

Game.pause();

} else {

if(Game.isGameOver){

Game.init();

} else {

Game.unPause();

Game.loop();

Game.invincibleMode(1000);

}

}

},

keyPressed: function(e){

if(e.keyCode === 32){

if(!Game.player.invincible && !Game.oneShot){

Game.player.shoot();

Game.oneShot = true;

}

if(Game.isGameOver){

Game.init();

}

e.preventDefault();

}

},

buttonUp: function(e){

if(e.keyCode === 32){

Game.shooting = false;

Game.oneShot = false;

e.preventDefault();

}

if(e.keyCode === 37 || e.keyCode === 65){

Game.player.movingLeft = false;

}

if(e.keyCode === 39 || e.keyCode === 68){

Game.player.movingRight = false;

}

},

buttonDown: function(e){

if(e.keyCode === 32){

Game.shooting = true;

}

if(e.keyCode === 37 || e.keyCode === 65){

Game.player.movingLeft = true;

}

if(e.keyCode === 39 || e.keyCode === 68){

Game.player.movingRight = true;

}

},

random: function(min, max){

return Math.floor(Math.random() * (max - min) + min);

},

invincibleMode: function(s){

this.player.invincible = true;

setTimeout(function(){

Game.player.invincible = false;

}, s);

},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
html5 canvas填色画游戏代码是一款适合儿童玩的益智类填色游戏,通过选中色块,来给模型填充颜色。支持多种模型选择填色效果。 function extend(O1,O2){     for(var i in O2){         O1[i]=O2[i];     } } function each(arr,f){     for(var i = 0;i<arr.length;i ){         f.call(arr[i],i,arr[i]);     } } function dataInfo(Obj,x,y){     var c=document.createElement("canvas");     var txt= c.getContext("2d");     c.width=Obj.img.width;     c.height=Obj.img.height;     txt.drawImage(Obj.img,0,0);     var data=txt.getImageData(x-1,y-1,3,3);     var num=0;     for(var q=0;q<data.data.length;q =4){         num =data.data[q 3];     }     num=num/9;     return parseInt(num); } var HGAME=new Object(); HGAME.event=new Object();//事件对象 HGAME.event.clickBuffer=new Array();//缓存要添加事件的节点 click buffer HGAME.animate=function(Obj){     var defaultObj={         time:30,//动画间隔         frequency:-1,//动画次数 -1表示无限制         action:function(){},//动画每一帧的动作         lastAction:function(){}//最后一次动画执行完成触发函数     };     extend(defaultObj,Obj);     var oldTime=new Date();     var newTime=null;     this.time=defaultObj.time;     this.frequency=defaultObj.frequency;     this.action=defaultObj.action;     this.lastAction=defaultObj.lastAction;     this.stop=function(){         cancelAnimationFrame(this.INT_BUFFER);     };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值