tetris als java-applet

Einfach Dinge, die nichts mit XAMPP, Apache Friends, Apache, MySQL, PHP und alle dem zu tun haben. Allerlei halt. ;)

tetris als java-applet

Postby rafael » 10. June 2010 15:22

wir haben im info-unterricht vor einer weile den auftrag bekommen uns für den rest des jahres mit einem beliebigen slebstgewählten projekt zu beschäftigen

ich hatte die idee tetris nachzuprogrammieren(da wir bisher mit java gearbeitet haben, bot sich das natürlich an), bisher liefs auch ganz gut, aber jetzt haben wir das problem, das wir die tastensteuerung nicht hinbekommen :(

das grundprinzip hab ich ja verstanden, aber aus irgeneinem grund funktionierts in dem programm nicht so wie es soll :( - obwohl inzwischen nicht mal mehr fehlermeldungen komen :D

momentan seh ich einfach nur die steine nach unten fallen und sich auftstapeln

hinzu kommt noch, dass das applet immer zweimal durchläuft, wobei das jetzt nicht das hauptproblem wäre

hier der code:

Code: Select all
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
public class tetris extends Applet implements KeyListener{
feld spielfeld;
block dereine;
public void paint(Graphics g){
addKeyListener(this);
spielfeld = new feld();
g.setColor(Color.BLACK);
g.fillRect(0, 0, 1000, 1000);
spielfeld.ausgeben(g);
while(1<2)
{int x = (int)(Math.round(Math.random()*6)+1);//erzeugen eines zufälligen blocks
dereine = new block();
switch(x)
{case 1: dereine = new block1(); break;
case 2: dereine = new block2(); break;
case 3: dereine = new block3(); break;
case 4: dereine = new block4(); break;
case 5: dereine = new block5(); break;
case 6: dereine = new block6(); break;
case 7: dereine = new block7(); break;
default: break;
}
if(!(spielfeld.platzpruefen(dereine)))
break;
while(1<2)//runterfallen der steine
{try{
Thread.sleep(200);}
catch(InterruptedException e)
{e.printStackTrace();}
dereine.runter(spielfeld);
spielfeld.ausgeben(g);
dereine.ausgeben(g);
if(!(spielfeld.platzpruefen(dereine)))
break;
}
}
spielfeld.ausgeben(g);
}
public void keyTyped(KeyEvent e)
{dereine.drehen(spielfeld);// erstmal nur um die tasteneingabe überhaupt zu prüfen
}
public void keyPressed(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
}
}


dazu gehören noch die spielfeld und block klassen, kann ich gerne noch nachreichen

liegt das an Thread.sleep()?, das war bisher eine vermutung; wenn ja, was kann man da anders machen?

ich hoffe ihr könnt mir helfen, sollte nächsten dienstag fertig sein ^^

mfg leafar
rafael
 
Posts: 70
Joined: 17. September 2008 17:06

Return to Allerlei

Who is online

Users browsing this forum: No registered users and 5 guests