Commodore 64 > Aiuto & Domande
collisioni sprite/sprite
eregil:
--- Citazione da: input - 09 Maggio 2021, 10:33:47 ---280 x=x
281 y=y
--- Termina citazione ---
Questi sono no-op, devi salvare il valore di prima della modifica.
input:
l ho avevo provato anche questo, ma non va, ho memorizzato le variabili x e y prima della collisione in spx ed spy . e poi li ho richiamate con la sobrutina ma non va, qualcosa mi sfugge
questo e la porzione di codice che avevo provato prima .. avevo provato anche un altra opzione simile a questa , ma funziona perfettamente soltanto in un verso, delle quattro direzioni.
c'e qualcosa che mi sfugge che non riesco a capire cosa, comunque grazie del consiglio
40 POKEV+0,x :REM coordinate x sprite 0
42 POKEV+1,y :REM coordinate Y sprite 0
44 POKEV+4,xx :REM coordinate Y sprite 2
46 POKEV+5,yy :REM coordinate Y sprite 2
49 spx=x :REM posizione x prima della collisione
50 spy=y :REM posizione y prima della collisione
53 REM PUNTEGGIO
54 print "{home}",t,b Rem per un test collisione e punteggio
55 B=peek(v+30)
59 REM CONTROLLO MOVIMENTO
69 geta$: ifa$=" " then 69
71 if a$=chr$(157) then x=x-5 :REM SINISTRA
80 if a$=CHR$(29 ) then x=x+5 : rem DESTA IDEM
86 if a$=chr$(17) then y=y+5 : REM GIU IDEM
95 if a$=CHR$(145) then y=Y-5 :REM SU IDEM
150 REM conserva il valore letto in B
157 print x
162 if B=5 then gosub 200 :REM
165 goto 40
200 print "collisione{home}"
250 REM POSIZIONI DELLO SPRITE 0 PRIMA DELLA COLLISIONE
280 x=spx
281 y=spy
297 t=t+1
300 return
0scur0:
--- Citazione da: input - 09 Maggio 2021, 12:24:34 --- c'e qualcosa che mi sfugge che non riesco a capire cosa, comunque grazie del consiglio
--- Termina citazione ---
Ok, un altro suggerimento da vecchio. :maximo:
Prendi un foglio di carta e prova ad eseguire il programma passo-passo come se tu fossi la CPU, scrivendo lo stato iniziale delle variabili e dei registri e come questo cambia dopo ogni istruzione.
Lo so, è noioso e faticoso ma per programmini così semplici si può fare ed è il miglior metodo che io conosca per imparare a pensare algoritmicamente.
Buon lavoro!
P.S.: si chiama "subroutine", né "sobrutina" né "ruotina".
eregil:
--- Citazione da: input - 09 Maggio 2021, 12:24:34 ---49 spx=x :REM posizione x prima della collisione
50 spy=y :REM posizione y prima della collisione
--- Termina citazione ---
Ricorda che per il C64 le variabili si distinguono solo in base ai primi due caratteri: spx e spy sono entrambe la stessa variabile (la variabile sp). Queste due righe in quest'ordine hanno dunque l'effetto di sp=y.
input:
l avevo letto neanche una settimana fa, nonostante lo sapessi,
non ci sarei mai arrivato, perche devo fare molta pratica ed esperienza ancora.
comunque adesso gli sprite si attaccano correttamente, ma non si spostano piu, sono come incollati, gia e qualcosa .
adesso povero a trovare la soluzione per poterli spostare . Di nuovo grazie a voi che mi sostenete
Navigazione
[0] Indice dei post
Vai alla versione completa