Come rilevare le collisioni in Xcode

February 24

Rilevare una collisione tra oggetti è un compito importante da eseguire in progetti Xcode che dispongono di animazione e di oggetto le interazioni, come molti giochi per iPhone. Application Programming Interface Quartz 2D del Xcode, o API, contiene il riferimento CGGeometry, che ha metodi per trattare con primitive geometriche e le loro interazioni. Rilevare le collisioni con la funzione "CGRectIntersectsRect", che prende due oggetti CGRect rettangolari come argomenti e restituisce se i due oggetti sono scontrati o meno.

istruzione

1 Aprire il progetto nell'applicazione Xcode IDE.

2 Fare clic e trascinare due file di immagine rettangolari nella cartella "Risorse" del progetto. Queste sono le due immagini si rileva una collisione tra. Fai clic su "Aggiungi" nella finestra pop-up per aggiungere gli elementi al progetto.

3 Ruotare i due file immagine in proprietà e dichiarare un metodo per rilevare le collisioni aprendo il file "MainViewController.h" nel progetto e modificare il codice a:

@interface MainViewController: UIViewController <FlipsideViewControllerDelegate> {

IBOoutlet UIImageView

my_rect_1;
IBOoutlet UIImageView my_rect_2;
}

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

(IBAction) showinfo; (nulli) myDetectCollisions; 4 Aprire il file "MainView.xlib". Fare clic sul pulsante "Media" nella finestra "Library". Fare clic e trascinare i due file di immagine dalla "Libreria" nella finestra "Vista principale".

5 Fai clic su "Manuale di file" nella finestra "MainView.xlib".

6 Fare clic sul pulsante "Collegamenti" sul "Main View Controller Attributi" finestra.

7 Fare clic e trascinare il cerchio accanto a "my_rect_1" sulla sua immagine corrispondente sulla finestra "Vista principale". Ripetere questo passaggio per "my_rect_2."

8 Aprire il file "MainViewController.m". Sintetizzare le due file di immagine aggiungendo il seguente codice sotto la linea "@implementation MainViewController":

@synthesize my_rect_1;
@synthesize my_rect_2;

9 Creare il metodo per rilevare le collisioni con il codice seguente:

(nulli) myDetectCollisions {

if (CGRectIntersectsRect (my_rect_1.frame, my_rect_2.frame)) {
// Collisione rilevata
}
}

La funzione "CGRectIntersectsRect" tornerà "true" se c'è stata una collisione sprite tra le due immagini.

10 Chiamare il metodo "myDetectCollisions" aggiungendo il seguente codice all'interno del vostro metodo che gestisce il movimento delle due immagini:

[Auto myDetectCollisions];

11 Salvare il progetto Xcode. Fare clic sul pulsante "Build and Go" per avviare il nuovo codice di collisione.