Autore Topic: spostare un sprite in basic con il comando getA$  (Letto 14288 volte)

input

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
spostare un sprite in basic con il comando getA$
« il: 06 Marzo 2021, 16:25:36 »
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

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
spostare un sprite in basic con il comando getA$
« Risposta #1 il: 06 Marzo 2021, 16:25:36 »
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

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #2 il: 07 Marzo 2021, 00:36:57 »
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

input

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #3 il: 07 Marzo 2021, 00:36:57 »
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

  • Neo-iscritto
  • *
  • Post: 37
  • Gioco Preferito: -
Re:spostare un sprite in basic con il comando getA$
« Risposta #4 il: 08 Marzo 2021, 12:18:37 »
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).

0scur0

  • Neo-iscritto
  • *
  • Post: 37
  • Gioco Preferito: -
Re:spostare un sprite in basic con il comando getA$
« Risposta #5 il: 08 Marzo 2021, 12:18:37 »
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

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #6 il: 08 Marzo 2021, 14:04:21 »
hai ragione, ho riprovato è tutto ok  :ciauz:

input

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #7 il: 08 Marzo 2021, 14:04:21 »
hai ragione, ho riprovato è tutto ok  :ciauz:

input

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #8 il: 08 Marzo 2021, 14:13:27 »
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

input

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #9 il: 08 Marzo 2021, 14:13:27 »
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

eregil

  • Administrator
  • Utente
  • *****
  • Post: 714
  • Gioco Preferito: Impossible Mission
Re:spostare un sprite in basic con il comando getA$
« Risposta #10 il: 08 Marzo 2021, 15:59:30 »
Hai già un thread e non cambi argomento, thread unito.

Sono sbagliati l'ordine delle istruzioni e la destinazione del goto alla linea 55, inoltre manca una POKE: segui bene il flusso di esecuzione e te ne accorgerai.
Non rispondo a richieste private, di qualunque genere esse siano.
Per domande tecniche leggete le FAQ e usate l'apposito forum.
Per questioni amministrative contattate lo staff tramite il form Contatti sul sito.

eregil

  • Administrator
  • Utente
  • *****
  • Post: 714
  • Gioco Preferito: Impossible Mission
Re:spostare un sprite in basic con il comando getA$
« Risposta #11 il: 08 Marzo 2021, 15:59:30 »
Hai già un thread e non cambi argomento, thread unito.

Sono sbagliati l'ordine delle istruzioni e la destinazione del goto alla linea 55, inoltre manca una POKE: segui bene il flusso di esecuzione e te ne accorgerai.
Non rispondo a richieste private, di qualunque genere esse siano.
Per domande tecniche leggete le FAQ e usate l'apposito forum.
Per questioni amministrative contattate lo staff tramite il form Contatti sul sito.

input

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #12 il: 08 Marzo 2021, 22:21:49 »
sono riuscito ad andare oltre i 255, cioe raggiungere il bordo destro , ma quando torno indietro  a circa 3/4 di schermo  mi da errore  illegal quantita error in 30 , ho provato di tutto di quello che so , ma non ci riesco,  :facepalm:

input

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #13 il: 08 Marzo 2021, 22:21:49 »
sono riuscito ad andare oltre i 255, cioe raggiungere il bordo destro , ma quando torno indietro  a circa 3/4 di schermo  mi da errore  illegal quantita error in 30 , ho provato di tutto di quello che so , ma non ci riesco,  :facepalm:

input

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #14 il: 08 Marzo 2021, 22:23:24 »
scusa ho dimenticato di inserire le modifiche
questo e il nuovo listato senza i data

1 rem INIZIALIZZAZIONE
10 V=53248: x=21         
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


45 rem GESTIONE TASIERA
46 GETA$: IFA$="" THEN 46
47 if a$="s" then x=x-5
49 if a$="d"then x=x+5
51 if X=>255 then goto 70
53  poke 650,128
55 goto 30
 
57 rem MUOVI OLTRE 255

70 pokev+16,0 :x=0
75 pokev+1,x
85 pokev+16,1
90 goto 45

input

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: arkanoid
Re:spostare un sprite in basic con il comando getA$
« Risposta #15 il: 08 Marzo 2021, 22:23:24 »
scusa ho dimenticato di inserire le modifiche
questo e il nuovo listato senza i data

1 rem INIZIALIZZAZIONE
10 V=53248: x=21         
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


45 rem GESTIONE TASIERA
46 GETA$: IFA$="" THEN 46
47 if a$="s" then x=x-5
49 if a$="d"then x=x+5
51 if X=>255 then goto 70
53  poke 650,128
55 goto 30
 
57 rem MUOVI OLTRE 255

70 pokev+16,0 :x=0
75 pokev+1,x
85 pokev+16,1
90 goto 45