Hi ich hab vor kurzem erst angefangen zu programmieren, dazu habe ich ein pong Spiel für 2 Spieler erstellt. Der eine Spieler steuert mit Pfeil nach oben und Pfeil nach unten dort funktioniert auch alles ganz normal, der andere Spieler soll mit W und S seinen Balken steuern aber dies funktioniert nicht richtig wenn man W drückt geht er zwar kurz nach oben aber stoppt dann als wäre dort eine unsichtbare wand damit man weiter nach oben kann muss man kurz S drücken dann wieder W. Das ist aber sehr unangenehm für den Spielfluss. Freue mich über Hilfe. Danke im voraus
Tasten im Spiel Funktionieren nicht richtig
-
-
Hey,
zeige mal bitte deinen bisherigen Code. So können wir nur Raten.
Danke.
-
//Pong
float spielerx;
float spielery;
float bally;
float ballx;
float ball_speedx;
float ball_speedy;
float spieler_x;
float spieler_y;
int runde;
int punkte;
int punkte1;
int blur_anzahl = 10;
float[][] positions_array;
void setup(){
positions_array = new float[blur_anzahl][2];
spielerx = 20;
spielery = 500;
spieler_x = 1900;
spieler_y = 500;
ballx = 1000;
bally = 500;
ball_speedx = -15;
ball_speedy = 0;
runde = 0;
punkte = 0;
punkte1 = 0;
size(1920, 1020);
rectMode(CENTER);
}
void draw(){
background(0);
rect(spielerx, spielery, 20, 200);
rect(ballx, bally, 10, 10);
rect(spieler_x, spieler_y, 20, 200);
for(int i = (blur_anzahl - 1); i > 0; i--){
fill(255, 0, 0, 255/(i*2));
positions_array[i][0] = positions_array[i-1][0];
positions_array[i][1] = positions_array[i-1][1];
rect(positions_array[i][0], positions_array[i][1], 10, 10);
}
positions_array[0][0] = ballx;
positions_array[0][1] = bally;
if(keyPressed){
if(keyCode == 87){
if(spielery < 920){
spielery = spielery + 10;
}
}
if(keyCode == 83){
if(spielery > 100){
spielery = spielery - 10;
}
}
}
ballx = ballx + ball_speedx;
bally = bally + ball_speedy;
if(ballx < 50){
if(bally < (spielery + 100) && bally > (spielery - 100)){
ball_speedx = (-ball_speedx);
ball_speedy = ball_speedy - (spielery - bally) * 0.1;
runde = runde + 1;
}else{
ballx = 1000;
bally = 500;
ball_speedx = -15;
ball_speedy = 0;
runde = 0;
punkte = punkte + 1;
spielery = 500;
spielerx = 20;
spieler_y = 500;
spieler_x = 1900;
}
}
if(bally > 1020 bally < 5){
ball_speedy = -ball_speedy;
}
if(keyPressed){
if(keyCode == DOWN){
if(spieler_y < 920){
spieler_y = spieler_y + 10;
}
}
if(keyCode == UP){
if(spieler_y > 100){
spieler_y = spieler_y - 10;
}
}
}
if(ballx > 1870){
if(bally < (spieler_y + 100) && bally > (spieler_y - 100)){
ball_speedx = (-ball_speedx);
ball_speedy = ball_speedy - (spieler_y - bally) * 0.1;
runde = runde + 1;
}else{
ballx = 1000;
bally = 500;
ball_speedx = +15;
ball_speedy = 0;
runde = 0;
punkte1 = punkte1 + 1;
spielery = 500;
spielerx = 20;
spieler_y = 500;
spieler_x = 1900;
}
}
text("Punkte: " + punkte, 1700, 20 );
text("Punkte: " + punkte1, 200, 20 );
text("Runde: " + runde, 1000, 20 );
}
-
Hey,
so wie ich das sehe handelt es sich um java nicht um javascript.
Bei Java kann ich nicht helfen.
-
Hi,
Wird da überhaupt was gezeichnet? und wo ist der KeyListener implementiert?
-
Das ist Java, nicht Javascript.
-
Das weiß ich
Mich wundert es nur das da überhaupt was gezeichnet wird, da normalerweise Graphics als Parameter übergeben wird und Graphics das Rect zeichnet
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!