We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Hello!
I am trying to write a little game. Its a cats paw on the cursor and there are mice running around (both inserted as images). I was trying to find out, how the mice would disappear upon collision and a mouse click with the cats paw. any help maybe?
PImage pfote; // Deklarieren der Pfote
PImage foto; // Deklarieren von Holzboden
PImage maus; // Deklarieren der Maus
PFont f; // Deklaration der Variablen für den Font von der Klasse PFont
String lauftext[] = { // Deklaration des Strings für den Lauftext
"Ist die Katze doch im Haus, rennt die Maus."
};
float t; //Position des Lauftextes
int txt_nr =0;
float[] x = new float[5], y = new float[5], // Mäuse: Deklaration der Arrays für
vx = new float[5], vy = new float[5]; // die Position und Geschwindigkeit
void setup() { // Beginn Void Setup
size(852, 900); // Grösse des Fotos
f=createFont("Times New Roman", 16, true);
t=width; // Start des Textes ist rechts
pfote = loadImage ("pfote.gif"); // Bild laden der Pfote
maus = loadImage("maus.gif"); // Bild laden der Maus
foto = loadImage("holz.jpg"); // Bild Laden des Holzbodens
for (int i=0; i<5; i++) { // Mäuse: for-Schleife für die Initialisierung
vx[i] = random(15); // der Geschwindigkeiten in x- und y-Richtung
vy[i] = random(15); // (vx[i] ist Geschwindigleit von der Maus i in x-Richtung)
} // end for i
frameRate(25);
} // end setup
void draw() { // Beginn Void Draw
background(foto); // Das Objekt 'foto', der Holzboden wird als Hintergrund verwendet
fill(0);
imageMode (CENTER);
image (pfote, mouseX, mouseY, 100, 120); // Bild der Pfote positionieren
// Anzeige des Textes von Text [ txt_nr ] an der Position x
textFont(f, 25);
textAlign(LEFT);
text(lauftext[txt_nr], t, 810);
t = t - 5; // Dekrementieren von t
// Wenn x kleiner als -Textbreite ist, verschwindet der Text links
// und beginnt wieder rechts
float w = textWidth(lauftext[txt_nr]); // Feststellen der Textlänge
if (t < -w) {
t= width; // Wenn Text links weg geht, start rechts festlegen
txt_nr = (txt_nr + 1)%lauftext.length; // Textnummer um 1 erhöhen
}
if ( txt_nr > 2 ) {
txt_nr = 0;
} // Falls Meldungsnummer zu gross ist,
// wieder bei 0 beginnen.
for (int i=0; i<5; i++) { // for-Schleife für die Aktualiserung des Arrays
x[i] = x[i] + vx[i]; // Berechnung der neuen x-Position von Ball i
y[i] = y[i] + vy[i]; // Berechnung der neuen y-Position von Ball i
// Abprall an den Wänden. Sobald die Bälle i ausserhalb des Zeichenbereichs sind,
// wird die x- bzw. y-Geschwindigkeit in Gegenrichtung gekehrt.
if ((x[i]>width) || (x[i]<0)) { vx[i] = -vx[i]; }
if ((y[i]>400) || (y[i]<0)) { vy[i] = (-1)*vy[i]; }
image(maus, x[i], y[i], 50, 50); // Foto der mäuse einfügen
}
} // end void draw
Answers
Try the following code (the changes are commented):
Wow thats great! thanks! I kept on working on the project and I added the codes. still doesn't seem to work… it gives me an Out of bounds error.
// mmp13b, Lisa Müller
// Fang die Mäuse :P // 12.01.2014
Error:
Exception in thread "Animation Thread" java.lang.ArrayIndexOutOfBoundsException: 5 at sketch_dec28a.setup(sketch_dec28a.java:76) at processing.core.PApplet.handleDraw(PApplet.java:1608) at processing.core.PApplet.run(PApplet.java:1530) at java.lang.Thread.run(Thread.java:695)
Which line is highlighted?
I solved the Problem. It Works now. How can I make it re-run the game and music if the timer is over?