No.
too complicate
finish what you started and don’t go something fancy
finish what you started
No.
too complicate
finish what you started and don’t go something fancy
finish what you started
the key involved is the space bar, the space bar makes the ball held/ attached
i tried to put it in if (key == ’ ') and it didn worked.
it’s where you move the paddle with the keys
(Remember the ball is already attached)
Ok, i tried on both ‘w’ key and and ‘s’ keys but the ball instead goes back
on the hold function and nothing happens
Well show the code
Chrisir
int size = 20;
float xpos, ypos;
float xspeed = random(5, 6);
float yspeed = random(0.6, 4);
float fehler1=0;
float fehler2=0;
float playerpos1;
float p1x;
float playerpos2;
float p2x;
String tela;
boolean trocou;
int scoreE = 0;
int scoreD = 0;
int scoreW = 10;
boolean hold=false;
boolean attachedToPaddle=false;
boolean move = true;
float easing = 0.05;
void setup() {
size(640, 400);
noStroke();
tela = "MENU";
frameRate(30);
smooth();
playerpos1 =height/2;
playerpos2 =height/2;
xpos = 45;
ypos = playerpos1;
p1x = 10;
p2x = width-30;
}
void draw() {
switch (tela) {
// ------------------------------------
case "GAME":
background(277);
if (hold && attachedToPaddle)
{
// ignore
} else
{
xspeed *= 1.001;
xpos += xspeed;
ypos += yspeed;
}
scores();
hold();
if (ypos > height-size/2 || ypos < 0+size/2) {
yspeed *= -1;
}
if ( xpos <= 30+size/2) {
if (ypos > playerpos1-50 && ypos < playerpos1+50) {
if ( ! (hold && attachedToPaddle)) {
xspeed *= -1;
yspeed += (ypos-playerpos1)/5;
}
attachedToPaddle=true;
}
} else {
attachedToPaddle=false;
}
if (xpos <= 0) {
fehler1 += 1;
if (fehler1 <= 4) {
xpos = 50;
ypos = playerpos1;
xspeed = random(5, 6);
xspeed *= -1;
yspeed = 0;
println("player 2: "+ str(fehler2)+":"+str(fehler1) );
}
if (fehler1 ==5) {
println("player 2 win 5:"+ str(fehler2));
}
}
if ( xpos >= width-30-size/2) {
if (ypos > playerpos2-50 && ypos < playerpos2+50) {
xspeed *= -1;
yspeed += (ypos-playerpos2)/5;
}
}
if (xpos >= width) {
fehler2 +=1 ;
if (fehler2 <= 4) {
xpos = width-50;
ypos = playerpos2;
xspeed = -random(5, 6);
xspeed *= -1;
yspeed = 0;
println("ponto: "+ str(fehler2)+":"+str(fehler1) );
}
if (fehler2 ==5) {
println("player 1 ganhou 5:"+ str(fehler1));
}
}
ellipse(xpos, ypos, size, size);
rect (p1x, playerpos1-50, 20, 100);
rect (p2x, playerpos2-50, 20, 100);
text(str(hold), 333, 33);
break;
// ------------------------------------
case "MENU":
menu();
break;
// ------------------------------------
case "TUTORIAL":
tutorial();
break;
}
}
void menu() {
background(255, 0, 0);
fill(0, 0, 0);
text ("MENU",
111, 111);
}
// --------------------------------------------------------------------------
void keyPressed() {
if (key == 'w') {
if (playerpos1 >=50)
playerpos1 = playerpos1 - 8;
xpos=xpos-8;
}
if (key == 's') {
if (playerpos1 <=height-50)
playerpos1 = playerpos1 + 8;
xpos=xpos-8;
}
if (key =='a') {
p1x = -8;
}
if (key == 'd') {
p1x = +8;
}
// -------------------
if (key == '7')
{
if (playerpos2 >=50)
playerpos2 = playerpos2 - 8;
}
if (key == '1') {
if (playerpos2 <=height-50)
playerpos2 = playerpos2 + 8;
}
/*if (key == '3') {
xspeed = 0;
yspeed = 0;
move = false;
}
*/
if (key == ' ') {
hold = ! hold;
}
if (key == ESC) {
tela="MENU";
key=0;
}
}
void keyReleased() {
//hold = false;
//attachedToPaddle=false;
}
void mousePressed() {
switch (tela) {
// ------------------------------------
case "GAME":
break;
// ------------------------------------
case "MENU":
tela="GAME";
break;
// ------------------------------------
case "TUTORIAL":
tela="tutorial";
break;
}
}
// --------------------------------------------------------------------------
void tutorial() {
background(277);
xspeed *= 1.001;
xpos += xspeed;
ypos += yspeed;
scores();
tela = "menu";
background(0, 255, 0);
trocou = true;
}
void scores() {
fill(255);
text(scoreE, 100, 50);
text(scoreD, width-100, 50);
if (xpos >640) {
scoreE += 1;
xspeed = xspeed*2;
yspeed = yspeed*2;
}
if (xpos < 0 ) {
scoreD += 1;
xspeed = xspeed*1.5;
yspeed = yspeed*1.5;
}
}
void AI() {
playerpos2 = xpos * easing;
}
void hold() {
if (hold) {
if (xpos == playerpos1) {
xpos=xpos-8;
// xspeed = 0;
}
}
}
//
what’s the error here??
ah, and another error (actually my error!)
xpos=xpos-8;
do you really want to move the ball in x direction?
I gotta go
see you
Chrisir
ok thank you, take care
what did you meant by where you move the paddle with the keys, should i put it somewhere in keypressed?
Are you asking about the movement of the ball together with the paddle in the situation where the ball is attached to the paddle?
Then the answer is yes.
Put it in keyPressed where you move the paddle (w etc.)
But have an if clause check the situation
so if(hold = true){
xpos = xpos-8
}
?
i tried and it didnt held the ball while moving, when i stood still with the ball attached to the paddle it help but when i moved it i launched the ball.
I think this is the if clause you are looking for
This is VERY dangerous
you want either if(hold == true){ with a double ==
or just if(hold){
(but with if(hold = true){ you assign true to hold prior to evaluating it with if so it’s always true. Bad.)
i tried this code and its still not working, maybe is the the xpos value?
if (hold && attachedToPaddle){
xpos = xpos+8;
}
did you put it in this section?
post your entire code please
gotta go
int size = 20;
float xpos, ypos;
float xspeed = random(5, 6);
float yspeed = random(0.6, 4);
float fehler1=0;
float fehler2=0;
float playerpos1;
float p1x;
float playerpos2;
float p2x;
String tela;
boolean trocou;
int scoreE = 0;
int scoreD = 0;
int scoreW = 10;
boolean hold=false;
boolean attachedToPaddle=false;
boolean move = true;
float easing = 0.05;
void setup() {
size(640, 400);
noStroke();
tela = "MENU";
frameRate(30);
smooth();
playerpos1 =height/2;
playerpos2 =height/2;
xpos = 45;
ypos = playerpos1;
p1x = 10;
p2x = width-30;
}
void draw() {
switch (tela) {
// ------------------------------------
case "GAME":
background(277);
if (hold && attachedToPaddle)
{
// ignore
} else
{
xspeed *= 1.001;
xpos += xspeed;
ypos += yspeed;
}
scores();
hold();
if (ypos > height-size/2 || ypos < 0+size/2) {
yspeed *= -1;
}
if ( xpos <= 30+size/2) {
if (ypos > playerpos1-50 && ypos < playerpos1+50) {
if ( ! (hold && attachedToPaddle)) {
xspeed *= -1;
yspeed += (ypos-playerpos1)/5;
}
attachedToPaddle=true;
}
} else {
attachedToPaddle=false;
}
if (xpos <= 0) {
fehler1 += 1;
if (fehler1 <= 4) {
xpos = 50;
ypos = playerpos1;
xspeed = random(5, 6);
xspeed *= -1;
yspeed = 0;
println("player 2: "+ str(fehler2)+":"+str(fehler1) );
}
if (fehler1 ==5) {
println("player 2 win 5:"+ str(fehler2));
}
}
if ( xpos >= width-30-size/2) {
if (ypos > playerpos2-50 && ypos < playerpos2+50) {
xspeed *= -1;
yspeed += (ypos-playerpos2)/5;
}
}
if (xpos >= width) {
fehler2 +=1 ;
if (fehler2 <= 4) {
xpos = width-50;
ypos = playerpos2;
xspeed = -random(5, 6);
xspeed *= -1;
yspeed = 0;
println("ponto: "+ str(fehler2)+":"+str(fehler1) );
}
if (fehler2 ==5) {
println("player 1 ganhou 5:"+ str(fehler1));
}
}
ellipse(xpos, ypos, size, size);
rect (p1x, playerpos1-50, 20, 100);
rect (p2x, playerpos2-50, 20, 100);
text(str(hold), 333, 33);
break;
// ------------------------------------
case "MENU":
menu();
break;
// ------------------------------------
case "TUTORIAL":
tutorial();
break;
}
}
void menu() {
background(255, 0, 0);
fill(0, 0, 0);
text ("MENU",
111, 111);
}
// --------------------------------------------------------------------------
void keyPressed() {
if (key == 'w') {
if (playerpos1 >=50)
playerpos1 = playerpos1 - 8;
}
if (key == 's') {
if (playerpos1 <=height-50)
playerpos1 = playerpos1 + 8;
}
if (key =='a') {
p1x = -8;
}
if (key == 'd') {
p1x = +8;
}
// -------------------
if (key == '7')
{
if (playerpos2 >=50)
playerpos2 = playerpos2 - 8;
}
if (key == '1') {
if (playerpos2 <=height-50)
playerpos2 = playerpos2 + 8;
}
/*if (key == '3') {
xspeed = 0;
yspeed = 0;
move = false;
}
*/
if (key == ' ') {
hold = ! hold;
}
if (key == ESC) {
tela="MENU";
key=0;
}
if (hold && attachedToPaddle){
xpos = xpos+8;
}
}
void keyReleased() {
//hold = false;
//attachedToPaddle=false;
}
void mousePressed() {
switch (tela) {
// ------------------------------------
case "GAME":
break;
// ------------------------------------
case "MENU":
tela="GAME";
break;
// ------------------------------------
case "TUTORIAL":
tela="tutorial";
break;
}
}
// --------------------------------------------------------------------------
void tutorial() {
background(277);
xspeed *= 1.001;
xpos += xspeed;
ypos += yspeed;
scores();
tela = "menu";
background(0, 255, 0);
trocou = true;
}
void scores() {
fill(255);
text(scoreE, 100, 50);
text(scoreD, width-100, 50);
if (xpos >640) {
scoreE += 1;
xspeed = xspeed*2;
yspeed = yspeed*2;
}
if (xpos < 0 ) {
scoreD += 1;
xspeed = xspeed*1.5;
yspeed = yspeed*1.5;
}
}
void AI() {
playerpos2 = xpos * easing;
}
void hold() {
if (hold) {
if (xpos == playerpos1) {
xpos=xpos-8;
// xspeed = 0;
}
}
}
//
??
the idea is that we move the ball together with the paddle when the ball is attached.
WHERE do we move the paddle in keyPressed??