Hi! I can fire my gun and hit the other tank, but when i shoot once, i cannot reset the code so i can shoot again… I need to stop the program and hit play again. Help? Thanks!
import controlP5.*; //library voor de power-slider
ControlP5 slider;
ControlP5 button;
int schermMode = 0; //begint bij beginscherm
PImage beginscherm;
PImage achtergrond;
PImage tank1;
PImage tank2;
int punten = 0;
float schiethoek = 0; //schiethoek : -100
float schiethoekrekenen;
PVector plaats; //xt --> uitendelijke pos
PVector snelheid; //vt --> kracht weggeschoten kogel(te maken met schiethoek)
PVector versnelling; //at --> voor ons de enige tegenwerkende kracht
float snelheidbegin = 80; //afschietsnelheid
float vsnelheid;
float hsnelheid;
float vrekensnelheid;
float hrekensnelheid;
PImage bg;
boolean geklikt = false;
int power = 70;
PFont font;
boolean uitgevoerd = false;
boolean algeraakt = false;
void setup() {
size(1000, 600);
smooth();
button = new ControlP5(this);
font = createFont("Orbitron", 13);
plaats = new PVector(85, 545); //xt
snelheid = new PVector(hrekensnelheid, vrekensnelheid); //vt
versnelling = new PVector(0, 0.098); //at
frameRate(50);
achtergrond = loadImage("achtergrondaf.jpg");
beginscherm = loadImage("beginscherm.jpg");
tank1 = loadImage("tank.png"); //tankzelf
tank1.resize(151, 51);
tank2 = loadImage("tankrood.png");
tank2.resize(151, 51);
}
void draw() {
if (schermMode == 0) {
beginScherm();
} else if (schermMode == 1) {
gameScherm();
} else if (schermMode == 2) {
gameoverScherm();
}
}
void beginScherm() {
background(beginscherm);
if (uitgevoerd == false) {
Button();
uitgevoerd = true;
}
}
void controlEvent(ControlEvent theEvent) {
switch (theEvent.getController().getId()) {
case (1):
println("geklikt op play");
schermMode = schermMode + 1;
break;
case (2):
println("geklikt op exit");
exit();
break;
}
}
void Button() {
button.addButton("P l a y").setValue(0).setPosition(761, 90).setSize(130, 39).setColorBackground(color(200, 20, 50, 1)).setColorForeground(color(182, 128, 30, 150)).setFont(font).setId(1);;
button.addButton("E X I T").setValue(0).setPosition(761, 197).setSize(130, 39).setColorBackground(color(200, 20, 50, 1)).setColorForeground(color(182, 128, 30, 150)).setFont(font).setId(2);;
}
void hideButton() {
button.hide();
}
void gameScherm() {
slider = new ControlP5(this); //toevoegen van een variabele met een functie uit cP5
slider.addSlider("power").setPosition(220, 52).setRange(30, 150); //slider waarden
slider.setColorForeground(0xffaa0000); //slider varenderende kleur
slider.setColorBackground(0xff660000); //slider achtergrond kleur
slider.setColorActive(0xffff0000); //slider hover kleur
hideButton(); //knop play weg in gamescherm
background(achtergrond);
noStroke();
text("punten : " + punten, 90, 62); // punten
snelheidbegin = power;
image(tank2, 830, 540);
fill(56, 73, 116);
noStroke(); //geen rand
image(tank1, 20, 525);
pushMatrix();
translate(88, 540);
rotate(-schiethoek);
rect(0, 0, 55, 4); //geweer
popMatrix();
fill(215, 27, 27);
noStroke(); //geen rand
if (keyPressed == true) { //moet voor niet-continu beweging
if (keyCode == LEFT) {
schiethoek = schiethoek + 0.01; //in radians ≈ 0.57º
if (schiethoek > 1.5) { //stopt zodat hij niet te ver doordraait
schiethoek = 1.5;
}
}
}
if (keyPressed == true) {
if (keyCode == RIGHT) {
schiethoek = schiethoek - 0.01; //in radians ≈ 0.57º
if (schiethoek < 0) { //stopt zodat hij niet te ver doordraait
schiethoek = 0;
}
}
}
if ((keyPressed == true) && key == TAB) {
geklikt = true;
schiethoekrekenen = schiethoek * 180 / PI; //van Radians naar graden
vsnelheid = snelheidbegin * sin(abs(schiethoek)); //schuine vector ontbinden in horizontale en verticale component
hsnelheid = snelheidbegin * cos(abs(schiethoek)); //abs, voor geen negatieve waardes
vrekensnelheid = vsnelheid / 10; //correctie voor verhouding met andere waarden
hrekensnelheid = hsnelheid / 10;
snelheid.set(hrekensnelheid, vrekensnelheid);
}
if (geklikt) {
plaats.x = plaats.x + snelheid.x; //vector toevoegen aan plaats
plaats.y = plaats.y - snelheid.y;
snelheid.y -= 0.25; //zwaartekracht aan snelheid
snelheid.add(versnelling);
ellipse(plaats.x, plaats.y, 9, 9); //bewegende kogel
}
if (plaats.x > width || plaats.y > height) {
noLoop();
redraw();
}
if (dist(plaats.x, plaats.y, 830, 540) <= 60) {
if (algeraakt == false) {
println("geraakt!");
punten++;
algeraakt = true;
}
}
}
void gameoverScherm() {
background(235, 64, 52);
}
//https://www.youtube.com/watch?v=PXheUQ7Ih_U