困了累了敲代码,提神醒脑--写一些推箱子小游戏
好久没敲代码了,前几天也睡不好,怎么办,折腾自己一下就好了,反正头发多。而且我这个初学者哪能在乎头发哪,距离强者的路还远得很。
我也不是很想写,主要是闲的无聊,再加上技术差,就更不想写了,可是这整宿整宿的睡不着觉,难受啊,白天还贼精神,估计哪天我就猝死了。好了,我把我的代码发一下,很乱,一开始写的全是bug,改了好长时间才改好,这都由于我还是个初学者。
这是HTML:
Document
这是CSS:(写的不好看)
*{
margin: 0;
padding: 0;
}
div{
width: 400px;
height: 280px;
border: solid 40px #222;
position: absolute;
top: 100px;
left: 300px;
border-radius: 50px;
background-color: rosybrown;
}
.wall{
box-sizing: border-box;
border-radius: 2px;
width: 40px;
height: 40px;
position: absolute;
background: red;
border: white 2px solid;
}
.target{
box-sizing: border-box;
border-radius: 50%;
width: 40px;
height: 40px;
position: absolute;
background: brown;
border:#222 2px solid;
}
.box{
box-sizing: border-box;
border-radius: 4px;
width: 40px;
height: 40px;
position: absolute;
background: #333;
border:#222 2px solid;
font-size: 32px;
color: white;
line-height: 28px;
text-indent: 4px;
letter-spacing: 10px;
z-index: 2;
}
img{
display: block;
box-sizing: border-box;
border-radius: 2px;
position: absolute;
width: 40px;
height: 40px;
top: 120px;
left: 120px;
position: absolute;
z-index: 3;
}
这是JS:(写的更差,把自己绕晕了好久)
var wall = [
[0, 1, 1, 1, 1, 0, 0, 0, 0, 0],
[0, 1, 0, 2, 1, 0, 0, 0, 0, 0],
[0, 1, 0, 4, 1, 1, 1, 0, 0, 0],
[0, 1, 0, 3, 0, 0, 1, 0, 0, 0],
[0, 1, 0, 4, 0, 0, 1, 0, 0, 0],
[0, 1, 0, 2, 1, 1, 1, 0, 0, 0],
[0, 1, 1, 1, 1, 0, 0, 0, 0, 0]
];
map(wall);
function map(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; j++) {
if (arr[i][j] == 1) {
var odiv = document.querySelector("div");
var p = document.createElement("p")
var op = odiv.appendChild(p);
op.className = "wall";
op.style.top = i * 40 + "px";
op.style.left = j * 40 + "px";
} else if (arr[i][j] == 2) {
var odiv = document.querySelector("div");
var p = document.createElement("p")
var op = odiv.appendChild(p);
op.className = "target";
op.style.top = i * 40 + "px";
op.style.left = j * 40 + "px";
} else if (arr[i][j] == 3) {
var odiv = document.querySelector("div");
var img = document.createElement("img");
var oimg = odiv.appendChild(img);
oimg.src = "boy.png"
oimg.id = "boy"
} else if (arr[i][j] == 4) {
var odiv = document.querySelector("div");
var p = document.createElement("p");
var op = odiv.appendChild(p);
op.innerHTML = "||";
op.className = "box";
op.style.top = i * 40 + "px";
op.style.left = j * 40 + "px";
}
}
}
}
var boy = document.getElementById("boy");
var otarget = document.getElementsByClassName("target");
var obox = document.getElementsByClassName("box");
document.onkeydown = function (eve) {
var eve = eve || window.event;
var boyx = boy.offsetLeft,
boyy = boy.offsetTop;
var owall = document.getElementsByClassName("wall");
if (eve.keyCode == 37) {
// 向左移动
boy.style.left = boy.offsetLeft - 40 + "px";
// 小孩与墙体相撞
for (var i = 0; i < owall.length; i++) {
if (owall[i].offsetLeft == boy.offsetLeft && owall[i].offsetTop == boy.offsetTop) {
boy.style.left = boyx + "px";
boy.style.top = boyy + "px";
}
}
for (var i = 0; i < obox.length; i++) {
for (var j = 0; j < owall.length; j++) {
if (obox[i].offsetLeft == boy.offsetLeft && obox[i].offsetTop == boy.offsetTop) {
// 箱子移动
obox[i].style.left = obox[i].offsetLeft - 40 + "px";
}
}
}
// 小孩推箱子与箱子相撞
for(var i =0;i 360) {
boy.style.left = 360 + "px";
}
} else if (eve.keyCode == 40) {
// 向下移动
boy.style.top = boy.offsetTop + 40 + "px";
// 小孩与墙体相撞
for (var i = 0; i < owall.length; i++) {
if (owall[i].offsetLeft == boy.offsetLeft && owall[i].offsetTop == boy.offsetTop) {
boy.style.left = boyx + "px";
boy.style.top = boyy + "px";
}
}
for (var i = 0; i < obox.length; i++) {
for (var j = 0; j < owall.length; j++) {
if (obox[i].offsetLeft == boy.offsetLeft && obox[i].offsetTop == boy.offsetTop) {
// 箱子移动
obox[i].style.top = obox[i].offsetTop + 40 + "px";
}
}
}
// 小孩推箱子与箱子相撞
for(var i =0;i 240) {
boy.style.top = 240 + "px";
}
}
}
function missionSucess(obj1,obj2){
var n=0;
for(var i = 0;i
可以执行一下missionSuccess(),让游戏更完整一些。不过我只是个初学者,都是想到哪就桥到哪。出现bug了再去改,而且格式不符合规范,还在改进。
我最想做的就是能睡个好觉,不要半夜睡不着或是半夜醒过来,我才二十出头。不想刚挣点钱就开始留遗产。