php设计超级玛丽人物,面向对象实现简单版的超级马里奥小游戏

采用面向对象思想设计简略版的超级马里奥游戏人物(示意图)

23e3de9caeba01d62f5896ddbabbbb8b.png

游戏的分析:

(1)看看如何通过按钮来控制mario的位置

(2)设计相关的对象(mario、障碍物等)

游戏小功能:

(1)通过键盘控制mario移动;

(2)mario碰到边界会有提示信息;

(3)mario找到宝藏会提示信息;

敲重点,提供源代码:

html代码:

function Mario(){

this.x=0;

this.y=0;

//移动 0->上 1->左 2->右 3->下

this.move=function(direct){

switch(direct){

case 0: //这里为了改变img的left和top,我们需要得到img元素(对象)

var mymario=document.getElementById('mymario');

var top=mymario.style.top;

top=parseInt(top.substr(0,top.length-2));

var left=mymario.style.left;

left=parseInt(left.substr(0,left.length-2));

newtop=top-10;

if(newtop==-10){

window.alert("已到达上边界");

} else{

mymario.style.top=(newtop)+"px";

} if(newtop==460&&left==610){

window.alert("mario找到宝箱啦")

} break;

case 1:

var mymario=document.getElementById('mymario');

var left=mymario.style.left;

left=parseInt(left.substr(0,left.length-2));

var top=mymario.style.top;

top=parseInt(top.substr(0,top.length-2));

newleft=left-10;

if(newleft==-10){

window.alert("已到达左边界")

} else{

mymario.style.left=(left-10)+"px";

} if(top==400&&newleft==660){

window.alert("mario找到宝箱啦")

} break;

case 2:

var mymario=document.getElementById('mymario');

var left=mymario.style.left;

left=parseInt(left.substr(0,left.length-2));

var top=mymario.style.top;

top=parseInt(top.substr(0,top.length-2));

newleft=left+10;

if(newleft==760){

window.alert("已到达右边界")

} else{

mymario.style.left=(left+10)+"px";

} if(top==400&&newleft==570){

window.alert("mario找到宝箱啦")

} break;

case 3:

var mymario=document.getElementById('mymario'); var top=mymario.style.top;

top=parseInt(top.substr(0,top.length-2));

var left=mymario.style.left;

left=parseInt(left.substr(0,left.length-2));

newtop=top+10;

if(newtop==450){

window.alert("已到达下边界");

} else{

mymario.style.top=(top+10)+"px";

} if(newtop==360&&left==610){

window.alert("mario找到宝箱啦")

} break;

}

}

} //创建Mario对象

var mario=new Mario();//全局函数

也可以去掉这个全局函数直接在onclick调用对象方法mario.move();

function marioMove(direct){

switch(direct){

case 0:

mario.move(direct);

break;

case 1:

mario.move(direct);

break;

case 2:

mario.move(direct);

break;

case 3:

mario.move(direct);

break;

}

}

mario1.gif

box.png

游戏键盘
****
**
****

.gamep {

width:800px;

height:500px;

background-color:pink;

position:absolute;

margin-left:0px;

}

/*表格样式*/

.controlcenter {

width:200px;

height:100px;

border:1px solid silver;

text-align:center;

margin-top:530px;

position:absolute;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值