Hvordan oppdage kollisjoner i Xcode

Oppdager en kollisjon mellom objekter er en viktig oppgave å utføre i Xcode prosjekter som har animasjon og objekt interaksjoner, slik som mange iPhone-spill. Xcode er Quartz 2D application programming interface, eller API, inneholder CGGeometry referanse, som har metoder for å håndtere geometriske primitiver og deres interaksjoner. Oppdage kollisjoner med "CGRectIntersectsRect" -funksjonen, som tar to rektangulære CGRect gjenstander som argumenter og returnerer om de to objektene har kollidert eller ikke.

Bruksanvisning

1 Åpne prosjektet i Xcode IDE-programmet.

2 Klikk og dra to rektangulære bildefiler i "Ressurser" -mappen på prosjektet. Dette er de to bildene du vil oppdage en kollisjon mellom. Klikk "Legg til" på pop-up vindu for å legge til elementer i prosjektet.

3 Vri de to bildefiler til eiendommer og erklære en metode for å detektere kollisjoner ved å åpne "MainViewController.h" -filen i prosjektet og endre koden til:

@interface MainViewController: UIViewController <FlipsideViewControllerDelegate> {

IBOoutlet UIImageView

my_rect_1;
IBOoutlet UIImageView my_rect_2;
}

@property (nonatomic, beholde) UIImageView my_rect_1;
@property (nonatomic, beholde) UIImageView my_rect_2;

(IBAction) Show, (void) myDetectCollisions, 4 Åpne "MainView.xlib" fil. Klikk på "Media" -knappen i "Library" vinduet. Klikk og dra de to bildefiler fra "Library" på "Main View" -vinduet.

5 Klikk på "File eier" på "MainView.xlib" -vinduet.

6 Klikk på "Tilkoblinger" -knappen på "Main View Controller attributter" -vinduet.

7 Klikk og dra sirkelen ved siden av "my_rect_1" på den tilsvarende bilde på "Main View" -vinduet. Gjenta dette trinnet for "my_rect_2."

8 Åpne "MainViewController.m" fil. Syntetisere de to bildefiler ved å legge til følgende kode under "@implementation MainViewController" linje:

@synthesize my_rect_1;
@synthesize my_rect_2;

9 Lag metoden for å oppdage kollisjoner ved å legge følgende kode:

(void) myDetectCollisions {

if (CGRectIntersectsRect (my_rect_1.frame, my_rect_2.frame)) {
// Kollisjon oppdaget
}
}

Den "CGRectIntersectsRect" -funksjonen returnerer "true" dersom det har vært en sprite kollisjon mellom de to bildene.

10 Kaller "myDetectCollisions" metoden ved å legge til følgende kode i din metode som håndterer bevegelsen av de to bildene:

[Selvtillit myDetectCollisions];

11 Lagre Xcode prosjekt. Klikk på "Bygg og Go" knappen for å kjøre den nye sammenstøt kode.