Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: problema con oggetti

  1. #1
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179

    problema con oggetti

    onClipEvent (enterFrame){
    if (Key.isDown(Key.LEFT))
    this._x = (_x-5);
    if (Key.isDown(Key.RIGHT))
    this._x = (_x+5);
    if (Key.isDown(Key.UP))
    this._y = (_y-5);
    if (Key.isDown(Key.DOWN))
    this._y = (_y+5);
    if(this.hitTest(_root.sfondo)) {
    // hitTest è una proprietà!...
    trace("GAME OVER");
    }}

    /* Problema: l'oggetto in questione quando sta sopra l'oggetto strada da comunque game over, ma l'oggetto strada sta sopra l'oggetto sfondo, come posso fare per evitare questo errore? */

  2. #2
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Domanda: ma perché l'hitTest lo fai sullo sfondo e non sulla strada? :master:
    FaX

  3. #3
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    Mi spiego meglio:
    usando la hitTest come condizione della if ho la possibilità di dire all'oggetto che se tocchi un'altro oggetto allora condizione vera, il problema è questo come faccio a fare questo se l'oggetto in questione è già sopra un oggetto che in questo caso è il mio sfondo(lo uso come sfondo,quindi tutti toccano sempre l'oggetto sfondo)?

    comunque la hitTest lo uso sulla macchina che deve stare sopra la strada, perchè se la macchina tocca lo sfondo(oggetto che sta sotto a strada che di conseguenza alla macchina) mi deve visualizzare la scritta "GAME OVER"

  4. #4
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    if(this.hitTest(_root.sfondo)) {
    // hitTest è una proprietà!...
    trace("GAME OVER");
    }}
    Ma in questa azione tu dici che se l'oggetto tocca "sfondo" deve dare "game over".
    Se ho ben capito l'oggetto deve dare errore se non tocca più strada.

    Quindi, posso provare a dirti che dovresti fare così:

    codice:
    ...
    if(! this.hitTest(_root.strada)) { 
    ...
    Ma è tutto relativo a quello che devi fare!
    E' il concetto che, mi sembra di aver capito, stai sbagliando: lo sfondo rimane tale, è con gli oggetti singoli, come la strada, che devi determinare se sei sopra o no.
    FaX

  5. #5
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    si, la hitTest lo uso sulla macchina che deve stare sopra la strada, perchè se la macchina tocca lo sfondo(oggetto che sta sotto a strada che di conseguenza alla macchina) mi deve visualizzare la scritta "GAME OVER"

  6. #6
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Appunto!
    Quindi tu devi dirgli che sei in "game over", non se tocchi lo sfondo, ma se non tocchi più la strada!!!

    puoi farlo proprio come ti ho scritto io: mettendo un ! (punto esclamativo) prima di hitTest; l'hitTest, deve però essere riferito all'oggetto "strada" (che deve essere un movieclip).
    FaX

  7. #7
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    L'ho già fatto ma non funzione uguale!
    onClipEvent (enterFrame){
    if (Key.isDown(Key.LEFT))
    this._x = (_x-5);
    if (Key.isDown(Key.RIGHT))
    this._x = (_x+5);
    if (Key.isDown(Key.UP))
    this._y = (_y-5);
    if (Key.isDown(Key.DOWN))
    this._y = (_y+5);
    if(! this.hitTest(_root.strada)) {
    // hitTest è una proprietà!...
    trace("GAME OVER");
    }}

  8. #8
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Io ho provato con questo e funziona:

    codice:
    onClipEvent(enterFrame){
    	if (Key.isDown(Key.LEFT)) 
    	this._x = (_x-5); 
    	if (Key.isDown(Key.RIGHT)) 
    	this._x = (_x+5); 
    	if (Key.isDown(Key.UP)) 
    	this._y = (_y-5); 
    	if (Key.isDown(Key.DOWN)) 
    	this._y = (_y+5);
    	if(!this.hitTest(_root.strada)){
    		trace("fuori")
    	}else{
    		trace("sopra");
    	}
    }
    Scrivi bene il percorso del clip "strada": si trova sulla _root?
    FaX

  9. #9
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    sta sul livello 2, frame primo

  10. #10
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Per livello2 cosa intendi?
    Livello della linea temporale oppure la clip "strada", in realtà, è un filmato esterno che hai caricato sul _level2?
    FaX

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.