[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Raycasting 3D demo disk
heuser.marcus@freenet.de wrote:
> This is great stuff! Pretty fast and "clean" texturing.
> The textures looks good, too!
>
HERE IS A TEXTURE EDITOR FOR HIS DEMO :-)
out of emu.. s)ave then type DEMO.TEX to update
the demo texture file
the assembly at the end is to make high nibble match
low nibble..
10 GR
80 GOSUB 12000
90 GOSUB 10000
100 VTAB 21: PRINT "TEXTURE# = ";T + 1;" ";
110 VTAB 21: HTAB 16: PRINT "COLOR= ";C;" A=+ Z=-"
8000 GET A$
8010 IF A$ = "." THEN T = T + 1: GOSUB 13000
8020 IF A$ = "," THEN T = T - 1: GOSUB 13000
8040 VTAB 21: PRINT "TEXTURE# = ";T + 1;" ";
8050 IF A$ = "Q" THEN STOP
8060 IF A$ = "J" THEN JX = JX - 1
8070 IF A$ = "L" THEN JX = JX + 1
8080 IF A$ = "I" THEN JY = JY - 1
8090 IF A$ = "K" THEN JY = JY + 1
8091 IF JY > 16 THEN JY = 16
8092 IF JX > 16 THEN JX = 16
8093 IF JX < 1 THEN JX = 1
8094 IF JY < 1 THEN JY = 1
8100 IF JY < > OY OR JX < > OX THEN COLOR= OC: PLOT OX,OY: COLOR=
C:OY = JY:OX = JX:OC = SCRN( JX,JY): PLOT JX,JY
8101 IF A$ = "Z" OR A$ = "A" THEN GOSUB 20000
8110 IF A$ = " " THEN GOSUB 30000
8120 COLOR= C
8130 VTAB 21: HTAB 16: PRINT "COLOR= ";C
8150 D = 16384 + (T * 256) + ((JX - 1) * 16) + (JY - 1)
8170 IF A$ = "S" THEN VTAB 22: INPUT "NAME ";A$: PRINT CHR$
(4);"BSAVE ";A$;",A$4000,L4096": GOTO 100
9000 GOTO 8000
10000 REM
10010 T = 0: REM WHICH TEXTURE
10020 PRINT CHR$ (4);"BLOAD DEMO.TEX,A$4000"
10021 PRINT CHR$ (4);"BLOAD ROL,A$300"
10025 C = 5
10030 JX = 8:JY = 8
10040 OX = JX:OY = JY:OC = SCRN( OX,OY)
10045 COLOR= C: PLOT JX,JY
10050 HOME
10055 VTAB 22: PRINT " I MOVE <SPC>=PLOT <=NEXT TEXTURE"
10056 VTAB 23: PRINT "JKL S=AVE Q=IT >=PREV TEXTURE"
10060 COLOR= 1: HLIN 0,17 AT 17
10070 HLIN 0,17 AT 0
10080 VLIN 0,17 AT 0
10090 VLIN 0,17 AT 17
10100 RETURN
12000 IF T < 0 THEN T = 0
12005 IF T > 15 THEN T = 15
12009 FOR Y = 1 TO 16
12010 FOR X = 1 TO 16
12020 B = 16384 + (T * 256) + ((Y - 1) * 16) + (X - 1)
12030 A = PEEK (B)
12040 COLOR= A
12050 PLOT Y,X
12060 NEXT X
12070 NEXT Y
12080 RETURN
13000 GOSUB 12000
13010 OC = SCRN( JX,JY)
13020 COLOR= C: PLOT JX,JY
13030 RETURN
20000 REM COLOR CHANGE
20010 IF A$ = "Z" THEN C = C - 1
20020 IF A$ = "A" THEN C = C + 1
20030 IF C < 0 THEN C = 0
20040 IF C > 15 THEN C = 15
20050 COLOR= C
20060 VTAB 21: HTAB 16: PRINT "COLOR= ";C;" ";
20070 PLOT 22,39
20080 PLOT JX,JY
20090 RETURN
30000 REM POKE PIXEL
30010 D = 16384 + (T * 256) + ((JX - 1) * 16) + (JY - 1)
30020 POKE 768,C: CALL 769:
30030 PIX = PEEK (768)
30040 POKE D,PIX
30050 OC = C
30060 RETURN
ooh yeah and some assembly...
type call -151
*
type ! (or F666g on older apples)
!
!301: lda 300
! rol
! rol
! rol
! rol
! ora 300
! sta 300
! rts
! <return key>
*
<press control C><return>
]
type:
bsave rol,a$300,L17
Rich