Commodore 64 > Aiuto & Domande

spostare un sprite in basic con il comando getA$

(1/3) > >>

input:
salve ragazzi, qualcuno puo spiegarmi  i tasti assegnati per lo spostamento dello sprite non funzionano: volevo solo far spostare lo sprire in direzione orizzontale grazie, questo e il listato:
10 V=53248: x=100           
11 POKEV+21,1                 
12 POKE2040,13
20 FOR N=0 TO 62: READ Q: POKE832+N,Q: NEXT
30 pokev+0,X
40 pokev+1,X
50 geta$: IFA$="" THEN 50
55 IF A$="D" x=x+1
58 IF A$="S" x=x-1
60  GOTO 30
200 data 0,127,0,1,255,192,3,255,224,3,231,224
210 data 7,217,240,7,223,240,7,217,240,3,231,224
220 data 3,255,224,3,255,224,2,255,160,1,127,64
230 data 1,62,64,0,15,128,0,156,128,0,73,0,0,73,0
240 data 0,62,0,0,62,0,0,62,0,0,28,0 :dho:

input:
Ragazzi grazie comunque, sono riuscito a risolvere il problema , nel listato che ho postato prima avevo dimenticato di inserire i then nelle righe delle coordinate x e y , ma non per questo non funzionava.
la causa è  che  il comando get con gli sprite le lettere maiuscole non hanno nessun effetto, ho causalmente inserire quelle minuscole e tutto funziona,   non so il perche. se qualcuno sa spiegarmelo le sarei molto grato . posto il listato funzionante
10 V=53248: x=100           
11 POKEV+21,1                 
12 POKE2040,13
20 FOR N=0 TO 62: readQ: POKE832+n,q: NEXT
30 pokev+0,x
40 pokev+1,100
50 GETA$: IFA$="" THEN 50
52 if a$="s" then x=x-1
54 if a$="d"then x=x+1
55 poke 650,128
60 goto 30

200 data 0,127,0,1,255,192,3,255,224,3,231,224
210 data 7,217,240,7,223,240,7,217,240,3,231,224
220 data 3,255,224,3,255,224,2,255,160,1,127,64
230 data 1,62,64,0,15,128,0,156,128,0,73,0,0,73,0
240 data 0,62,0,0,62,0,0,62,0,0,28,0

0scur0:
Non li ho provati ma ad occhio entrambi i programmi dovrebbero funzionare allo scopo.
Però, vedo che nel secondo hai attivato l'autorepeat con POKE 650,128; in questa modalità, viene sparato nel keybuffer il carattere del tasto premuto finché quel tasto non viene rilasciato, mentre nel primo caso no. L'effetto a video è che nel secondo programma lo sprite si muove fino al rilascio del tasto S o D.
Nel primo programma invece, il buffer viene riempito solo alla prima pressione del tasto, per cui lo sprite si muove di un solo pixel ad ogni pressione del tasto S o D (ecco perché ti sembra che il primo programma non funzioni).

input:
hai ragione, ho riprovato è tutto ok  :ciauz:

input:
ciao a tutti. eccomi di nuovo qua ragazzi,  da 2 giorni che sto provando a far muovere il mio sprite oltre la  posizione 256, con il ciclo riesco a farlo, ma con il controllo dei tasti,  non ne vengo a capo,  qualcuno puo delucidarmi, ho darmi la soluzione grazie tantissimo questo  è  il mio programma che non riesco a far funziona. grazie anticipatamente

10 V=53248: x=200         
11 POKEV+21,1                 
12 POKE2040,13
20 FOR N=0 TO 62: readQ: POKE832+n,q: NEXT
30 pokev+0,x
40 pokev+1,100
50 GETA$: IFA$="" THEN 50
52 if a$="s" then x=x-1
54 if a$="d"then x=x+1
55 if X=>255 then goto 80
56  poke 650,128
58 goto 30
80 pokev+16,0     
90 pokev+0,x
102 pokev+16,1
110 goto 30
130 data 0,127,0,1,255,192,3,255,224,3,231,224
140 data 7,217,240,7,223,240,7,217,240,3,231,224 :dho:
150 data 3,255,224,3,255,224,2,255,160,1,127,64
160 data 1,62,64,0,15,128,0,156,128,0,73,0,0,73,0
170 data 0,62,0,0,62,0,0,62,0,0,28,0

Navigazione

[0] Indice dei post

[#] Pagina successiva

Vai alla versione completa