2017-12-17 1 views
0

Ich mache ein Spiel für mein College-Projekt und ich brauche Hilfe. Ich mache ein Spiel, bei dem du ein Auto mit deiner Maus an der Y-Koordinate steuerst. Sie müssen die Menschen meiden und Münzen sammeln, die sich ebenfalls auf der y-Koordinate bewegen. Ich möchte, dass die Bilder, die ich von den Leuten und den Münzen einfüge, nach einer Kollision mit dem rechteckigen Teil meines Autos in Processing 3 verschwinden. Dies ist mein Code:Wie Bild bei Kollision mit Rechteck in der Verarbeitung verschwinden zu lassen?

PImage img,img1,img2,img3,img4,img5; 
int x,y; 
float ypos=0; 
float ypos2=4; 

void setup() 
    { 
    size(1000,585); 
    img = loadImage("person1.png"); 
    img1 = loadImage("sun.png"); 
    img2 = loadImage("coin.png"); 
    img3 = loadImage("person2.png"); 
    img4 = loadImage("person3.png"); 
    img5 = loadImage("person4.png"); 
    x=width/2; 
    y=height/2; 
    } 
void draw() 
{ 
    background(170,200,255); 
    image(img1,720,-30,160,160); 
    fill(255,240,50); 
    ellipse(800,50,85,85); 
    fill(200,255,150); 
    rect(0,200,1000,400); 
    fill(0,0,0); 


    rect((-frameCount%200)*10+1000,130,90,70); 
    rect((-frameCount%200)*10+1090,100,50,100); 
    rect((-frameCount%200)*10+1500,130,90,70); 
    rect((-frameCount%200)*10+1900,100,50,100); 


    fill(200,200,200); 
    rect(0,250,1000,90); 
    fill(200,200,200); 
    rect(0,350,1000,90); 
    fill(200,200,200); 
    rect(0,450,1000,90); 
    fill(255,100,100); 


    rect(0,mouseY+0,200,80); 
    fill(0); 
    ellipse(50,mouseY+60,60,60); 
    fill(0); 
    ellipse(150,mouseY+60,60,60); 
    fill(100); 
    ellipse(50,mouseY+60,40,40); 
    fill(100); 
    ellipse(150,mouseY+60,40,40); 
    fill(255,100,100); 
    arc(100,mouseY+0,160,150,PI,TWO_PI); 
    fill(160,210,300); 
    arc(100,mouseY+0,130,130,PI,TWO_PI); 
    fill(255,100,100); 
    rect(95,mouseY+0,10,-75); 
    fill(0); 
    rect(99,mouseY+0,2,80); 


    image(img5,(-frameCount%300)*10+2500,250+sin(ypos)*100,120,120); 
    ypos +=0.01; 
    image(img4,(-frameCount%450)*5+2000,400+sin(ypos)*140,120,120); 
    ypos +=0.01; 
    image(img,(-frameCount%300)*5+1000,300+sin(ypos)*50,120,120); 
    ypos +=0.01; 
    image(img2,(-frameCount%100)*20+1000,300-sin(ypos2)*130,50,50); 
    ypos2 +=0.05; 
    image(img3,(-frameCount%400)*5+1600,250-sin(ypos)*100,120,120); 
    ypos +=0.08; 
    image(img2,(-frameCount%300)*20+1900,300+sin(ypos2)*130,50,50); 
    ypos2 +=0.05; 
} 

Antwort

0

Sie benötigen Rechteck-Rechteck Kollisionserkennung durchzuführen. Google ist dein Freund hier, aber die Grundlagen wie folgt aussehen:

//evaluates to true if rectOne and rectTwo are colliding 
if(rectOneRight > rectTwoLeft && rectOneLeft < rectTwoRight && rectOneBottom > rectTwoTop && rectOneTop < rectTwoBottom){ 

Shameless Eigenwerbung: Ich habe eine Anleitung auf Kollisionserkennung in Bearbeitung here verfügbar geschrieben habe.

Wenn Sie immer noch Probleme haben, posten Sie bitte eine MCVE in einem neuen Fragebeitrag zusammen mit einer spezifischeren Frage. Beachten Sie, dass dies nicht Ihr komplettes Projekt sein sollte, sondern nur ein kleines Beispiel. Versuchen Sie, ein Programm zu erstellen, das zwei hart codierte Rechtecke zeigt, die ihre Farbe ändern, wenn sie kollidieren. Viel Glück.

+0

Vielen Dank für die Beantwortung meiner Frage, aber ich habe keine Ahnung, wie Sie das in meinen Code einfügen würden Sie mir zeigen können, wo genau ich das hinzufügen muss? Gibt es weitere Informationen, die ich meinem Code hinzufügen muss? Wie kann ich das Bild aufhören zu erscheinen, nachdem das Rechteck es trifft? Gibt es eine Art Stoppbefehl? –

Verwandte Themen