【发布时间】:2015-04-27 02:52:38
【问题描述】:
我正在制作一款汽车游戏,需要我的汽车在重力作用下跳跃,但我不知道如何编写代码。
到目前为止,我发现的所有演示都使用了球,我正在努力理解我需要将哪些代码位应用到图像上。
我希望汽车在我单击鼠标时跳起来,然后显然又掉下来。然后左右移动汽车是A和D。
请问有人可以帮我吗?
我的游戏网址是:http://users.aber.ac.uk/jae36/ftw/Crazy%20Road%20Trip%20Backup.html
而我目前整个游戏的代码如下:
<script>
var context = document.getElementById('canv').getContext("2d");
var roadx = 0;
var backgroundx = 0;
var dx = 10;
var combinex = 0;
var W = canv.width;
var H = canv.height;
var carx = 180;
var cary = 410;
var score = 0;
var canvback = new Image();
canvback.src = "canvback.png";
var canvroad = new Image();
canvroad.src = "canvroad.png";
var car = new Image();
car.src = "car2.png";
var rock = new Image();
rock.src = "rock.png";
var combine = new Image();
combine.src = "combine.png";
(function renderGame() {
window.requestAnimationFrame(renderGame);
context.clearRect(0, 0, W, H);
context.drawImage(canvback, backgroundx, 0);
context.drawImage(canvback, canvback.width-Math.abs(backgroundx), 0);
context.drawImage(canvroad, roadx, 465);
context.drawImage(canvroad, canvroad.width-Math.abs(roadx), 465);
context.drawImage(combine, canv.width-Math.abs(combinex)+200, 420);
if (Math.abs(backgroundx) > canvback.width) {
backgroundx = 0;
}
backgroundx -= 0.5;
if (Math.abs(roadx) > canvroad.width) {
roadx = 0;
}
roadx -= 4;
if (Math.abs(combinex) > context.canvas.width+600) {
combinex = 0;
}
combinex -= 2;
context.drawImage(car, carx, cary);
scoring();
context.font = "17px Times New Roman";
context.fillStyle = "black";
context.fillText("Score = " + score, 20, 30);
}());
function init() {
canv = document.getElementById("canv");
ctx = canv.getContext("2d");
return setInterval(drawcar, 10);
}
function doKeyDown(evt){
switch (evt.keyCode) {
case 65:
if (carx - dx > 90) {
carx -= dx;
}
break;
case 68:
if (carx + dx < 800) {
carx += dx;
}
}
}
function drawcar() {
context.drawImage(car, carx, cary);
}
init();
window.addEventListener('keydown',doKeyDown,true);
function scoring() {
setInterval(scores, 100);
}
function scores(){
score += 0.001;
}
</script>
【问题讨论】:
标签: javascript html canvas html5-canvas gravity