Autore Topic: Collisione tra due canvas  (Letto 1175 volte)

Zate

  • Visitatore
Collisione tra due canvas
« il: 20 Settembre 2011, 21:25:17 CEST »
0
Ciao a tutti!

Riassumo il mio progetto:
in una Surface View ci sono degli ostacoli (canvas) che scorrono e comandando una pallina (sempre una canvas) bisogna schivarli e sopravvivere il più a lungo possibile. Il problema è questo: come faccio ad individuare una collisione?
Codice (Java): [Seleziona]
if (y == changingY & x >= randomX){
                                        //CODE
                                       
                                }
y e x sono due float e servono per disegnare la pallina, changingY è la posizione dell'ostacolo sull'asse Y e randomX è la posizione dell'ostacolo sull'asse X.

Purtroppo non funziona (sarebbe stato fin troppo facile  :-P)

Ho letto su internet di cose come AndEngine, ma non ho la minima idea di come implementarle prima in eclipse e poi nel mio progetto...

Riuscite ad aiutarmi ancora una volta? :)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Collisione tra due canvas
« Risposta #1 il: 20 Settembre 2011, 21:57:26 CEST »
0
Non é un argomento semplice, almeno non tale da poter essere spiegato con una risposta ad una domanda.

Cosa devi fare, un gioco?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Zate

  • Visitatore
Re:Collisione tra due canvas
« Risposta #2 il: 20 Settembre 2011, 22:44:47 CEST »
0
Sì... Ci sarebbe un modo più semplice per intercettare le collisioni magari senza canvas?
« Ultima modifica: 20 Settembre 2011, 22:56:13 CEST da Zate »

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Collisione tra due canvas
« Risposta #3 il: 21 Settembre 2011, 03:20:19 CEST »
0
Supponendo che ostacoli e pallina siano tondi, non basta vedere se la distanza tra i due centri sia minore della somma dei due raggi?
« Ultima modifica: 21 Settembre 2011, 03:25:08 CEST da Verandi »

Zate

  • Visitatore
Re:Collisione tra due canvas
« Risposta #4 il: 21 Settembre 2011, 18:43:06 CEST »
0
Di sicuro questo tipo di programmazione è deprecato da cani e porci, ma:
Codice (Java): [Seleziona]
if(changingY >= y){
        //CODE
}
funziona bene... (forse non avevo spiegato che non pretendevo la perfezione)
EDIT: non funziona perchè il codice si effettuerebbe ogni volta che changingY sorpassa y, anche se l'ostacolo non viene colpito
EDIT2: trovata una soluzione!
Codice (Java): [Seleziona]
if (changingY + razzo.getHeight() >= y
                & changingY + razzo.getHeight() <= y
                                + test.getHeight()
                & randomX + razzo.getWidth()  >= x
                                & randomX + razzo.getWidth() <= x + test.getWidth()) {
                //CODE
}

Dove changingY è l'asse verticale sulla quale si muove l'ostacolo, randomX è la poszione dell'ostacolo sull'asse orizzontale, razzo(bitmap disegnata da una canvas) è l'ostacolo, y e x sono le coordinate sulle quali disegno la pallina(bitmap chiamata test disegnata da una canvas).

Non è molto preciso, però funziona...
« Ultima modifica: 21 Settembre 2011, 21:38:00 CEST da Zate »

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Collisione tra due canvas
« Risposta #5 il: 22 Settembre 2011, 11:22:12 CEST »
0
Comunque se vai nei tutorial trovi un tutorial di Qlimax che spiega qualcosa sul motore andengine
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .