本文目錄一覽:
- 1、js中當貪吃蛇達到一定長度加速的代碼怎麼寫
- 2、各位大俠,本人新手跪拜寫貪吃蛇的代碼,只需提供具體步驟 編譯環境 涉及的函數 無需具體代碼!不勝感激呀
- 3、高手幫忙解釋一下JAVA 貪食蛇遊戲中蛇的代碼
js中當貪吃蛇達到一定長度加速的代碼怎麼寫
獲取長度變量的值,判斷長度,大於一定長度,改變速度就好了
各位大俠,本人新手跪拜寫貪吃蛇的代碼,只需提供具體步驟 編譯環境 涉及的函數 無需具體代碼!不勝感激呀
我這裡有一個之前用js寫的貪吃蛇,只要用瀏覽器就可以看到效果。
你新建一個snake.html,然後右擊-打開方式-記事本,把下面的代碼複製到裡面,然後保存好。再用瀏覽器打開這個頁面就能看到html。
————————————————-以下是代碼————————————-
!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “”
html xmlns=””
head
meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ /
title貪吃蛇/title
script type=”text/javascript”
/**************js代碼************************/
var width = 10 ; //單元格的寬高,食物的寬高
var num = 60 ; //單元格列數
var row = 30; //單元格行數
var map_width = 0; //地圖的寬度
var map_height = 0; //地圖的寬度
var map_arr = new Array() ;//地圖數組
var border = 5;//地圖邊框厚度
var borderColor = “#ff0”; //地圖邊框顏色
var footColor = “#f00”; //食物顏色
var snakeColor = “#faa”; //蛇的顏色
var Sx,Sy; //蛇的初始化位置
var Gx = 0,Gy = 0;//蛇移動方向
var oTime = 0,ot = 200; //蛇移動速度
var dd = 10; //每升一級提升的速度
var fen = 0 ; //得分
var den = 1 ; //等級
var lock = 1; //操作鎖
var sfColor = “#f55”; //食物吞進後的顏色
var times = 0;//計時器
var timer;
var easyColor = “blue”;
var easyNum = 3; //阻礙個數
//創建地圖
function create_map(){
var map = document.createElement(“div”);
map_width = width*num;
map_height = width*row;
//獲得屏幕寬高
var sw = window.screen.width;
var sh = window.screen.height;
//設置map樣式
map.setAttribute(‘id’,’map’);
map.style.position = ‘absolute’;
map.style.width = map_width+2*border+’px’;
map.style.height = map_height+2*border+’px’;
map.style.border = border+”px solid “+borderColor;
map.style.left = (sw/2) – (map_width/2) + ‘px’;
map.style.top = (sh/2) – (map_height/2) – 120 + ‘px’;
document.body.appendChild(map);
//設置地圖數組初始值
for(var i = 0;i=num;i++ ){
map_arr[i] = new Array();
for(var j = 0;j=row;j++){
map_arr[i][j] = 1;
}
}
}
//創建食物
function create_foot(){
var fw = parseInt(Math.random()*num);
var fh = parseInt(Math.random()*row);
if(map_arr[fw][fh] != 1){
create_foot();
return ;
}else{
var span = document.createElement(“span”);
span.style.width = width+’px’;
span.style.height = width + ‘px’;
span.style.position = “absolute”;
span.style.marginLeft = width*fw+’px’;
span.style.marginTop = width*fh+’px’;
span.style.backgroundColor = footColor;
span.style.overflow = ‘hidden’;
span.setAttribute(‘id’,’foot’);
document.getElementById(‘map’).appendChild(span);
map_arr[fw][fh] = 2;
}
}
//創建蛇
function create_snake(){
var snake = document.createElement(‘div’);
snake.style.position = ‘absolute’;
snake.style.left = Sx*width+’px’;
snake.style.top = Sy*width+’px’;
snake.style.width = width+’px’;
snake.style.height = width+’px’;
snake.style.overflow = ‘hidden’;
snake.style.backgroundColor = snakeColor;
snake.style.color = snakeColor;
//存儲當前蛇體的位置
snake.innerHTML = Sx+’#’+Sy;
//吞進的食物另做處理
if(map_arr[Sx][Sy] == 2){
snake.style.backgroundColor = sfColor;
snake.style.color = sfColor;
}
document.getElementById(‘map’).appendChild(snake);
map_arr[Sx][Sy] = 3;
}
//蛇移動的前方碰到食物
function move1(){
//吃掉食物
//map_arr[Sx][Sy] = 1;
obj = document.getElementById(‘foot’);
document.getElementById(‘map’).removeChild(obj);
//創建蛇頭
create_snake();
//創建食物
create_foot();
//獲得分數
resetFen();
}
//重置分數和加快遊戲速度
function resetFen(){
fen += 10;
document.getElementById(‘shu’).innerHTML = fen;
den = parseInt(fen/100)+1;
document.getElementById(‘den’).innerHTML = den;
oTime = ot – (den-1)*dd;
}
//蛇移動前方為空地
function move2(){
//刪除蛇尾
pos = document.getElementById(‘map’).getElementsByTagName(‘div’)[0].innerHTML;
arr = pos.split(‘#’);
x = parseInt(arr[0]);
y = parseInt(arr[1]);
map_arr[x][y] = 1;
obj = document.getElementById(‘map’).getElementsByTagName(‘div’)[0];
document.getElementById(‘map’).removeChild(obj);
//創建蛇頭
create_snake();
}
//重新開始
function move3(){
window.clearInterval(timer);
if(confirm(“Game Over,重新開始?”))
window.location.reload()
}
//蛇移動
function move(){
Sx += Gx;
Sy += Gy;
if(Sx0 || Sy0 || Sxnum || Syrow){
move3();
}else if(map_arr[Sx][Sy] == 1){
move2();
window.setTimeout(“move()”,oTime);
}else if(map_arr[Sx][Sy] == 2){
move1();
window.setTimeout(“move()”,oTime);
}else{
move3();
}
lock = 1;
}
window.onload = function(){
getSoure();
oTime = ot – (den-1)*dd;
//創建地圖
create_map();
//設置蛇的初始位置
Sx = parseInt(Math.random()*num);
Sy = parseInt(Math.random()*row);
create_snake();
//創建食物
create_foot();
//設置阻礙
for(var i=0;ieasyNum;i++){
len = parseInt(Math.random()*row/2)+5;
rows = parseInt(Math.random()*row);
cols = parseInt(Math.random()*num);
bool = parseInt(Math.random()*100)%2;
setEasy(len,cols,rows,bool);
}
window.document.onkeydown = function(e){
e = window.event || e;
if(e.keyCode == 37 Gx != 1 lock == 1 ){
lock = 0;
goes(-1,0);
}else if(e.keyCode == 39 Gx != -1 lock == 1){
lock = 0;
goes(1,0)
}else if(e.keyCode == 38 Gy != 1 lock == 1){
lock = 0;
goes(0,-1)
}else if(e.keyCode == 40 Gy != -1 lock == 1){
lock = 0;
goes(0,1)
}else if(e.keyCode == 27){
alert(“遊戲暫停”);
}
}
}
var start = 1;
function goes(x,y){
Gx = x;
Gy = y;
if(start == 1){
move();
start = 0;
setTime();
}
}
//計時
function setTime(){
window.clearInterval(timer);
timer = window.setInterval(function(){
times += 1;
var min = parseInt(times/6000);
var s = parseInt(times/100);
s = s%60;
var ms = parseInt(times%100);
(min 10) (min = ‘0’+min);
(s 10) (s = ‘0’+s);
(ms 10) (ms = ‘0’+ms);
document.getElementById(‘time’).innerHTML = min+”:”+s+”:”+ms
},10)
}
//創建得分及等級窗口
function getSoure(){
var source = document.createElement(‘div’);
source.style.position = “absolute”;
source.style.width = “300px”;
source.style.height = “200px”;
source.style.border = “2px solid #ff0”;
var cheng = document.createElement(‘div’);
cheng.style.width = “200px”;
cheng.style.height = “30px”;
cheng.style.paddingTop = “10px”;
var title = document.createElement(‘span’);
title.style.width = “90px”;
title.style.paddingTop = “15px”;
title.style.paddingLeft = “30px”;
title.style.cssFloat = “left”;
title.style.color = “red”;
title.style.fontSize = “14px”;
title.style.fontWeight = “900”;
title.innerHTML = “分 數:”;
var shu = document.createElement(‘span’);
shu.style.width = “50px”;
shu.style.paddingLeft = “30px”;
shu.style.paddingTop = “10px”;
shu.style.cssFloat = “left”;
shu.style.color = “red”;
shu.style.fontSize = “24px”;
shu.style.fontWeight = “900”;
shu.setAttribute(‘id’,’shu’);
shu.innerHTML = “0”;
cheng.appendChild(title);
cheng.appendChild(shu);
source.appendChild(cheng);
cheng = document.createElement(‘div’);
cheng.style.width = “200px”;
cheng.style.height = “30px”;
cheng.style.paddingTop = “20px”;
title = document.createElement(‘span’);
title.style.width = “90px”;
title.style.paddingTop = “15px”;
title.style.paddingLeft = “30px”;
title.style.cssFloat = “left”;
title.style.color = “red”;
title.style.fontSize = “14px”;
title.style.fontWeight = “900”;
title.innerHTML = “等 級:”;
shu = document.createElement(‘span’);
shu.style.width = “50px”;
shu.style.paddingLeft = “30px”;
shu.style.paddingTop = “10px”;
shu.style.cssFloat = “left”;
shu.style.color = “red”;
shu.style.fontSize = “24px”;
shu.style.fontWeight = “900”;
shu.setAttribute(‘id’,’den’);
shu.innerHTML = “1”;
cheng.appendChild(title);
cheng.appendChild(shu);
source.appendChild(cheng);
cheng = document.createElement(‘div’);
cheng.style.width = “200px”;
cheng.style.height = “auto”;
cheng.style.paddingTop = “20px”;
title = document.createElement(‘span’);
title.style.width = “90px”;
title.style.paddingTop = “15px”;
title.style.paddingLeft = “30px”;
title.style.cssFloat = “left”;
title.style.color = “red”;
title.style.fontSize = “14px”;
title.style.fontWeight = “900”;
title.innerHTML = “計 時:”;
shu = document.createElement(‘span’);
shu.style.width = “50px”;
shu.style.paddingLeft = “30px”;
shu.style.paddingTop = “10px”;
shu.style.cssFloat = “left”;
shu.style.color = “red”;
shu.style.fontSize = “24px”;
shu.style.fontWeight = “900”;
shu.setAttribute(‘id’,’time’);
shu.innerHTML = “00:00:00”;
cheng.appendChild(title);
cheng.appendChild(shu);
source.appendChild(cheng);
document.body.appendChild(source);
}
//阻欄
function setEasy(len,nums,rows,bool){
for(var i=0;ilen;i++){
var fw = bool == 0 ? nums : nums+i;
var fh = bool == 0 ? rows+i : rows;
if(fw = num fh = row map_arr[fw][fh] == 1){
var span = document.createElement(“span”);
span.style.width = width+’px’;
span.style.height = width + ‘px’;
span.style.position = “absolute”;
span.style.marginLeft = width*fw+’px’;
span.style.marginTop = width*fh+’px’;
span.style.backgroundColor = easyColor;
span.style.overflow = ‘hidden’;
document.getElementById(‘map’).appendChild(span);
map_arr[fw][fh] = 4;
}
}
}
/script
/head
body
/body
/html
高手幫忙解釋一下JAVA 貪食蛇遊戲中蛇的代碼
public
class
Snake
implements
Data//蛇類實現了data接口
{
public
Snake()
{
array.add(new
Point(10,
10));//
array.add(new
Point(10,
11));//
array.add(new
Point(10,
12));//
array.add(new
Point(10,
13));//
array.add(new
Point(10,
14));//這五句話是構造一個蛇,這條蛇由五個坐標點連成
currentFlag
=UPFLAG
;//當前的運動方向設為向上
lifeFlag
=
true;//當前蛇的生命設為活着
}
public
void
move()//蛇的運動函數
{
tair
=
(Point)array.get(array.size()
–
1);//得到蛇的尾巴
int
len
=
array.size()
–
2;
for(int
i
=
len;
i
=
0;
i–)//這個for循環把蛇的每一個點都坐標偏移即運動了
{
Point
leftPoint
=
(Point)array.get(i);
Point
rightPoint
=
(Point)array.get(i
+
1);
rightPoint.x
=
leftPoint.x;
rightPoint.y
=
leftPoint.y;//每一個右邊的點等於其左邊的點,像蛇那樣的一縮一張的運動
}
}
public
void
moveHeadLeft()//把蛇的頭部轉向左邊
{
if(currentFlag
==
RIGHTFLAG
||
currentFlag
==
LEFTFLAG)//如果運動方向設為向左或向右則不執行
{
return;
}
move();
Point
point
=
(Point)(array.get(0));
//得到蛇頭部
point.x
=
point.x
–
1;//蛇頭部橫坐標減一,縱坐標不變
point.y
=
point.y;
if(point.x
LEFT)//如果蛇頭部不能再左,就不執行
{
lifeFlag
=
false;
}
currentFlag
=
LEFTFLAG;//將蛇運動方向改為左
}
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129416.html