Visualizzazione dei risultati da 1 a 2 su 2

Discussione: blender e python

  1. #1

    blender e python

    Ciao...ho iniziato ad usare blender da poco e mi sto cimentando nello sviluppo di un giochino semplice.

    Il mio problema consiste nel costruire uno score manager.
    Semplicemente ho messo 10 monete , una sfera(actor) e un cubo (nel quale tengo la logica dello score manager) all'interno di una scena.

    Ogni volta che la sfera collide con una moneta, la moneta invia un messaggio tramite l'actuator al cubo. Il cubo ha una proprietà numeroMoneta inizializzata a 10.
    Ogni volta che arriva un messaggio non faccio altro che intercettarlo e, con un semplice script, diminuire il valore della proprietà di UNA unità fino a quando non è == 0 (HO RACCOLTO TUTTE LE MONETE).

    Ora il problema è che ogni volta che la moneta invia un messaggio, il cubo decrementa il valore della proprietà di 2 e non di uno come gli ho chiesto, questo perchè , guardando dalla shell, lo script viene eseguito 2 volte. PERCHE'?????

    Se runno lo script con un ide python funziona tutto correttamente.

    Cosa fa , al suo interno , il motore?


    OSS: anche con una semplice print "ciao" come script, eseguita lanciando una scena vuota(tasto P dalla vista 3D), mi si presenta lo stesso problema....ciao viene stampato a video 2 volte e non una. Ancora se eseguo il run da Text->Run Python Script il risultato è corretto ::1 SOLA STAMPA A VIDEO!!!!!(come logica vuole).

    Ciao,
    L.

  2. #2
    perchè appena c'è al collisione devi togliere l'actor che è andato a collidere altriemnti toccherà la seconda parete della moneta richiamando di nuovo lo script
    (non ho mai usato nello specifico il game engine di blender ma ho usato una miriade di engine 3d e sono tutti più o meno uguali da questo punto di vista); oppure la collisione è gestita a livello di facce e non di entità e quindi a seconda di quante facce si intersecano vieni richiamato per ogni faccia del target intersecata.

    altra possibilità per risolevre è non accettare più eventi di collisione tra quelle due entità per quel ciclo di rendering impostando in una mappa che per quel ciclo le due entità hanno già colliso.

    possibilità ce ne sono una marea, studiati bene l'engine per capire la sua logica poi potrai fare tutte le analisi tecniche che ti pare per risolvere il tuo problema specifico, ciao.
    Arvedsè'n'gamba monsù.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.