Processing: Collision with mouse click

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Processing: Collision with mouse click

lizzbet
Hello There!

I am programming a little game but got stuck on the most important part!
I have a picture of a cat paw on the mouse cursor and pictures of mice running around. goal would be, that if you click on a mouse, it disappears and you gain a point. All codes for this I tried don't seem to work. Maybe because I attached a pic on the cursor? can anyone make a suggestion how to do it? Here's my code so far how it works. Sorry comments are in German.

import ddf.minim.*;
AudioPlayer player;
Minim minim;
                 
                        // Deklaration eines Objektes vom Type PIamge
  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
    smooth();        // Abgerundete Kanten
   
    minim = new Minim(this);
  // load a file, give the AudioPlayer buffers that are 1024 samples long
  // player = minim.loadFile("groove.mp3");
  // load a file, give the AudioPlayer buffers that are 2048 samples long
  player = minim.loadFile("Oggy.mp3", 2048);
  // play the file
  player.play();
   
     
   
    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)
   
    } // ende for-Schleife
   
     
     frameRate(25);
   
 
  }// ende setup
 
 
  void draw() {             // Beginn Void Draw
   
    background(foto);       // Das Objekt 'foto', der Holzboden wird als Hintergrund verwendet
    fill(0);
    imageMode (CENTER);    // Mauscursor befondet sich in der Mitte des Bildes
   

    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 t 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 Maus i
       y[i] = y[i] + vy[i];                 // Berechnung der neuen y-Position von Maus i
       
       // Abprall an den Wänden. Sobald die Mäuse 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]>height) || (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
 
  void stop()
{
  // always close Minim audio classes when you are done with them
  player.close();
  minim.stop();
  super.stop();
}