Discuss Scratch

igna92
Scratcher
2 posts

Problema nel capire il funzionamento delle dinamiche di alcuni Sprite

Ciao a tutti! Sto provando a programmare un gioco, mi sembrava di essere arrivato alla fine della programmazione ma una volta avviato mi ha iniziato a fare una cosa strana.
Vi spiego meglio: ho creato un gioco in cui un BEE-BOT (un'ape meccanica) deve muoversi su una griglia per raggiungere dei fiori, e nel percorso ci sono diversi ostacoli, che devono interagire con l'ape.
Ho messo, tra gli altri, dei ragnetti e dei pipistrelli: se l'ape li colpisce, loro devono dire “GNAM!” e far sparire l'ape, che torna al punto di partenza.
Io ho fatto in questo modo (forse ce n'era uno più veloce o migliore, ma ho iniziato da poco ad usare Scratch):

Nei comandi dell'ape ho messo
per sempre

se <sta toccando [ragno, pipistrello, ecc.. v]> allora
nascondi
attendi (1) secondi
mostra
vai a x: (partenza) y: (partenza)

E allo stesso tempo, nei vari pipistrelli, ragni, ecc.. ho messo
quando lo sfondo passa a [sfondo2 v]
per sempre
se <sta toccando [ape v]> allora
passa al costume [mangia v]
dire [GNAM!] per (1) secondi
attendi (0.5) secondi
passa al costume [base v]

end
end


Ora, finché ne avevo creati pochi funzionava tutto. Poi ne ho aggiunti per rendere il gioco più difficile, duplicando i primi sprite che avevo creato in questo modo, e una volta messi tutti dentro il “per sempre” dell'ape è successo che se l'ape tocca i ragni/pipistrelli scompare e torna alla partenza, ma nessuno degli sprite dice più la sua frase né cambia costume.

Esasperato, ho provato a creare un nuovo pipistrello (non cambiando assolutamente niente nei comandi, ma evitando di utilizzare “duplica”), e questo funziona, dice “GNAM!” e cambia costume esattamente come dovrebbero fare tutti.

Inoltre, oltre agli sprite animali ho inserito io degli altri sprite da ostacolo: un segnale di stop e un muro. Questi, che non dicono frasi ma semplicemente ruotano o si ingrandiscono se l'ape li colpisce, funzionano perfettamente.

Come posso fare? Scusate per la lunghezza ma non sapevo come spiegarmi.

Last edited by igna92 (March 23, 2020 16:56:35)

electrogame02
Scratcher
100+ posts

Problema nel capire il funzionamento delle dinamiche di alcuni Sprite

Prova con
porta [ X start v] a [200]
porta [Y start v] a [20]
per sempre
se <sta toccando [Ragno v]> allora
invia a tutti [ape ferita v]
vai a x: (X start) y: (Y start)
end
end

(pick random (pick random (pick random (pick random (0) to (10)) to (((timer) * (100)) mod (50))) to (15)) to (90))
igna92
Scratcher
2 posts

Problema nel capire il funzionamento delle dinamiche di alcuni Sprite

In verità sono riuscito a risolvere: provando a giocare mi sono accorto, per caso, che se un altro sprite (muro/stop) parlava, allora funzionava anche l'animazione dei ragni e dei pipistrelli. Penso fosse un problema di contemporaneità degli avvenimenti tra quello che doveva fare l'ape e il parlato+cambio costume degli altri…ho risolto aggiungendo ad ogni comando dell'ape
attendi (0.1) secondi

prima di farla sparire e tornare alla partenza, ed ora funziona! Grazie lo stesso!

Powered by DjangoBB

Standard | Mobile