- Interessanter Beitrag
Hallo Leute,
wollte euch mal ein kleines Basicprogramm von mir vorstellen.
Mit dem Print-Befehl kann man Speicherzellen belegen. Das
geht schneller, als mit Poke. Ich habe mich gefragt, ob man
auf diesem Wege auch eine schnelle Spritebewegung hinbekommt.
Und hier das Ergebnis:
Code
10 goto140
20 ifk>athen50
30 ifrf=1thena$=a$+e1$:rf=.
40 goto60
50 ifrf=.thena$=a$+e2$:rf=1
60 k=kanda:ifk-uthena$=a$+chr$(l(k)):return
70 a$=a$+q$:return
80 u=1:s=.:a=.:b=n-1:e=v+18:f=128:tp=198:w=1:poke648,v/256:poketp,.
90 forj=.to5:k=sgn(b-a)*(s+1)
100 fori=atobstepk:waite,f:printp$(i):next:ifpeek(tp)thenreturn
110 ifu<tthenu=u+u+1:pokel,u
120 next:w=1-w:ifwthenz=a:a=b:b=z:goto90
130 s=s+1and3:goto90
140 v=53248:c$=chr$(147):gosub480:print" bitte warten ..."
150 dim a$,k,a,rf,x,y,xl,s,l,e,f,q,b,b1,b2,pi
160 vr=1024:a=127:b=159:t=255:u=34:pi=4*atn(1):fr=55296:dim l(a),h(7)
170 u$=chr$(145):e1$=chr$(146):e2$=chr$(18):h$=chr$(19)
180 fori=.to7:h(i)=2^i:readk:pokev+39+i,k:poke51192+i,iand1:next
190 fori=32to191:ifi<=aori>bthenprinth$;chr$(i):l(peek(vr))=i
200 next:b$=chr$(157):q$=chr$(u)+chr$(u)+b$:printh$" "
210 xm=172.5:ym=140.5:r1=140:r2=80:n=int(pi*r1):f=2*pi/n:print:print:printn
220 dim p$(n-1),x%(n-1),y%(n-1)
230 fori=.ton-1:k=f*i:printi;u$
240 x%(i)=xm+r1*sin(k+k)
250 y%(i)=ym-r2*cos(k)
260 next:e=41:f=95:print
270 fori=.ton-1:printi;u$
280 rf=.:s=.:z=i:l=i:a$=h$
290 forj=.to7:x=x%(z):s=s-h(j)*(x>t)
300 k=xandt:gosub20
310 k=y%(l):gosub20
320 z=z+e:ifz>=nthenz=z-n
330 l=l+f:ifl>=nthenl=l-n
340 next
350 k=s:gosub20
360 ifright$(a$,1)=b$thena$=left$(a$,len(a$)-2)
370 p$(i)=a$
380 next
390 gosub490
400 p=49152:s1=p:w=1105:forj=.to1:reada$
410 fori=1tolen(a$)step2:pokep,asc(mid$(a$,i))+16*asc(mid$(a$,i+1))-w
420 p=p+1:next:next:a$="":pokev+32,.
430 p=49152+64:fory=ptop+3*20step3:forx=y+2toystep-1:b=peek(s1):s=.
440 fori=.to3:s=s*4+(band3):b=int(b/4):next:pokex,s:s1=s1+1:next:next
450 pokev+37,9:pokev+38,13:pokev+28,t:pokev+27,222:l=v+21:pokel,1
460 gosub80
470 pokeq,peek(q)or3:poke648,4:gosub480:poketp,.:list:end
480 printchr$(8)chr$(5)c$:sys58784:pokev+33,.:pokev+32,11:return
490 vr=50176:zs=512e2:c=40:poke648,vr/256
500 f=0or8:poke646,f:pokev+33,f:printc$:pokev+33,6:pokev+34,0:pokev+35,12
510 q=56576:pokeq,peek(q)andnot3
520 pokev+22,24:pokev+24,16*1+1*2
530 w=17:fori=.to7:readx:pokezs+i,t-x
540 pokezs+32*8+i,w:w=85-w:next
550 fori=vr+12*ctovr+999:pokei,.:next:b1=2:b2=25:f=32
560 forx1=20to36step4
570 fory=.to1:forx=.to1:pokevr+x1+x+c*(20+y),f:next:next:next
580 fory=vr+12*ctovr+22*cstepc:forx=y+b1toy+b2:pokex,f:next
590 b1=b1+1:b2=b2-1:next
600 a$="basic":b1=zs+8:poke56334,.
610 fori=1tolen(a$):b2=v+8*(asc(mid$(a$,i))and63)
620 poke1,51:forj=b2toj+7:pokeb1,peek(j):b1=b1+1:next:poke1,55
630 pokevr+c+i,i:pokefr+c+i,1:next:poke56334,1
640 return
650 rem spritefarben
660 data 2,4,6,7,8,14,12,0
670 rem zeichen
680 data 69,69,69,0,84,84,84,0
690 rem spritedef.
700 data cakkaiaakkakaakcapaalaahaadkppcalkdpkakkapkakkapkakkflcekkajcbkk
710 data aieekgakfbigakfeakakebckaicfciaibbbiaifefeaefafeaebabfafaaafaf
720 :
750 rem 2021 by neptun
760 :
Alles anzeigen
Es funktioniert, bedarf aber einiger Vorbereitung. Zum Beenden
eine Taste drücken und kurz warten.
Gruß,
Neptun