sirconflex
Grünschnabel
Ich soll Tetris programmieren, hab aber bisher noch keinerlei Erfahrung mit Grafikprogrammierung. Deshalb Nachsicht wenn der code etwas wirr aussieht.
Nun zum Problem ich habe eine Klasse erstellt die mir einen Block nach unten fallen lässt. das funktioniert auch wunderbar, jedoch möchte ich diesen nun noch nach links und rechts bewegen. Also dachte ich mir , ich führe eine variable left ein, die jeweils um eins erhöht wird, wenn ich die Pfeiltaste z.b.nach links drücke, diese variable sollte dann subtrahiert werden, von meiner x Position. NUr funktioniert das nicht weil er erst meien Grafik nach unten laufen lässt und erst danach den keyevent bearbeitet...
Hier mal wie ich das programmiert hab...
Methode um den Block fallen zu lassen(stört euch nicht an den Zahlen für die Pixel )
is ne klasse die thread extended
Code für den keyevent(steht in einer anderen klasse, die von JFrame abgeleitet ist...)
Ich bräucht also irgendwas wie ich die variable left zur laufzeit der while schleife ändern könnte, oder vielleicht habt ihr ja noch ne bessere idee
thx im vorraus
Nun zum Problem ich habe eine Klasse erstellt die mir einen Block nach unten fallen lässt. das funktioniert auch wunderbar, jedoch möchte ich diesen nun noch nach links und rechts bewegen. Also dachte ich mir , ich führe eine variable left ein, die jeweils um eins erhöht wird, wenn ich die Pfeiltaste z.b.nach links drücke, diese variable sollte dann subtrahiert werden, von meiner x Position. NUr funktioniert das nicht weil er erst meien Grafik nach unten laufen lässt und erst danach den keyevent bearbeitet...
Hier mal wie ich das programmiert hab...
Methode um den Block fallen zu lassen(stört euch nicht an den Zahlen für die Pixel )
is ne klasse die thread extended
Code:
while(counter1 < 2){
for(y=0;y < 24-2*counter1;y++)
{
aktuellepositiony[i] = y; //für die abspeicherung wichtig
aktuellepositionx[i] = x;
System.out.println(y); //damit ich weis welches feld er grad benutzt
if(y!=0)
{
g.setColor(Color.BLACK);
g.fillRect(208-left,30+16*y-16,16, 16);
g .fillRect(208-left+16,30+16*y-16,16, 16);
g.fillRect(208-left,30+16+16*y-16,16, 16);
g.fillRect(208-left+16,30+16+16*y-16,16,16);
}
g.setColor(Color.RED);
g.fillRect(208-left,30+16*y,16, 16);
g.fillRect(208-left+16,30+16*y,16, 16);
g.fillRect(208-left,30+16+16*y,16, 16);
g.fillRect(208+16-left,30+16+16*y,16, 16);
try{Thread.sleep( 250 );}
catch(InterruptedException e){}
//left variable sollte dabei von der x-position subtrahiert werden...
Code für den keyevent(steht in einer anderen klasse, die von JFrame abgeleitet ist...)
Code:
public void keyPressed(KeyEvent ke)
{
if( ke.getKeyCode() == KeyEvent.VK_LEFT)
{
b.left++; //zugriff auf die left variable
System.out.println(b.left);
}
}
thx im vorraus