Simultaneous keypresses
in
Programming Questions
•
1 year ago
Hi all, having read some of the discussions on here about simultaneous keyPresses I have written the following. I can now move the bats at the same time but only once. Once I release the keys the bats won't move any more. Any thoughts suggestions welcome.
Bat bat1;
Bat2 bat2;
Ball ball;
Bat2 bat2;
Ball ball;
void setup() {
size(1200, 800);
smooth();
background(0);
bat1=new Bat(10, height/2, 20, 100);
bat2=new Bat2(1170, height/2, 20, 100);
ball=new Ball(width/2, height/2, 40);
}
size(1200, 800);
smooth();
background(0);
bat1=new Bat(10, height/2, 20, 100);
bat2=new Bat2(1170, height/2, 20, 100);
ball=new Ball(width/2, height/2, 40);
}
void draw() {
ball.move();
ball.display();
bat1.move();
bat1.display();
bat2.move();
bat2.display();
}
ball.move();
ball.display();
bat1.move();
bat1.display();
bat2.move();
bat2.display();
}
class Ball {
float xpos;
float ypos;
int diameter;
float speed=0.5;
float xpos;
float ypos;
int diameter;
float speed=0.5;
Ball(float tempX, float tempY, int tempDiameter) {
xpos=tempX;
ypos=tempY;
diameter=tempDiameter;
}
void move() {
xpos+=random(-speed, speed);
ypos+=random(-speed, speed);
}
void display() {
ellipse(xpos, ypos, diameter, diameter);
}
}
xpos=tempX;
ypos=tempY;
diameter=tempDiameter;
}
void move() {
xpos+=random(-speed, speed);
ypos+=random(-speed, speed);
}
void display() {
ellipse(xpos, ypos, diameter, diameter);
}
}
class Bat {
float xpos;
float ypos;
int w;
int h;
float speed=1;
boolean up, down;
float xpos;
float ypos;
int w;
int h;
float speed=1;
boolean up, down;
Bat(float tempX, float tempY, int tempW, int tempH) {
xpos=tempX;
ypos=tempY;
w=tempW;
h=tempH;
}
xpos=tempX;
ypos=tempY;
w=tempW;
h=tempH;
}
void move() {
if (keyPressed) {
if ((key=='A')||(key=='a')) {
up=true;
}if (up){
ypos-=speed;
}
}
if (keyPressed) {
if ((key=='Z') || (key=='z')) {
down=true;
}if(down){
ypos+=speed;
}
}
}
void keyReleased(){
if (keyPressed){
if ((key=='A')||(key=='a')) {
up=false;
}
else if ((key=='Z') || (key=='z')) {
down=false;
}
}
}
void display() {
rect(xpos, ypos, w, h);
}
}
if (keyPressed) {
if ((key=='A')||(key=='a')) {
up=true;
}if (up){
ypos-=speed;
}
}
if (keyPressed) {
if ((key=='Z') || (key=='z')) {
down=true;
}if(down){
ypos+=speed;
}
}
}
void keyReleased(){
if (keyPressed){
if ((key=='A')||(key=='a')) {
up=false;
}
else if ((key=='Z') || (key=='z')) {
down=false;
}
}
}
void display() {
rect(xpos, ypos, w, h);
}
}
class Bat2 {
float xpos;
float ypos;
int w;
int h;
float speed=1;
boolean up, down;
float xpos;
float ypos;
int w;
int h;
float speed=1;
boolean up, down;
Bat2(float tempX, float tempY, int tempW, int tempH) {
xpos=tempX;
ypos=tempY;
w=tempW;
h=tempH;
}
xpos=tempX;
ypos=tempY;
w=tempW;
h=tempH;
}
void move() {
if (keyPressed && (key==CODED)) {
if (keyCode==UP) {
up=true;
}if(up){
ypos-=speed;
}
}
if (keyPressed && (key==CODED)) {
if (keyCode==DOWN) {
down=true;
}if(down){
ypos+=speed;
}
}
}
void keyReleased(){
if (keyPressed && (key==CODED)){
if (keyCode==UP) {
up=false;
}
else if (keyPressed && (key==CODED)) {
if (keyCode==DOWN){
down=false;
}
}
}
}
void display() {
rect(xpos, ypos, w, h);
}
}
if (keyPressed && (key==CODED)) {
if (keyCode==UP) {
up=true;
}if(up){
ypos-=speed;
}
}
if (keyPressed && (key==CODED)) {
if (keyCode==DOWN) {
down=true;
}if(down){
ypos+=speed;
}
}
}
void keyReleased(){
if (keyPressed && (key==CODED)){
if (keyCode==UP) {
up=false;
}
else if (keyPressed && (key==CODED)) {
if (keyCode==DOWN){
down=false;
}
}
}
}
void display() {
rect(xpos, ypos, w, h);
}
}
1