html5中文学习网

您的位置: 首页 > html5教程 > 入门教程 » 正文

HTML5实现经典坦克大战坦克乱走还能发出一个子弹_html5教程技巧

[ ] 已经帮助:人解决问题
点评:在上篇文章中为大家介绍了如何使用HTML5实现一个可以移动的小坦克,而在本文将带领大家进入坦克大战,喜欢HTML5的朋友可不要错过了哈

复制代码
代码如下:
TxiHTML5中文学习网 - HTML5先行者学习网
<pre name="code" class="html">tank.html</pre><pre name="code" class="html"><!DOCTYPE html> TxiHTML5中文学习网 - HTML5先行者学习网
<html> TxiHTML5中文学习网 - HTML5先行者学习网
<head> TxiHTML5中文学习网 - HTML5先行者学习网
<meta charset="utf-8"/> TxiHTML5中文学习网 - HTML5先行者学习网
</head> TxiHTML5中文学习网 - HTML5先行者学习网
<body onkeydown="getCommand();"> TxiHTML5中文学习网 - HTML5先行者学习网
<h1>hmtl5-经典的坦克大战</h1> TxiHTML5中文学习网 - HTML5先行者学习网
<!--坦克大战的战场--> TxiHTML5中文学习网 - HTML5先行者学习网
<canvas id="tankMap" width="400px" height="300px" style="background-color:black"></canvas> TxiHTML5中文学习网 - HTML5先行者学习网
<span id="aa">数据</span> TxiHTML5中文学习网 - HTML5先行者学习网
<!--把tankGames.js引入到本页面--> TxiHTML5中文学习网 - HTML5先行者学习网
<script type="text/javascript" src="tank.js"></script> TxiHTML5中文学习网 - HTML5先行者学习网
<script type="text/javascript"> TxiHTML5中文学习网 - HTML5先行者学习网
//得到画布 TxiHTML5中文学习网 - HTML5先行者学习网
var canvas1=document.getElementById("tankMap"); TxiHTML5中文学习网 - HTML5先行者学习网
//得到绘图上下文(你可以理解是画笔) TxiHTML5中文学习网 - HTML5先行者学习网
var cxt=canvas1.getContext("2d"); TxiHTML5中文学习网 - HTML5先行者学习网
//我的坦克 hero TxiHTML5中文学习网 - HTML5先行者学习网
//方向 TxiHTML5中文学习网 - HTML5先行者学习网
var hero=new Hero(140,140,0,heroColor); TxiHTML5中文学习网 - HTML5先行者学习网
//定义一颗空子弹 TxiHTML5中文学习网 - HTML5先行者学习网
var heroBullet=null; TxiHTML5中文学习网 - HTML5先行者学习网
//定义敌人的坦克(敌人的坦克有多少? 思路 : 是单个单个的定义,还是放在数组中?) TxiHTML5中文学习网 - HTML5先行者学习网
var enemyTanks=new Array(); TxiHTML5中文学习网 - HTML5先行者学习网
//先死后活 ,定3个,后面我们把敌人坦克的数量,作出变量 TxiHTML5中文学习网 - HTML5先行者学习网
//0->上, 1->右, 2->下 3->左 TxiHTML5中文学习网 - HTML5先行者学习网
for(var i=0;i<3;i++){ TxiHTML5中文学习网 - HTML5先行者学习网
//创建一个坦克 TxiHTML5中文学习网 - HTML5先行者学习网
var enemyTank=new EnemyTank((i+1)*50,0,2,enmeyColor); TxiHTML5中文学习网 - HTML5先行者学习网
//把这个坦克放入数组 TxiHTML5中文学习网 - HTML5先行者学习网
enemyTanks[i]=enemyTank; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//先调用一次 TxiHTML5中文学习网 - HTML5先行者学习网
flashTankMap(); TxiHTML5中文学习网 - HTML5先行者学习网
//专门写一个函数,用于定时刷新我们的作战区,把要在作战区出现的元素(自己坦克,敌人坦克,子弹,炸弹, TxiHTML5中文学习网 - HTML5先行者学习网
//障碍物...)->游戏思想 TxiHTML5中文学习网 - HTML5先行者学习网
function flashTankMap(){ TxiHTML5中文学习网 - HTML5先行者学习网
//把画布清理 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.clearRect(0,0,400,300); TxiHTML5中文学习网 - HTML5先行者学习网
//我的坦克 TxiHTML5中文学习网 - HTML5先行者学习网
drawTank(hero); TxiHTML5中文学习网 - HTML5先行者学习网
//画出自己的子弹 TxiHTML5中文学习网 - HTML5先行者学习网
//子弹飞效果是怎么出现的?[答 : 首先我们应该每隔一定时间(setInterval)就去刷新作战区,如果在刷新的时候,子弹坐标变换了,给人的感觉就是子弹在飞!] TxiHTML5中文学习网 - HTML5先行者学习网
drawHeroBullet(); TxiHTML5中文学习网 - HTML5先行者学习网
//敌人的坦克 TxiHTML5中文学习网 - HTML5先行者学习网
//画出所有敌人坦克 TxiHTML5中文学习网 - HTML5先行者学习网
for(var i=0;i<3;i++){ TxiHTML5中文学习网 - HTML5先行者学习网
drawTank(enemyTanks[i]); TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//这是一个接受用户按键函数 TxiHTML5中文学习网 - HTML5先行者学习网
function getCommand(){ TxiHTML5中文学习网 - HTML5先行者学习网
//我怎么知道,玩家按下的是什么键 TxiHTML5中文学习网 - HTML5先行者学习网
//说明当按下键后 事件--->event对象----->事件处理函数() TxiHTML5中文学习网 - HTML5先行者学习网
var code=event.keyCode;//对应字母的ascii码->我们看码表 TxiHTML5中文学习网 - HTML5先行者学习网
switch(code){ TxiHTML5中文学习网 - HTML5先行者学习网
case 87://上 TxiHTML5中文学习网 - HTML5先行者学习网
hero.moveUp(); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 68: TxiHTML5中文学习网 - HTML5先行者学习网
hero.moveRight(); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 83: TxiHTML5中文学习网 - HTML5先行者学习网
hero.moveDown(); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 65: TxiHTML5中文学习网 - HTML5先行者学习网
hero.moveLeft(); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 74: TxiHTML5中文学习网 - HTML5先行者学习网
hero.shotEnemy(); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//触发这个函数 flashTankMap(); TxiHTML5中文学习网 - HTML5先行者学习网
flashTankMap(); TxiHTML5中文学习网 - HTML5先行者学习网
//重新绘制所有的敌人的坦克.你可以在这里写代码(思想,我们干脆些一个函数,专门用于定时刷新我们的画布[作战区]) TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//每隔100毫秒去刷新一次作战区 TxiHTML5中文学习网 - HTML5先行者学习网
window.setInterval("flashTankMap()",100); TxiHTML5中文学习网 - HTML5先行者学习网
</script> TxiHTML5中文学习网 - HTML5先行者学习网
</body> TxiHTML5中文学习网 - HTML5先行者学习网
</html></pre>TxiHTML5中文学习网 - HTML5先行者学习网
TxiHTML5中文学习网 - HTML5先行者学习网
TxiHTML5中文学习网 - HTML5先行者学习网
tank.js TxiHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
TxiHTML5中文学习网 - HTML5先行者学习网
<pre></pre> TxiHTML5中文学习网 - HTML5先行者学习网
<pre name="code" class="html"><pre name="code" class="javascript">//为了编程方便,我们定义两个颜色数组 TxiHTML5中文学习网 - HTML5先行者学习网
var heroColor=new Array("#BA9658","#FEF26E"); TxiHTML5中文学习网 - HTML5先行者学习网
var enmeyColor=new Array("#00A2B5","#00FEFE"); TxiHTML5中文学习网 - HTML5先行者学习网
//其它的敌人坦克,这里的扩展性,还是不错的. TxiHTML5中文学习网 - HTML5先行者学习网
//子弹类 TxiHTML5中文学习网 - HTML5先行者学习网
function Bullet(x,y,direct,speed){ TxiHTML5中文学习网 - HTML5先行者学习网
this.x=x; TxiHTML5中文学习网 - HTML5先行者学习网
this.y=y; TxiHTML5中文学习网 - HTML5先行者学习网
this.direct=direct; TxiHTML5中文学习网 - HTML5先行者学习网
this.speed=speed; TxiHTML5中文学习网 - HTML5先行者学习网
this.timer=null; TxiHTML5中文学习网 - HTML5先行者学习网
this.isLive=true; TxiHTML5中文学习网 - HTML5先行者学习网
this.run=function run(){ TxiHTML5中文学习网 - HTML5先行者学习网
//在该表这个子弹的坐标时,我们先判断子弹是否已经到边界 TxiHTML5中文学习网 - HTML5先行者学习网
if(this.x<=0||this.x>=400||this.y<=0||this.y>=300){ TxiHTML5中文学习网 - HTML5先行者学习网
//子弹要停止. TxiHTML5中文学习网 - HTML5先行者学习网
window.clearInterval(this.timer); TxiHTML5中文学习网 - HTML5先行者学习网
//子弹死亡 TxiHTML5中文学习网 - HTML5先行者学习网
this.isLive=false; TxiHTML5中文学习网 - HTML5先行者学习网
}else{ TxiHTML5中文学习网 - HTML5先行者学习网
//这个可以去修改坐标 TxiHTML5中文学习网 - HTML5先行者学习网
switch(this.direct){ TxiHTML5中文学习网 - HTML5先行者学习网
case 0: TxiHTML5中文学习网 - HTML5先行者学习网
this.y-=this.speed; TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 1: TxiHTML5中文学习网 - HTML5先行者学习网
this.x+=this.speed; TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 2: TxiHTML5中文学习网 - HTML5先行者学习网
this.y+=this.speed; TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 3: TxiHTML5中文学习网 - HTML5先行者学习网
this.x-=this.speed; TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
document.getElementById("aa").innerText="子弹x="+this.x+" 子弹y="+this.y; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//这是一个Tank类 TxiHTML5中文学习网 - HTML5先行者学习网
function Tank(x,y,direct,color){ TxiHTML5中文学习网 - HTML5先行者学习网
this.x=x; TxiHTML5中文学习网 - HTML5先行者学习网
this.y=y; TxiHTML5中文学习网 - HTML5先行者学习网
this.speed=1; TxiHTML5中文学习网 - HTML5先行者学习网
this.direct=direct; TxiHTML5中文学习网 - HTML5先行者学习网
//一个坦克,需要两个颜色. TxiHTML5中文学习网 - HTML5先行者学习网
this.color=color; TxiHTML5中文学习网 - HTML5先行者学习网
//上移 TxiHTML5中文学习网 - HTML5先行者学习网
this.moveUp=function(){ TxiHTML5中文学习网 - HTML5先行者学习网
this.y-=this.speed; TxiHTML5中文学习网 - HTML5先行者学习网
this.direct=0; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//向右 TxiHTML5中文学习网 - HTML5先行者学习网
this.moveRight=function(){ TxiHTML5中文学习网 - HTML5先行者学习网
this.x+=this.speed; TxiHTML5中文学习网 - HTML5先行者学习网
this.direct=1; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//下移 TxiHTML5中文学习网 - HTML5先行者学习网
this.moveDown=function(){ TxiHTML5中文学习网 - HTML5先行者学习网
this.y+=this.speed; TxiHTML5中文学习网 - HTML5先行者学习网
this.direct=2; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//左 TxiHTML5中文学习网 - HTML5先行者学习网
this.moveLeft=function(){ TxiHTML5中文学习网 - HTML5先行者学习网
this.x-=this.speed; TxiHTML5中文学习网 - HTML5先行者学习网
this.direct=3; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//定义一个Hero类 TxiHTML5中文学习网 - HTML5先行者学习网
//x 表示坦克的 横坐标, y 表示纵坐标, direct 方向 TxiHTML5中文学习网 - HTML5先行者学习网
function Hero(x,y,direct,color){ TxiHTML5中文学习网 - HTML5先行者学习网
//下面两句话的作用是通过对象冒充,达到继承的效果 TxiHTML5中文学习网 - HTML5先行者学习网
this.tank=Tank; TxiHTML5中文学习网 - HTML5先行者学习网
this.tank(x,y,direct,color); TxiHTML5中文学习网 - HTML5先行者学习网
//增加一个函数,射击敌人坦克. TxiHTML5中文学习网 - HTML5先行者学习网
this.shotEnemy=function(){ TxiHTML5中文学习网 - HTML5先行者学习网
//创建子弹, 子弹的位置应该和hero有关系,并且和hero的方向有关.!!! TxiHTML5中文学习网 - HTML5先行者学习网
//this.x 就是当前hero的横坐标,这里我们简单的处理(细化) TxiHTML5中文学习网 - HTML5先行者学习网
switch(this.direct){ TxiHTML5中文学习网 - HTML5先行者学习网
case 0: TxiHTML5中文学习网 - HTML5先行者学习网
heroBullet=new Bullet(this.x+9,this.y,this.direct,1); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 1: TxiHTML5中文学习网 - HTML5先行者学习网
heroBullet=new Bullet(this.x+30,this.y+9,this.direct,1); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 2: TxiHTML5中文学习网 - HTML5先行者学习网
heroBullet=new Bullet(this.x+9,this.y+30,this.direct,1); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 3: //右 TxiHTML5中文学习网 - HTML5先行者学习网
heroBullet=new Bullet(this.x,this.y+9,this.direct,1); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//调用我们的子弹run, 50 是老师多次测试得到的一个结论. TxiHTML5中文学习网 - HTML5先行者学习网
var timer=window.setInterval("heroBullet.run()",50); TxiHTML5中文学习网 - HTML5先行者学习网
//把这个timer赋给这个子弹(js对象是引用传递!) TxiHTML5中文学习网 - HTML5先行者学习网
heroBullet.timer=timer; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//定义一个EnemyTank类 TxiHTML5中文学习网 - HTML5先行者学习网
function EnemyTank (x,y,direct,color){ TxiHTML5中文学习网 - HTML5先行者学习网
//也通过对象冒充,来继承Tank TxiHTML5中文学习网 - HTML5先行者学习网
this.tank=Tank; TxiHTML5中文学习网 - HTML5先行者学习网
this.tank(x,y,direct,color); TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//画出自己的子弹,多说一句,你也可以把该函数封装到Hero类中 TxiHTML5中文学习网 - HTML5先行者学习网
function drawHeroBullet(){ TxiHTML5中文学习网 - HTML5先行者学习网
//这里,我们加入了一句话,但是要知道这里加,是需要对整个程序有把握 TxiHTML5中文学习网 - HTML5先行者学习网
if(heroBullet!=null&&heroBullet.isLive){ TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillStyle="#FEF26E"; TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillRect(heroBullet.x,heroBullet.y,2,2); TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
//绘制坦克 TxiHTML5中文学习网 - HTML5先行者学习网
function drawTank(tank){ TxiHTML5中文学习网 - HTML5先行者学习网
//考虑方向 TxiHTML5中文学习网 - HTML5先行者学习网
switch(tank.direct){ TxiHTML5中文学习网 - HTML5先行者学习网
case 0: //上 TxiHTML5中文学习网 - HTML5先行者学习网
case 2:// 下 TxiHTML5中文学习网 - HTML5先行者学习网
//画出自己的坦克,使用前面的绘图技术 TxiHTML5中文学习网 - HTML5先行者学习网
//设置颜色 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillStyle=tank.color[0]; TxiHTML5中文学习网 - HTML5先行者学习网
//韩老师使用 先死--->后活 (初学者最好用这个方法) TxiHTML5中文学习网 - HTML5先行者学习网
//先画出左面的矩形 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillRect(tank.x,tank.y,5,30); TxiHTML5中文学习网 - HTML5先行者学习网
//画出右边的矩形(这时请大家思路->一定要一个参照点) TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillRect(tank.x+15,tank.y,5,30); TxiHTML5中文学习网 - HTML5先行者学习网
//画出中间矩形 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillRect(tank.x+6,tank.y+5,8,20); TxiHTML5中文学习网 - HTML5先行者学习网
//画出坦克的盖子 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillStyle=tank.color[1]; TxiHTML5中文学习网 - HTML5先行者学习网
cxt.arc(tank.x+10,tank.y+15,4,0,360,true); TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fill(); TxiHTML5中文学习网 - HTML5先行者学习网
//画出炮筒(直线) TxiHTML5中文学习网 - HTML5先行者学习网
cxt.strokeStyle=tank.color[1]; TxiHTML5中文学习网 - HTML5先行者学习网
//设置线条的宽度 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.lineWidth=1.5; TxiHTML5中文学习网 - HTML5先行者学习网
cxt.beginPath(); TxiHTML5中文学习网 - HTML5先行者学习网
cxt.moveTo(tank.x+10,tank.y+15); TxiHTML5中文学习网 - HTML5先行者学习网
if(tank.direct==0){ TxiHTML5中文学习网 - HTML5先行者学习网
cxt.lineTo(tank.x+10,tank.y); TxiHTML5中文学习网 - HTML5先行者学习网
}else if(tank.direct==2){ TxiHTML5中文学习网 - HTML5先行者学习网
cxt.lineTo(tank.x+10,tank.y+30); TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
cxt.closePath(); TxiHTML5中文学习网 - HTML5先行者学习网
cxt.stroke(); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
case 1: //右和左 TxiHTML5中文学习网 - HTML5先行者学习网
case 3: TxiHTML5中文学习网 - HTML5先行者学习网
//画出自己的坦克,使用前面的绘图技术 TxiHTML5中文学习网 - HTML5先行者学习网
//设置颜色 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillStyle=tank.color[0]; TxiHTML5中文学习网 - HTML5先行者学习网
//韩老师使用 先死--->后活 (初学者最好用这个方法) TxiHTML5中文学习网 - HTML5先行者学习网
//先画出左面的矩形 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillRect(tank.x,tank.y,30,5); TxiHTML5中文学习网 - HTML5先行者学习网
//画出右边的矩形(这时请大家思路->一定要一个参照点) TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillRect(tank.x,tank.y+15,30,5); TxiHTML5中文学习网 - HTML5先行者学习网
//画出中间矩形 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillRect(tank.x+5,tank.y+6,20,8); TxiHTML5中文学习网 - HTML5先行者学习网
//画出坦克的盖子 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fillStyle=tank.color[1]; TxiHTML5中文学习网 - HTML5先行者学习网
cxt.arc(tank.x+15,tank.y+10,4,0,360,true); TxiHTML5中文学习网 - HTML5先行者学习网
cxt.fill(); TxiHTML5中文学习网 - HTML5先行者学习网
//画出炮筒(直线) TxiHTML5中文学习网 - HTML5先行者学习网
cxt.strokeStyle=tank.color[1]; TxiHTML5中文学习网 - HTML5先行者学习网
//设置线条的宽度 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.lineWidth=1.5; TxiHTML5中文学习网 - HTML5先行者学习网
cxt.beginPath(); TxiHTML5中文学习网 - HTML5先行者学习网
cxt.moveTo(tank.x+15,tank.y+10); TxiHTML5中文学习网 - HTML5先行者学习网
//向右 TxiHTML5中文学习网 - HTML5先行者学习网
if(tank.direct==1){ TxiHTML5中文学习网 - HTML5先行者学习网
cxt.lineTo(tank.x+30,tank.y+10); TxiHTML5中文学习网 - HTML5先行者学习网
}else if(tank.direct==3){ //向左 TxiHTML5中文学习网 - HTML5先行者学习网
cxt.lineTo(tank.x,tank.y+10); TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
cxt.closePath(); TxiHTML5中文学习网 - HTML5先行者学习网
cxt.stroke(); TxiHTML5中文学习网 - HTML5先行者学习网
break; TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
} TxiHTML5中文学习网 - HTML5先行者学习网
</pre>TxiHTML5中文学习网 - HTML5先行者学习网
TxiHTML5中文学习网 - HTML5先行者学习网
TxiHTML5中文学习网 - HTML5先行者学习网
<pre></pre> TxiHTML5中文学习网 - HTML5先行者学习网
</pre> TxiHTML5中文学习网 - HTML5先行者学习网
TxiHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助