链接类

VML

按钮类

标题类

表单类

表格类

菜单类

窗口类

对象类

滚动条

键盘类

框架类

例子类

模拟类

日期类

色彩类

鼠标类

数学类

图片类

文字类

下拉框

样式类

游戏类

状态栏

资料类

字幕类

其它类

 ·测测反应速度
 ·模拟跳舞
 ·猜数字
 ·乒乓球
 ·24点
 ·射击
 ·敲砖头
 ·测试游戏
 ·贪吃蛇
 ·数格排序
您当前位置:好素材首页 -> 网页特效 -> 游戏类
查看信息

推箱子
好素材网 www.HaoSc.com 02月22日 11:49

[查看演示]  源码如下
----------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0050)http://darkvn.top263.net/myscript/boxgame/game.htm -->
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<SCRIPT>
var smapdata = new Array(
"11111111111111111111",
"10000000000000000001",
"10010000000000000001",
"10010020000000000001",
"10010000000000000301",
"10010111110000003001",
"10000001000000000301",
"10000001000010000001",
"10000001000000000001",
"10000001000000111001",
"10000000000000000001",
"10000000011110000001",
"10020200000000000001",
"10000000000000000001",
"11111111111111111111"
)//原始地图信息,便于编辑地图。

var mapData =new Array(15);
var spriteX=0;
spriteY=0;
var winbox=0;

function readMap(){ //重建地图信息便于程序使用。
for(var i=0;i<15;i++){
mapData[i]=new Array(20);
for(var j=0;j<20;j++){
mapData[i][j]=smapdata[i].substr(j,1);
}
}
}

function CreateMap(){ //用dom来创建地图。
var x=30;
var y=30;
var cbox=0;
for (var i=0;i<15;i++){
for (var j=0;j<20;j++){
var oe=document.createElement("div");
oe.id="box"+i+"_"+j; //设定id规则以便后面程序访问。
oe.className="map"+mapData[i][j];
oe.style.pixelLeft=x;
oe.style.pixelTop=y;
gameArea.appendChild(oe);
x+=19;
}
y+=19;
x=30;
}
}

function mLeft(){
if(spriteX-1>0) {
if(mapData[spriteY][spriteX-1]=="1" ) return;
if(mapData[spriteY][spriteX-1]=="2" ) {
if(mapData[spriteY][spriteX-2]=="0" || mapData[spriteY][spriteX-2]=="3"){
if(mapData[spriteY][spriteX-2]=="3"){
mapData[spriteY][spriteX-2]="1";//若推到了目的地,则改箱子的属性为障碍物,从而固定箱子位置。
winbox++;
if(winbox==3) win();//若三个箱子都到达目的地则赢。
}
else mapData[spriteY][spriteX-2]="2";
mapData[spriteY][spriteX-1]="0";
eval("box"+spriteY+"_"+(spriteX-1)).style.backgroundColor='#333333';
eval("box"+spriteY+"_"+(spriteX-2)).style.backgroundColor='#3333FF';
spriteX--;
sprite.style.pixelLeft-=19;
}
}else{
spriteX--;
sprite.style.pixelLeft-=19;
}
}
}

function mRight(){
if(spriteX+1<20){
if(mapData[spriteY][spriteX+1]=="1") return;
if(mapData[spriteY][spriteX+1]=="2"){
if(mapData[spriteY][spriteX+2]=="0" || mapData[spriteY][spriteX+2]=="3"){
if(mapData[spriteY][spriteX+2]=="3") {
mapData[spriteY][spriteX+2]="1";
winbox++;
if(winbox==3) win();
}
else mapData[spriteY][spriteX+2]="2";
mapData[spriteY][spriteX+1]="0";
eval("box"+spriteY+"_"+(spriteX+1)).style.backgroundColor='#333333';
eval("box"+spriteY+"_"+(spriteX+2)).style.backgroundColor='#3333FF';
spriteX++;
sprite.style.pixelLeft+=19;
}
}else{
spriteX++;
sprite.style.pixelLeft+=19;
}
}
}

function mUp(){
if(spriteY-1>0) {
if(mapData[spriteY-1][spriteX]=="1") return;
if(mapData[spriteY-1][spriteX]=="2") {
if(mapData[spriteY-2][spriteX]=="0" || mapData[spriteY-2][spriteX]=="3") {
if(mapData[spriteY-2][spriteX]=="3") {
mapData[spriteY-2][spriteX]="1";
winbox++;
if(winbox==3) win();
}
else mapData[spriteY-2][spriteX]="2";
mapData[spriteY-1][spriteX]="0";
eval("box"+(spriteY-1)+"_"+spriteX).style.backgroundColor='#333333';
eval("box"+(spriteY-2)+"_"+spriteX).style.backgroundColor='#3333FF';
spriteY--;
sprite.style.pixelTop-=19;
}
}else{
spriteY--;
sprite.style.pixelTop-=19;
}
}
}

function mDown(){
if(spriteY+1<20){
if(mapData[spriteY+1][spriteX]=="1") return;
if(mapData[spriteY+1][spriteX]=="2") {
if(mapData[spriteY+2][spriteX]=="0" || mapData[spriteY+2][spriteX]=="3") {
if(mapData[spriteY+2][spriteX]=="3") {
mapData[spriteY+2][spriteX]="1"
winbox++;
if(winbox==3) win();
}
else mapData[spriteY+2][spriteX]="2";
mapData[spriteY+1][spriteX]="0";
eval("box"+(spriteY+1)+"_"+spriteX).style.backgroundColor='#333333';
eval("box"+(spriteY+2)+"_"+spriteX).style.backgroundColor='#3333FF';
spriteY++;
sprite.style.pixelTop+=19;
}
}else{
spriteY++;
sprite.style.pixelTop+=19;
}
}
}

function win(){
alert("you win!!!!!!!!!!!!!");
}

function fnKeydown(){
var key=event.keyCode;
switch(key){
case 37:
mLeft();
break;
case 39:
mRight();
break;
case 38:
mUp();
break;
case 40:
mDown();
break;
}
return false;
}

function init(){
readMap();
CreateMap();
sprite.style.pixelLeft=49;
sprite.style.pixelTop=49;
spriteX=1;
spriteY=1;
}

document.onkeydown=fnKeydown;
</SCRIPT>

<STYLE type=text/css>.map0 {
BACKGROUND-COLOR: #333333; BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; HEIGHT: 20px; POSITION: absolute; WIDTH: 20px
}
.map1 {
BACKGROUND-COLOR: #999999; BORDER-BOTTOM: #ffffff 2px outset; BORDER-LEFT: #ffffff 2px outset; BORDER-RIGHT: #ffffff 2px outset; BORDER-TOP: #ffffff 2px outset; HEIGHT: 20px; POSITION: absolute; WIDTH: 20px
}
.map2 {
BACKGROUND-COLOR: #3333ff; BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; HEIGHT: 20px; POSITION: absolute; WIDTH: 20px
}
.map3 {
BACKGROUND-COLOR: #006600; BORDER-BOTTOM: #999999 0px solid; BORDER-LEFT: #999999 0px solid; BORDER-RIGHT: #999999 0px solid; BORDER-TOP: #999999 0px solid; HEIGHT: 20px; POSITION: absolute; WIDTH: 20px
}
.box {
BACKGROUND-COLOR: #0000cc; BORDER-BOTTOM: #ffffff 1px outset; BORDER-LEFT: #ffffff 1px outset; BORDER-RIGHT: #ffffff 1px outset; BORDER-TOP: #ffffff 1px outset; HEIGHT: 20px; POSITION: absolute; WIDTH: 20px
}
</STYLE>

<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<BODY bgColor=#333333 onload=init()>
<DIV id=gameArea></DIV>
<DIV id=sprite style="POSITION: absolute"><IMG height=20
src="jsimg/solomon.gif" width=20></DIV></BODY></HTML>

<div style="position: absolute; top: 10; right: 10; width: 148; height: 18;cursor:hand">
<input type="button" name="Button" value="查看源代码" onClick= 'window.location = "view-source:" + window.location.href'></div>


此信息共 1 页 [1]