RauchenderDachs
Cadet 4th Year
- Registriert
- Dez. 2012
- Beiträge
- 70
Hi Leute,
ich habe ein kleines Spiel in JS programiert. Wenn man die Leertaste drückt sol der Spieler schießen. Das funktioniert auch allerding verhält sich dann der Spieler (das Bild) und die Gegner,die auf denn Spieler zufliegen, äußerst komisch. Sie verschwinden, tauchen an anderer Stelle wieder auf usw. Unten lass ich euch mal den Code des gesamten Programmes da. Die Tastenabfrage ist ganz unten habe alles mal rausgenommen und nur eine Konsolenausgabe hineingepackt hat aber das gleiche Problem.
ich habe ein kleines Spiel in JS programiert. Wenn man die Leertaste drückt sol der Spieler schießen. Das funktioniert auch allerding verhält sich dann der Spieler (das Bild) und die Gegner,die auf denn Spieler zufliegen, äußerst komisch. Sie verschwinden, tauchen an anderer Stelle wieder auf usw. Unten lass ich euch mal den Code des gesamten Programmes da. Die Tastenabfrage ist ganz unten habe alles mal rausgenommen und nur eine Konsolenausgabe hineingepackt hat aber das gleiche Problem.
Code:
/*jslint browser: true*/
function startup(){
var main = document.getElementById("main");
var ctx = main.getContext("2d");
var player = new Image(); //Spieler
player.src = "img/schiff.gif";
var playerx = 10;
var playery = 10;
var bg = new Image(); //Hintergrund
bg.src = "img/bg.png";
var alien = new Image(); //Aliens
alien.src = "img/alien.png";
var alienx = [];
var alieny = [];
for(var i = 0;i<10;i++){ //Aliens werden erschaffen
alienx[i]= Math.round((Math.random()*(2000))+700);
alieny[i]= Math.round((Math.random()*(388)));
}
function draw(){ //Zeichenmethode
ctx.clearRect(0,0,700,388); //leeres Rechteck
ctx.drawImage(bg,0,0);//Hintergrund
ctx.drawImage(player,playerx,playery);//spieler
for(var i = 0;i<10;i++){//Aliens
ctx.drawImage(alien,alienx [i],alieny[i]);
}
}
var is_playing = false;
function gameloop(){
window.setTimeout(gameloop,10);
movealiens();//Aliens bewegen
draw();
}
starteloop();
function starteloop(){
is_playing = true;
gameloop();
}
function stoploop(){
is_playing = false;
}
document.addEventListener("keydown",key_down,false);
function key_down(e){
var key_id = e.keyCode || e.which;
if(key_id == 40 && playery<(388-53)){//hoch
playery = playery + 2;
}
if(key_id == 38 && playery>0){//runter
playery = playery - 2;
}
if(key_id == 32 ){//leertaste
console.log(1);
}
//console.log(key_id);
}
function movealiens(){
for(var i = 0;i<10;i++){
alienx[i]= alienx [i] - 1;
if(alienx[i] == -60){// Wenn die aliens über den rand hinaus sind von vorne anfangen
alienx[i] = Math.round((Math.random()*(2000))+700);;
alieny[i] = Math.round((Math.random()*(388)));;
}
//console.log(alienx[0]);
}
}
}