Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

bild per taste unter js bewegen





Frage

Moin moin, Ich habe folgendes Problem, ich möchte einen bomberman-clon schreiben (schule) und habe zu diesem zweck eine tabelle mit entsprechenden images angefertigt. Diese sollte nach möglichkeit abgerufen werden und wenn sich das Männchen bewegt erneut aufgebaut werden. - doch wie spreche ich eine taste genau an? - also wenn es z.b. die rechte maustaste sein soll.... <html> <head> <title>Bombermän</title> <script language="JavaScript"> <!-- var x=1 var y=1 var feld=new Array for (var i=1; i<=11; i++){ feld[i]=new Array } feld[1][1]="player1" feld[2][1]="green_" feld[3][1]="green" feld[4][1]="green" feld[5][1]="green" feld[6][1]="green" feld[7][1]="green" feld[8][1]="green" feld[9][1]="green" feld[10][1]="green" feld[11][1]="green" feld[1][2]="green_" feld[2][2]="wall" feld[3][2]="green" feld[4][2]="wall" feld[5][2]="green" feld[6][2]="wall" feld[7][2]="green" feld[8][2]="wall" feld[9][2]="green" feld[10][2]="wall" feld[11][2]="green" feld[1][3]="green" feld[2][3]="green" feld[3][3]="green" feld[4][3]="green" feld[5][3]="green" feld[6][3]="green" feld[7][3]="green" feld[8][3]="green" feld[9][3]="green" feld[10][3]="green" feld[11][3]="green" feld[1][4]="green" feld[2][4]="wall" feld[3][4]="green" feld[4][4]="wall" feld[5][4]="green" feld[6][4]="wall" feld[7][4]="green" feld[8][4]="wall" feld[9][4]="green" feld[10][4]="wall" feld[11][4]="green" feld[1][5]="green" feld[2][5]="green" feld[3][5]="green" feld[4][5]="green" feld[5][5]="green" feld[6][5]="green" feld[7][5]="green" feld[8][5]="green" feld[9][5]="green" feld[10][5]="green" feld[11][5]="green" feld[1][6]="green" feld[2][6]="wall" feld[3][6]="green" feld[4][6]="wall" feld[5][6]="green" feld[6][6]="wall" feld[7][6]="green" feld[8][6]="wall" feld[9][6]="green" feld[10][6]="wall" feld[11][6]="green" feld[1][7]="green" feld[2][7]="green" feld[3][7]="green" feld[4][7]="green" feld[5][7]="green" feld[6][7]="green" feld[7][7]="green" feld[8][7]="green" feld[9][7]="green" feld[10][7]="green" feld[11][7]="green" feld[1][8]="green" feld[2][8]="wall" feld[3][8]="green"

Antwort 1 von MoP

feld[4][8]="wall"
feld[5][8]="green"
feld[6][8]="wall"
feld[7][8]="green"
feld[8][8]="wall"
feld[9][8]="green"
feld[10][8]="wall"
feld[11][8]="green"
feld[1][9]="green"
feld[2][9]="green"
feld[3][9]="green"
feld[4][9]="green"
feld[5][9]="green"
feld[6][9]="green"
feld[7][9]="green"
feld[8][9]="green"
feld[9][9]="green"
feld[10][9]="green"
feld[11][9]="green"
feld[1][10]="green"
feld[2][10]="wall"
feld[3][10]="green"
feld[4][10]="wall"
feld[5][10]="green"
feld[6][10]="wall"
feld[7][10]="green"
feld[8][10]="wall"
feld[9][10]="green"
feld[10][10]="wall"
feld[11][10]="green_"
feld[1][11]="green"
feld[2][11]="green"
feld[3][11]="green"
feld[4][11]="green"
feld[5][11]="green"
feld[6][11]="green"
feld[7][11]="green"
feld[8][11]="green"
feld[9][11]="green"
feld[10][11]="green_"
feld[11][11]="player2"

function print_laby(){
for (var i=1; i<=11; i++){
document.write("<tr>")
for (var j=1; j<=11; j++){
document.write(´<td><img src="´)
document.write(parent.feld[j] + ´.gif"></td>´)
}
document.write("</tr>")
}
}


function weg(){
for (var i=1; i<=11; i++){
for (var j=1; j<=11; j++){
var ran_unrounded=Math.random()*10;
var ran_number=Math.round(ran_unrounded);
if (parent.feld[j]=="green" & ran_number>"3") { //abfrage i!=j nur nötig, wenn keine spieler gesetzt sind
feld[j]="weg";
}
}
}
print_laby()
}





function keyup(x,y){ //seite54 - teils aus nem buch, teilweise selbst probt.
keyval=0
keyval=event.keyCode
if (parent.feld[x][y+1]=="green"){
parent.y=parent.y+1;
document.write(parent.feld[x][y]=="player1")
}
//parent.y=parent.y+y;
//print_laby()
return;
}


/* - erstmal auskommentiert
if (parent.feld[j]=="player1"){
j++
if (parent.feld[j]=="green" ?: parent.feld[j]=="green_")
feld[j]="player2"
*/



// -->
</script>
</head>
<body bgcolor="FFFFFF">
<center>
<table border=2 cellpadding=0 cellspacing=0>
<tr>
<td>
<table border=0 cellpadding=0 cellspacing=0>
<script>
document.onkeydown=keyup
weg()
</script>
</table>
</td>
</tr>
</table>
</html>

Dazu ist zu sagen, das ich bei Opera wenn ich "d" drücke einen rahmen in der zeile sehe, der sich nach rechts bewegt (von p1 aus), aber das bild bleibt halt an erster stelle (p1) und der rahmen läuft immer weiter, "vergisst" also die if-abfrage - im ie6.0 passiert gar nix....*nerv* . thx

Antwort 2 von rfb

ein wenig schwer zu durchschauen das Script, da schlecht dokumentiert.

Setzt du biite die relevanten Teile hier nochmals mit Kommentaren rein?
Ersetze dabei bitte das "i" durch eine andere Variable, da SN das als Anweisung für "kursiv" deutet.

ein paar Anmerkungen so schon mal:
  • in vielen Zeilen fehlt das ; als Trenner zwischen Befehlen, nicht jeder Browser kümmert sich so wenig um korrekte Syntax wie der IE.
  • wieso parent.dingsdavariable - du greifst doch ar nicht aufs übergeordnete Fenster zu, oder?
  • bei ran_number>"3" vergleichst du eine Zahl (ran_number) mit einem String ("3")
  • <script> ist unvollständig, du solltest dem Browser schon mitteilen, welche Scriptsprache du einsetzt, also <script type="text/javascript">
  • aus praktischen Gründen: weise dem feld-Array doch erst einmal in der Schleife am Anfang allen feldern den Wert "green" zu und ändere das dann bei denen, die einen anderen Wert haben - das Script dürfte um etliches kürzer werden.

  • Ich möchte kostenlos eine Frage an die Mitglieder stellen:


    Ähnliche Themen:


    Suche in allen vorhandenen Beiträgen: