91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS實現簡易貪吃蛇游戲

發布時間:2020-09-12 23:19:50 來源:腳本之家 閱讀:127 作者:彎月liang 欄目:開發技術

本文實例為大家分享了JS實現簡易貪吃蛇的具體代碼,供大家參考,具體內容如下

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <meta charset="utf-8">
 <style type="text/css">
 #body{
  width: 900px;/*長寬最好是obj的倍數*/
  height: 600px;
  border-width: 10px;
  border-style: solid;
  border-color: blue;
  line-height:600px;/*文本垂直居中*/
  text-align: center;/*文本水平居中*/
  position: relative;/*相對定位*/
  left: 0px;
  top: 0px;
 }
 #obj{
  width: 30px;
  height: 30px;
  background-color: red;
  position: absolute;/*絕對定位*/
  left: 0px;
  top: 0px;
  z-index: 1;/*頭部在上層顯示*/
 }
 div{
  text-align: center;
  line-height:30px;
 }
 </style>
</head>
 
<body id='body'>
 <!--內容-->
 按awsd移動
 <div id='obj'></div>
 <select id='speed' onclick="setspeed(this)">
 <option value="100">快速</option>
 <option value="500">中速</option>
 <option value="1000" selected>慢速</option>
 </select>
 | <button onclick="lenbodyadd()">身體+1</button>
 | <button onclick="stopspeed()">暫停</button>
 <div class="div"></div>
</body>
</html>
<script>
 
 var val={key:"d"};//默認向右移動
 var key = document.getElementById("body");
 key.onkeydown =f; //注冊keydown事件處理函數
 var divnum=1;//身體每節編號
 var lenbody=5;//默認身體長度
 var speed=1000;//默認速度
 
 var obj=document.getElementById('obj');
 var myWidth=parseInt(getComputedStyle(obj,null).getPropertyValue('width'));
 var myHeight=parseInt(getComputedStyle(obj,null).getPropertyValue('height'));
 
 var clientH= document.body.clientHeight;//獲取body高
 var clientW= document.body.clientWidth;//獲取body寬
 
 var foodLeft=0;//食物x坐標
 var foodTop=0;//食物y坐標
 
 function f (va) {
 var e = e || window.event; //標準化事件處理
 let s = '';//val.type + " " + val.key; //獲取鍵盤事件類型和按下的值
 let key=val.key;
 val=va;
 
 var myTop=parseInt(getComputedStyle(obj,null).getPropertyValue('top'));//獲取精靈y坐標 parseInt(obj.style.top);
 var myLeft=parseInt(getComputedStyle(obj,null).getPropertyValue('left'));//獲取精靈x坐標 parseInt(obj.style.left);
 
 var movePx=myWidth;//每次移動的距離
 var move=0;
 if(key=='w'){
  move=myTop-movePx;//每次移動10
  if(move<0 || move>clientH){
  return false;//不能超過邊界
  }
  obj.style.top=move+'px';
  s='上';
 }
 if(key=='s'){
  move=myTop+movePx;
  if(move<0 || move>clientH-myHeight){
  return false;
  }
  obj.style.top=move+'px';
  s='下';
 }
 if(key=='a'){
  move=myLeft-movePx;
  if(move<0 || move>clientW){
  return false;
  }
  obj.style.left=move+'px';
  s='左';
 }
 if(key=='d'){
  move=myLeft+movePx;
  if(move<0 || move>clientW-myWidth){
  return false;
  }
  obj.style.left=move+'px';
  s='右';
 }
 obj.innerText=s;//設置文本 & 清楚之前的元素
 console.log(move+' top:'+myTop+' left:'+myLeft);
 
 //移除之前的身體元素,使有頭有尾
 if(document.getElementsByClassName('div').length>=lenbody){
  document.getElementsByClassName('div')[0].parentNode.removeChild(document.getElementsByClassName('div')[0]);
 }
 
 //div身體元素隨后移動
 let newMyMoveWidth=myLeft;
 let newMyMoveHeight=myTop;
 
 let div=document.createElement('div');
  div.className ='div';
  div.style.width = myWidth + 'px';
  div.style.height = myHeight + 'px';
  div.style.position = 'absolute';
  div.style.left=newMyMoveWidth + 'px';
  div.style.top=newMyMoveHeight + 'px';
  div.style.backgroundColor='blue';
  div.innerHTML=divnum;//設置文字|方便識別div順序
 obj.parentNode.appendChild(div);
 console.log('newMyMoveWidth:'+newMyMoveWidth+' newMyMoveHeight:'+newMyMoveHeight);
 divnum++;
 
 ifeatfood(myLeft,myTop);
 } /*f() end--*/
 
 
 //生成食物
 function setfood(){
 
 foodLeft=parseInt(Math.random()*clientW);
 foodTop=parseInt(Math.random()*clientH);
 
 let div=document.createElement('div');
  div.id ='food';
  div.style.width = myWidth + 'px';
  div.style.height = myHeight + 'px';
  div.style.position = 'absolute';
  div.style.left= foodLeft + 'px';
  div.style.top= foodTop + 'px';
  div.style.backgroundColor='pink';
  div.innerHTML='吃';//設置文字|方便識別div順序
 document.body.appendChild(div);
 }
 setfood();
 
 //判斷吃到食物
 function ifeatfood(myLeft,myTop){
 //判斷是否吃到食物
 if(Math.abs(foodLeft-myLeft)<myWidth && Math.abs(foodTop-myTop)<myHeight){
  lenbodyadd();//長度+1
  //刪除舊food,生成新food
  document.getElementById('food').parentNode.removeChild(document.getElementById('food'));
  setfood();
 }
 }
 
 //吃到食物身體加1
 function lenbodyadd(){
 lenbody++;
 }
 
 //保持移動
 var setinter=setInterval((function move(){
 f(val);
 }),speed);
 
 //設置移動速度
 function setspeed(obj){
 speed=obj.options[obj.options.selectedIndex].value;
 stopspeed();
 setinter=setInterval((function move(){
  f(val);
 }),speed);
 }
 
 //停止移動
 function stopspeed(){
 clearInterval(setinter);
 }
 
 //窗口改變時跳轉-防f12
 window.onresize = ()=>{
 console.log(window.innerWidth,window.innerHeight);
 //window.location.;
 }
</script>

更多有趣的經典小游戲實現專題,分享給大家:

C++經典小游戲匯總

python經典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經典游戲 玩不停

java經典小游戲匯總

javascript經典小游戲匯總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合阳县| 紫阳县| 重庆市| 南宫市| 额尔古纳市| 连云港市| 锡林郭勒盟| 马鞍山市| 陇西县| 兰州市| 措美县| 昔阳县| 荆门市| 沙雅县| 桦南县| 隆安县| 二手房| 大洼县| 张家港市| 海口市| 若羌县| 吴旗县| 鄂温| 哈密市| 高碑店市| 五大连池市| 册亨县| 同心县| 恩施市| 镇平县| 荥经县| 金川县| 建阳市| 乐清市| 巢湖市| 邮箱| 六枝特区| 扬州市| 从江县| 彰武县| 获嘉县|