hat jetzt nicht direkt etwas mit ubuntu zu tun, aber ich hoffe ihr könnt mir trotzdem helfen 😉
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 😀
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 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 natürlich 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