Autore Topic: Piccola Demo In Basic  (Letto 1752 volte)

Cbm

  • Utente
  • **
  • Post: 423
  • Gioco Preferito: Wonderboy
Piccola Demo In Basic
« il: 26 Novembre 2006, 00:37:08 »
Considerato che in questi ultimi giorni il forum langue, in attesa che arrivi Pushover a ravvivare questo ultimo scorcio dell'anno, mi fa piacere condividere qui, visto che ne è venuto fuori qualcosa che mi pare simpatico, direi di "sapore" Vic 20, il risultato dei miei ultimi giorni di passatempo.   

Visto che potrebbe sembrare una incongruenza, faccio un appunto sulla riga 105, dove, vista la lentezza del basic, e la percettibile differenza di velocità ottenibile a seconda di come vengono usate le istruzioni, :idea: ho pensato di sfruttare la cosa a mio favore ottenendo, grazie alle diverse combinazioni di velocità create dall'uso contemporaneo, sia come valore numerico (es. 53280) che come variabile (es. BO=53280), delle locazioni di bordo e sfondo, finalmente la sincronizzazione dei movimenti di questi ultimi proprio come volevo io. N=N infine ha il solo scopo di perdere ancora un'ulteriore frazione di secondo necessaria a rendere del tutto perfetto il ciclo.
Qualche prova, modificando la riga come ritenete opportuno, può comunque chiarire meglio delle parole l'idea.

Codice: [Seleziona]
105 FOR N=N TO 400:POKE BO,11:N=N:POKE SF,11:POKE 53280,0:POKE 53281,0
« Ultima modifica: 21 Gennaio 2015, 22:40:24 da eregil »
C= - Dal 1985! Lunga vita e prosperità.

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Piccola Demo In Basic
« Risposta #1 il: 26 Novembre 2006, 01:19:52 »
Citazione da: "Cbm"
N=N infine ha il solo scopo di perdere ancora un'ulteriore frazione di secondo necessaria a rendere del tutto perfetto il ciclo.
 
Abbiamo 2 concetti di "perfetto" molto diversi :)
Se l'effetto che volevi ottenere era una colorazione piu' uniforme possibile (e non delle bande grigie e nere che vanno su e giu' a casaccio) si puo' fare cosi'
Codice: [Seleziona]
0 bo=53280:sf=53281:rl=53265
...
105 FOR n=nTO400:WAITrl,128:POKEbo,11:POKEsf,11:WAITrl,128:POKEbo,0:POKEsf,0
anche se ovviamente da basic e' tutto troppo lento per ottenere un flash consistente a tutto schermo...
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

Roberto

  • Administrator
  • Utente
  • *****
  • Post: 2415
    • https://ready64.org
  • Gioco Preferito: Impossible Mission
Piccola Demo In Basic
« Risposta #2 il: 26 Novembre 2006, 11:29:26 »
 mi garba, fa molto oldskool, mi ricorda giochini come Star Trek della Interceptor Software, il Pianeta dell'Incubo, The Faboulous Wanda ecc...
Effettivamente il comando WAIT calza a pennello per effettuare una temporizzazione.
Per collaborare, segnalare un errore (o qualsiasi altra comunicazione importante) utilizzare la pagina dei contatti:
https://ready64.org/informazioni/contatti.php

zimox

  • Utente
  • **
  • Post: 171
  • Gioco Preferito: trolls & tribulations
Piccola Demo In Basic
« Risposta #3 il: 26 Novembre 2006, 17:26:39 »
 sono palesemente OT
c'e' speranza a chi usa FF o Opera di poter scaricare questo file?
per principio non uso ie  :P  
No c64?, no party!

Cbm

  • Utente
  • **
  • Post: 423
  • Gioco Preferito: Wonderboy
Piccola Demo In Basic
« Risposta #4 il: 26 Novembre 2006, 18:38:51 »
Citazione da: "zimox"
c'e' speranza a chi usa FF o Opera di poter scaricare questo file?
Non è la stessa cosa che scaricare il t64 bello pronto, ma il risultato finale è lo stesso.  :) Avevo omesso di riportarlo prima perchè non volevo raddoppiare il peso del messaggio. Così se vuoi puoi anche, senza doverle battere, sostituire in un attimo le righe con quelle di Ian per avere un risultato diverso.

Codice: [Seleziona]
start tok64 STAR_TRIK&TRAK.prg
0 bo=53280:sf=53281
1 PRINT CHR$(147) CHR$(14):POKE bo,0:POKE sf,0:GOSUB 800
2 PRINT SPC(44) "nave NGC=64" SPC(146) "5 secondi per velocita' curvatura!"
3 FOR t=1 TO 1500:NEXT t:PRINT CHR$(147) CHR$(142)
4 POKE bo,0:POKE sf,0
5 FOR n=n TO 470:a=RND(1)*999:POKE 1024+a,46:POKE55296+a,a/4:PRINT
6 IF n=150 THEN 100
7 NEXT n
8 GOTO 830
100 POKE w,129
102 POKE hf,255:FOR t=1 TO 60:NEXT t:POKE bo,1:POKE sf,1:POKE hf,1
103 IF n>400 THEN POKE v,0:GOTO 4
105 FOR n=n TO 400:POKE bo,11:n=n:POKE sf,11:POKE 53280,0:POKE 53281,0
110 a=RND(1)*999:POKE 1024+a,66:POKE 55296+a,a/4:NEXT n:GOTO 102
800 m=53248:POKE m+21,4:POKE 2042,13
810 FOR n=0 TO 62:READ a:POKE 832+n,a:NEXT n
820 POKE m+23,4:POKE m+29,4:POKE m+4,160
825 y1=140
830 FOR y=y TO y1:POKE m+5,y:NEXT y
831 IF y=141 THEN y=142:y1=255:GOTO 1000
835 PRINT "cbm per ready 64 - 2006":END
840 DATA 3,128,224,3,128,224,3,148,224,3,156,224,3,255,224,3,255,224,3,156,224
841 DATA 3,156,224,1,28,64,0,28,0,0,127,0,0,255,128,1,255,192,3,227,224
842 DATA 3,221,224,3,213,224,3,221,224,3,227,224,1,255,192,0,255,128,0,127,0
1000 v=54296:w=54276:a=54277:hf=54273:s=54278
1010 POKE v,15:POKE w,33:POKE a,96
1050 READ h:READ d
1055 IF h=-1 THEN RETURN
1060 POKE hf,h
1070 FOR x=d-50 TO d-20:POKE s,136:NEXT x
1080 FOR t=1 TO d:NEXT t:POKE hf,0:POKE w,0
1090 GOTO 1010
1110 DATA 0,20,52,80,58,40,70,300
1115 DATA 0,0,66,100,52,20,44,100,58,40,78,300,0,0
1120 DATA 78,40,98,750,0,9,165,150,234,300,98,200,-1,0
stop tok64
(bastext 1.04)

Per Ian: grazie, avevo provato poi wait, il risultato era fin troppo perfetto fino a sembrarmi piatto, quindi poi ho optato per le bande in movimento perchè, per come si muovono in modo coordinato tra loro e a bassa velocità, sembra che lo spazio faccia resistenza, come fosse un campo di forza da superare :)  
C= - Dal 1985! Lunga vita e prosperità.

Roberto

  • Administrator
  • Utente
  • *****
  • Post: 2415
    • https://ready64.org
  • Gioco Preferito: Impossible Mission
Piccola Demo In Basic
« Risposta #5 il: 26 Novembre 2006, 19:14:54 »
 
Citazione da: "zimox"
sono palesemente OT
c'e' speranza a chi usa FF o Opera di poter scaricare questo file?
per principio non uso ie  :P
tasto destro -> salva con nome -> invece di salvare subito il file index.php lo rinomini in minidemo.zip e salvi
Per collaborare, segnalare un errore (o qualsiasi altra comunicazione importante) utilizzare la pagina dei contatti:
https://ready64.org/informazioni/contatti.php