Jump to content

Photo

TI Basic game nearly finished: Viper squadron


45 replies to this topic

#26 tibasic OFFLINE  

tibasic

    Space Invader

  • Topic Starter
  • 45 posts

Posted Sun Aug 27, 2017 7:24 AM

Glad you managed to figure it out! :)



#27 ralphb OFFLINE  

ralphb

    Dragonstomper

  • 548 posts
  • Location:Germany

Posted Thu Aug 31, 2017 5:46 AM

The file is in TIFILES format. You can convert it to V9T9 format using Ti99Dir.

 

Just for completeness, you can also use xdm99.py, like this:

.

xdm99.py -X sssd viper.dsk -a VIPER -t -9

.

This creates a new SSSD disk and puts VIPER, which is in short TIFILES format, on it.



#28 tibasic OFFLINE  

tibasic

    Space Invader

  • Topic Starter
  • 45 posts

Posted Mon Nov 27, 2017 6:02 AM

Decided to develop the game a bit more ... the following features have been added.

 

1. Original music at the beginning that is a little inspired by music found in C64 games

2. A fancy instructions screen

3. Increasing difficulty with level (The Cylon firing becomes more rapid)

4. The positioning of the sectors on the map is now random.

 

The newest file is VS2211.zip.

 

I plan to add a few more things like turbo boost button to jump from sector to sector a bit quicker to speed up the game a bit.

Attached Files



#29 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 4,073 posts
  • Location:Denmark

Posted Mon Nov 27, 2017 6:35 AM

Only seconds into play I experienced the ship turning by itself?

Also generally getting stuck as in ESDX does nothing?

:|

#30 tibasic OFFLINE  

tibasic

    Space Invader

  • Topic Starter
  • 45 posts

Posted Mon Nov 27, 2017 6:52 AM

Hi Sometimes99er,

 

Sorry to hear that you're having problems with the game.

 

The ship is programmed to turn by itself when it reaches the end of the map. That is to prevent it coming off the map.

 

Actually the keys are 'esdx' not 'ESDX'. Maybe I need to make that clear in the instructions.

 

Thanks for trying it.

 

tibasic



#31 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 4,073 posts
  • Location:Denmark

Posted Mon Nov 27, 2017 8:31 AM

The ship is programmed to turn by itself when it reaches the end of the map. That is to prevent it coming off the map.


Okay, that's probably what's happening then.
 

Actually the keys are 'esdx' not 'ESDX'. Maybe I need to make that clear in the instructions.


That's what I've been using, - and Classic99. I'll give it another try soon.

:)

#32 tibasic OFFLINE  

tibasic

    Space Invader

  • Topic Starter
  • 45 posts

Posted Mon Nov 27, 2017 2:57 PM

Also the response of the ship when pressing a key is somewhat sluggish ... setting CPU tuning to 200% in Classic99 might help.



#33 --- Ω --- OFFLINE  

--- Ω ---

    Kwisatz Haderach

  • 11,102 posts
  • Location:Many Places

Posted Mon Nov 27, 2017 3:06 PM

When it's all done, do you have any plans to compile for EA/5 or cartridge format?



#34 palmheads OFFLINE  

palmheads

    Chopper Commander

  • 191 posts
  • Location:Christchurch, New Zealand

Posted Mon Nov 27, 2017 4:38 PM

Think its really cool showing what you can do with TI-BASIC.

 

Was looking at one of the old 99ner mags, and its got an article about using TI-BASIC with mini memory module.

 

ftp://whtech.com/magazines/99er/99er8309.pdf

 

Its actually a light racer game using PEEKV, POKEV to get faster responses from the VDP.

 

Totally breaks the console only concept, but if you wanted to keep the TI-BASIC theme could be quite neat using the TI-BASIC extensions that the mini memory module gave.

 

The article is called Byte Lightning. The actual game is on this attached disk

OLD DSK1.MMLIGHTRCR
RUN

Attached Files


Edited by palmheads, Mon Nov 27, 2017 4:39 PM.


#35 tibasic OFFLINE  

tibasic

    Space Invader

  • Topic Starter
  • 45 posts

Posted Tue Nov 28, 2017 8:15 AM

 

When it's all done, do you have any plans to compile for EA/5 or cartridge format?

I don't have plans to compile the game really. However I could compile it when it is finished anyway as it does need a bit of speeding up.

 

 

Think its really cool showing what you can do with TI-BASIC.

Thanks it is a lot of fun. That is interesting about PEEKV and POKEV. There is a lot I don't know about the TI ...



#36 tibasic OFFLINE  

tibasic

    Space Invader

  • Topic Starter
  • 45 posts

Posted Wed Jan 24, 2018 5:30 AM

ok I think I have done as much as I can with the game for the time being ...

 

The Viper now moves more quickly between sectors. It can be slowed down if necessary to remain in a sector long enough to fight the Cylons. Pressing T toggles the speed between slow and fast. The Viper changes colour to indicate a change in speed.

 

I would like to add an indication of the level reached but don't have room in the program at the moment. I may reduce the data for the music a little to make more room.

 

Then I will try and compile the game to give it a bit more oomph.

Attached Files



#37 eebuckeye ONLINE  

eebuckeye

    Stargunner

  • 1,002 posts

Posted Wed Jan 24, 2018 7:01 PM

I can't get it to work with js99.net.  Is this the right type of disk file for that emulator?



#38 tibasic OFFLINE  

tibasic

    Space Invader

  • Topic Starter
  • 45 posts

Posted Thu Jan 25, 2018 6:48 AM

The file is for Classic99. I don't know how to load basic programs with js99. 

 

In the meantime, while we find out you could copy this text below and paste it (CTRL-V) into js99. It takes about 5 minutes to "load" though when I tested pasting it into js99.

 

Also attached the program as a txt file.

100 REM  VIPER SQUADRON 
110 REM  BY TIBASIC 
120 REM     
130 CALL CLEAR
140 CALL SCREEN(12)
150 PRINT " V I P E R  S Q U A D R O N"::::::::::::
160 PRINT "   PRESS ANY KEY FOR GAME"::
170 PRINT "    OR WAIT FOR BRIEFING "
180 GOSUB 3960
190 IF GAME=1 THEN 210
200 GOSUB 4130
210 PRINT :::::::::::::::::::::::"PREPARING THE GAME ..."
220 RANDOMIZE
230 FOR I=0 TO 3
240 RESTORE
250 FOR J=0 TO 5
260 READ A$
270 CALL CHAR(96+J+I*8,A$)
280 NEXT J
290 NEXT I
300 FOR I=0 TO 3
310 RESTORE 3610
320 FOR J=0 TO 5
330 READ A$
340 CALL CHAR(128+J+I*8,A$)
350 NEXT J
360 NEXT I
370 RESTORE 3630
380 FOR I=64 TO 67
390 READ A$
400 CALL CHAR(I,A$)
410 NEXT I
420 RESTORE 3650
430 FOR I=40 TO 41
440 READ A$
450 CALL CHAR(I,A$)
460 CALL CHAR(I+29,A$)
470 NEXT I
480 RESTORE 3660
490 FOR I=1 TO 12
500 READ A,A$
510 CALL CHAR(A,A$)
520 NEXT I
530 XPOS=50
540 CY4=4
550 SHIPS=5
560 LVL=1
570 SCN=2
580 FG=16
590 BG=2
600 X=1
610 Y=0
620 PPL=0
630 TIME=0
640 FLAG=0
650 SHOOT=0
660 NTR=0
670 FRG=16
680 OLDFRG=FRG
690 SPD=10
700 CALL COLOR(1,16,1)
710 CALL COLOR(2,5,1)
720 CALL COLOR(3,16,1)
730 CALL COLOR(5,16,1)
740 CALL COLOR(4,16,1)
750 CALL COLOR(6,2,3)
760 FOR I=9 TO 16
770 CALL COLOR(I,2,1)
780 NEXT I
790 CALL CLEAR
800 CALL HCHAR(20,1,72,32)
810 CALL HCHAR(22,1,74,32)
820 CALL HCHAR(24,1,73,32)
830 FOR I=1 TO 31 STEP 2
840 CALL HCHAR(21,I,80)
850 CALL HCHAR(21,I+1,88)
860 CALL HCHAR(23,I,80)
870 CALL HCHAR(23,I+1,88)
880 NEXT I
890 GOSUB 4580
900 GOSUB 4670
910 GOSUB 3700
920 CO=1
930 XX(1)=16
940 YY(1)=4
950 CC(1)=128
960 XX(2)=13
970 YY(2)=4
980 CC(2)=96
990 FOR M=1 TO 2
1000 J=0
1010 K=0
1020 I=0
1030 L=0
1040 FOR H=1 TO 24
1050 CALL HCHAR(YY(M)+I,XX(M)+L,CC(M)+J+K)
1060 J=J+1
1070 L=L+1
1080 IF (J=3)+(J=6)THEN 1090 ELSE 1110
1090 I=I+1
1100 L=0
1110 IF J>5 THEN 1120 ELSE 1140
1120 J=0
1130 K=K+8
1140 NEXT H
1150 NEXT M
1160 FOR I=9 TO 16
1170 CALL COLOR(I,1,1)
1180 NEXT I
1190 CALL COLOR(13,16,1)
1200 CALL HCHAR(1,24,63,5)
1210 CALL HCHAR(1,4,48,5)
1220 CALL SCREEN(SCN)
1230 CALL KEY(0,K,S)
1240 IF S=0 THEN 2200
1250 IF K=84 THEN 1260 ELSE 1340
1260 IF SPD<>10 THEN 1310
1270 SPD=2
1280 OLDFRG=FRG
1290 FRG=SCN+1
1300 GOTO 1330
1310 SPD=10
1320 FRG=OLDFRG
1330 CALL COLOR(9+Y+X*4,FRG,1)
1340 IF (K=83)*(X>0)THEN 1350 ELSE 1370
1350 X=X-1
1360 CALL COLOR(13+Y,1,1)
1370 IF (K=68)*(X<1)THEN 1380 ELSE 1400
1380 X=X+1
1390 CALL COLOR(9+Y,1,1)
1400 IF (K=69)*(Y>0)THEN 1410 ELSE 1430
1410 Y=Y-1
1420 CALL COLOR(9+Y+1+X*4,1,1)
1430 IF (K=88)*(Y<3)THEN 1440 ELSE 1460
1440 Y=Y+1
1450 CALL COLOR(9+Y-1+X*4,1,1)
1460 CALL COLOR(9+Y+X*4,FRG,1)
1470 IF K<>32 THEN 2200
1480 IF GC<>59 THEN 1560
1490 PPL=PPL+10
1500 CALL SOUND(200,400,5)
1510 CALL SOUND(200,600,10)
1520 GOSUB 3900
1530 CALL HCHAR(1,XP,58)
1540 NTR=NTR+1
1550 GOTO 2200
1560 CALL SOUND(150,400,0)
1570 CALL HCHAR(Y*2+5,10+X*9,37,3)
1580 CALL HCHAR(Y*2+5,10+X*9,32,3)
1590 CALL SOUND(150,400,10)
1600 CALL HCHAR(Y*2+5,1+X*28,37,3)
1610 CALL HCHAR(Y*2+5,1+X*28,32,3)
1620 IF GC<>61 THEN 1880
1630 IF X<>0 THEN 1750
1640 CALL GCHAR(Y*2+4,XCYLON1(INT((Y+2)*0.5)),CYG)
1650 IF CYG=32 THEN 1880
1660 CALL VCHAR(Y*2+4,XCYLON1(INT((Y+2)*0.5)),62,2)
1670 CALL SOUND(200,-7,10)
1680 CALL SOUND(200,-7,0)
1690 CALL SOUND(200,-7,10)
1700 CY4=CY4-1
1710 PPL=PPL+1
1720 CALL VCHAR(Y*2+4,XCYLON1(INT((Y+2)*0.5)),32,2)
1730 GOSUB 3900
1740 GOTO 1850
1750 CALL GCHAR(Y*2+4,XCYLON2(INT((Y+2)*0.5)),CYG)
1760 IF CYG=32 THEN 1880
1770 CALL VCHAR(Y*2+4,XCYLON2(INT((Y+2)*0.5)),62,2)
1780 CALL SOUND(200,-7,10)
1790 CALL SOUND(200,-7,0)
1800 CALL SOUND(200,-7,10)
1810 CY4=CY4-1
1820 PPL=PPL+1
1830 CALL VCHAR(Y*2+4,XCYLON2(INT((Y+2)*0.5)),32,2)
1840 GOSUB 3900
1850 IF CYG<>69 THEN 1880
1860 SHOOT=0
1870 TIME=0
1880 IF CY4<>0 THEN 2200
1890 PPL=PPL+10
1900 CALL SOUND(200,400,5)
1910 CALL SOUND(200,600,10)
1920 CYT=1
1930 CY4=4
1940 GOSUB 3900
1950 NTR=NTR+1
1960 IF NTR<>5 THEN 2190
1970 GOSUB 4580
1980 GOSUB 4670
1990 LVL=LVL+1
2000 IF SCN<>2 THEN 2040
2010 SCN=12
2020 FRG=2
2030 GOTO 2060
2040 SCN=2
2050 FRG=16
2060 SPD=10
2070 CALL SCREEN(SCN)
2080 CALL COLOR(1,FRG,1)
2090 CALL COLOR(3,FRG,1)
2100 CALL COLOR(4,FRG,1)
2110 CALL COLOR(5,FRG,1)
2120 FOR I=9 TO 16
2130 CALL COLOR(I,1,1)
2140 NEXT I
2150 CALL COLOR(9+Y+X*4,FRG,1)
2160 CYT=1
2170 NTR=0
2180 GOTO 2200
2190 GOSUB 4660
2200 IF X=0 THEN 2230
2210 ON CO GOSUB 3270,3300,3330,3360
2220 GOTO 2240
2230 ON CO GOSUB 3360,3330,3300,3270
2240 CO=CO+1
2250 IF CO<>5 THEN 2270
2260 CO=1
2270 XP=XPOS/10+11
2280 CALL GCHAR(1,XP,GC)
2290 IF GC=32 THEN 2300 ELSE 2370
2300 CALL COLOR(9+Y+X*4,1,1)
2310 IF XP>=20 THEN 2320 ELSE 2340
2320 X=0
2330 GOTO 2350
2340 X=1
2350 CALL COLOR(9+Y+X*4,FRG,1)
2360 GOTO 3210
2370 CALL HCHAR(1,XP,60)
2380 CALL HCHAR(1,XP,GC)
2390 IF (GC=59)+(GC=61)THEN 2400 ELSE 2440
2400 FOR I=0 TO 3
2410 CALL HCHAR(21,15+I,64+I)
2420 NEXT I
2430 TRAIN=1
2440 IF (GC=58)*(TRAIN=1)THEN 2450 ELSE 2490
2450 TRAIN=0
2460 CALL HCHAR(21,15,80,4)
2470 CALL HCHAR(21,16,88)
2480 CALL HCHAR(21,18,88)
2490 IF (GC=61)*(FLAG=0)THEN 2500 ELSE 2530
2500 GOSUB 3390
2510 FLAG=1
2520 GOTO 2570
2530 IF (GC<61)*(FLAG=1)THEN 2540 ELSE 2570
2540 GOSUB 3490
2550 SHOOT=0
2560 FLAG=0
2570 IF GC=61 THEN 2580 ELSE 3210
2580 IF (RND>0.1)*(SHOOT=0)THEN 2590 ELSE 2710
2590 SHOOT=1
2600 TIME=0
2610 IF RND>0.5 THEN 2620 ELSE 2670
2620 SIDE=1
2630 CY=INT(RND*1.9)
2640 CALL HCHAR(4+CY*4,XCYLON1(CY+1),69)
2650 CALL HCHAR(4+CY*4+1,XCYLON1(CY+1),70)
2660 GOTO 2710
2670 SIDE=2
2680 CY=INT(RND*1.9)
2690 CALL HCHAR(4+CY*4,XCYLON2(CY+1),69)
2700 CALL HCHAR(4+CY*4+1,XCYLON2(CY+1),70)
2710 IF SHOOT=1 THEN 2720 ELSE 3210
2720 TIME=TIME+1
2730 IF LVL>7 THEN 2740 ELSE 2760
2740 IF TIME=3 THEN 2790 ELSE 3210
2750 GOTO 2770
2760 IF TIME=10-LVL THEN 2790 ELSE 3210
2770 IF CY4<4 THEN 2780 ELSE 2790
2780 CY4=CY4+1
2790 IF (4+CY*4)=(4+Y*2)THEN 2800 ELSE 3130
2800 SHIPS=SHIPS-1
2810 IF SIDE=1 THEN 2820 ELSE 2850
2820 CALL HCHAR(4+CY*4,12,62)
2830 CALL HCHAR(4+CY*4,12,32)
2840 GOTO 2870
2850 CALL HCHAR(4+CY*4,20,62)
2860 CALL HCHAR(4+CY*4,20,32)
2870 FOR I=1 TO 10
2880 IF SCN=2 THEN 2890 ELSE 2910
2890 CALL SCREEN(16)
2900 GOTO 2920
2910 CALL SCREEN(2)
2920 CALL SOUND(100,110,0)
2930 CALL SOUND(100,110,10)
2940 CALL SCREEN(SCN)
2950 NEXT I
2960 CALL HCHAR(1,24,32,5)
2970 IF SHIPS=0 THEN 3130
2980 IF SHIPS=-1 THEN 2990 ELSE 3120
2990 FOR I=1 TO 10
3000 IF SCN=2 THEN 3010 ELSE 3030
3010 CALL SCREEN(16)
3020 GOTO 3040
3030 CALL SCREEN(2)
3040 CALL SOUND(100,300,0)
3050 CALL SOUND(100,300,10)
3060 CALL SCREEN(SCN)
3070 NEXT I
3080 GOSUB 3960
3090 CALL KEY(0,K,S)
3100 IF S=0 THEN 3090
3110 GOTO 530
3120 CALL HCHAR(1,24,63,SHIPS)
3130 SHOOT=0
3140 TIME=0
3150 IF SIDE=1 THEN 3160 ELSE 3190
3160 CALL HCHAR(4+CY*4,XCYLON1(CY+1),40)
3170 CALL HCHAR(4+CY*4+1,XCYLON1(CY+1),41)
3180 GOTO 3210
3190 CALL HCHAR(4+CY*4,XCYLON2(CY+1),40)
3200 CALL HCHAR(4+CY*4+1,XCYLON2(CY+1),41)
3210 XPOS=XPOS+(X-0.5)*SPD
3220 CYT=CYT+1
3230 IF CYT=50 THEN 3240 ELSE 3260
3240 CYT=1
3250 GOTO 1950
3260 GOTO 1230
3270 CALL COLOR(7,BG,FG)
3280 CALL COLOR(8,BG,BG)
3290 RETURN
3300 CALL COLOR(7,FG,BG)
3310 CALL COLOR(8,BG,BG)
3320 RETURN
3330 CALL COLOR(7,BG,BG)
3340 CALL COLOR(8,BG,FG)
3350 RETURN
3360 CALL COLOR(7,BG,BG)
3370 CALL COLOR(8,FG,BG)
3380 RETURN
3390 FOR I=0 TO 7 STEP 4
3400 INX=INT(I/3)+1
3410 XCYLON1(INX)=INT(RND*10)+1
3420 XCYLON2(INX)=INT(RND*10)+21
3430 CALL HCHAR(4+I,XCYLON1(INX),40)
3440 CALL HCHAR(5+I,XCYLON1(INX),41)
3450 CALL HCHAR(4+I,XCYLON2(INX),40)
3460 CALL HCHAR(5+I,XCYLON2(INX),41)
3470 NEXT I
3480 RETURN
3490 FOR I=0 TO 7 STEP 4
3500 INX=INT(I/3)+1
3510 CALL HCHAR(4+I,XCYLON1(INX),32)
3520 CALL HCHAR(5+I,XCYLON1(INX),32)
3530 CALL HCHAR(4+I,XCYLON2(INX),32)
3540 CALL HCHAR(5+I,XCYLON2(INX),32)
3550 NEXT I
3560 SHOOT=0
3570 TIME=0
3580 RETURN
3590 DATA "000000000000003F","00000000000F3EFC","0007091E23CF7387"
3600 DATA "40201F0000000000","001EC13F00000000","F9068242310F0000"
3610 DATA "00E09078C4F3CEE1","0000000000F07C3F","00000000000000FC"
3620 DATA "9F6041428CF00000","007883FC00000000","0204F80000000000"
3630 DATA "FF808E929C80FC03","FF027293E30300FF","F84641C0FFC003FC"
3640 DATA "00008040E010F000"
3650 DATA "387C447C6C7CFEFE","FEBABABA28286C00"
3660 DATA 37,"0000FFFFFFFF0000",59,"FFFFFFFFFFFFFFFF",58,"FF818181818181FF"
3670 DATA 60,"007E7E7E7E7E7E00",61,"007C447C6C447C00",62,"AA55AA55AA55AA55"
3680 DATA 63,"0080C0FEFCE00000",80,"F0F0F0F0F0F0F0F0",88,"F0F0F0F0F0F0F0F0"
3690 DATA 72,"000000000000FFFF",73,"FFFF000000000000",74,"FFFF00000000FFFF"
3700 CALL CHAR(33,"8040201008040201")
3710 CALL CHAR(34,"00000000000000FF")
3720 CALL CHAR(35,"0102040810204080")
3730 CALL CHAR(36,"0000000000000000")
3740 TOP=0.7
3750 J=0
3760 DIR=1
3770 FOR I=1 TO 32
3780 R=RND
3790 IF R>TOP THEN 3800 ELSE 3820
3800 DIR=-DIR
3810 J=J-DIR
3820 J=J+DIR
3830 IF (J>3)+(J<-3)THEN 3840 ELSE 3860
3840 DIR=-DIR
3850 J=J+DIR
3860 CH=34+DIR
3870 CALL HCHAR(16-J,I,CH)
3880 NEXT I
3890 RETURN
3900 SCP=5-LEN(STR$(PPL))
3910 CALL HCHAR(1,4,48,SCP)
3920 FOR I=1 TO LEN(STR$(PPL))
3930 CALL HCHAR(1,3+I+SCP,ASC(SEG$(STR$(PPL),I,1)))
3940 NEXT I
3950 RETURN
3960 RESTORE 4090
3970 FOR I=1 TO 12
3980 READ A,B
3990 CALL KEY(0,K,S)
4000 IF S=0 THEN 4030 ELSE 4010
4010 GAME=1
4020 GOTO 4120
4030 CALL SOUND(A*1.2,110,0,B,0)
4040 READ A,B
4050 CALL SOUND(A*1.2,131,0,B,0)
4060 READ A,B
4070 CALL SOUND(A*1.2,165,0,B,0)
4080 NEXT I
4090 DATA 162,110,162,110,162,220,162,110,162,110,162,220,162,110,162,110,162,220,162,110,162,110,162,220
4100 DATA 162,659,162,659,162,659,162,494,162,494,162,659,162,110,162,110,162,110,162,880,162,698,162,659
4110 DATA 162,659,162,659,162,659,162,494,162,494,162,659,162,110,162,110,162,110,162,880,162,698,162,659
4120 RETURN
4130 PRINT :::::"   VIPER SQUAD BRIEFING":::::::::::::"    PRESS ENTER TO PLAY"::::::
4140 CALL COLOR(1,1,4)
4150 FOR I=9 TO 12
4160 CALL COLOR(I,16,5)
4170 CALL COLOR(I-4,2,4)
4180 NEXT I
4190 CALL COLOR(2,2,4)
4200 CALL COLOR(13,11,2)
4210 CALL CHAR(128,"F0783C1E0F87C3E1")
4220 CALL CHAR(125,"0000000000001818")
4230 CALL CHAR(123,"")
4240 FOR I=8 TO 15
4250 CALL HCHAR(I,7,123,19)
4260 NEXT I
4270 CALL HCHAR(7,6,128,21)
4280 CALL HCHAR(16,6,128,21)
4290 CALL VCHAR(8,6,128,8)
4300 CALL VCHAR(8,26,128,8)
4310 ROW=7
4320 P$="shoot{the{cylons{by"
4330 GOSUB 4500
4340 P$="pressing{space{bar}"
4350 GOSUB 4500
4360 P$="save{trains{{{using"
4370 GOSUB 4500
4380 P$="space{bar{{when{{no"
4390 GOSUB 4500
4400 P$="cylons{are{in{{view"
4410 GOSUB 4500
4420 P$="use{{esdx{{to{{move"
4430 GOSUB 4500
4440 P$="your{viper}{press{t"
4450 GOSUB 4500
4460 P$="to{{change{{{speed}"
4470 GOSUB 4500
4480 INPUT "":A$
4490 RETURN
4500 COL=7
4510 ROW=ROW+1
4520 FOR J=1 TO LEN(P$)
4530 CHA=ASC(SEG$(P$,J,1))
4540 CALL HCHAR(ROW,COL,CHA)
4550 COL=COL+1
4560 NEXT J
4570 RETURN
4580 CALL HCHAR(1,11,58,10)
4590 FOR TRI=1 TO 5
4600 TR=RND*100
4610 CALL GCHAR(1,INT(TR/10)+11,GTR)
4620 IF GTR=59 THEN 4600
4630 CALL HCHAR(1,INT(TR/10)+11,59)
4640 NEXT TRI
4650 RETURN
4660 CALL HCHAR(1,INT(CYLON/10)+11,58)
4670 XCY=11+INT(RND*11)
4680 CALL GCHAR(1,XCY,G)
4690 IF G<>59 THEN 4670
4700 CALL HCHAR(1,XCY,61)
4710 CYLON=(XCY-11)*10
4720 CALL HCHAR(1,INT(CYLON/10)+11,61)
4730 RETURN

Attached Files



#39 Opry99er OFFLINE  

Opry99er

    Quadrunner

  • 8,749 posts
  • Location:Hustisford, WI

Posted Thu Jan 25, 2018 9:19 AM

Cool! Im looking forward to playing this!!! Thanks!

#40 mizapf OFFLINE  

mizapf

    River Patroller

  • 2,891 posts
  • Location:Germany

Posted Thu Jan 25, 2018 9:41 AM

Disk image (created with TIMT*)

 

(* I found a bug by the way, a one-off error: It believed that CO means CONTINUE, where the short form must be CON. I'll patch it and upload it soon.)

Attached Files



#41 Lee Stewart OFFLINE  

Lee Stewart

    River Patroller

  • 3,544 posts
  • Location:Silver Run, Maryland

Posted Thu Jan 25, 2018 9:51 AM

 

The file is for Classic99. I don't know how to load basic programs with js99. 

 

One way to load a program in js99er.net after you choose TI Basic is to select and copy (Ctrl+c) the program text and paste (Ctrl+v) it into TI Basic.

 

...lee



#42 Opry99er OFFLINE  

Opry99er

    Quadrunner

  • 8,749 posts
  • Location:Hustisford, WI

Posted Thu Jan 25, 2018 11:35 AM

For programming in TI Basic, I find there to be few tools as helpful, useful, and rewarding to use as TIdBiT (codehackcreate.com)

Code freely with no line numbers and have the use of labels. Makes coding in console BASIC fun. :)

#43 Asmusr OFFLINE  

Asmusr

    River Patroller

  • 2,576 posts
  • Location:Denmark

Posted Thu Jan 25, 2018 4:39 PM

I can't get it to work with js99.net.  Is this the right type of disk file for that emulator?

 

Click Open Disk/File in JS99'er and choose the file (you don't even have to unzip it). This will place the file on DSK1. Then type OLD DSK1.VS2912 and RUN from TI BASIC.



#44 Airshack OFFLINE  

Airshack

    Dragonstomper

  • 594 posts
  • Location:Phoenix, AZ

Posted Sun Jan 28, 2018 10:16 PM

For programming in TI Basic, I find there to be few tools as helpful, useful, and rewarding to use as TIdBiT (codehackcreate.com)

Code freely with no line numbers and have the use of labels. Makes coding in console BASIC fun. :)


TidBiT is wonderful!! The first day I used TIdBiT was the last day I coded in BASIC without it.

From http://codehackcreate.com/archives/237 : TidBit is a pre-processor that lets you write your code in a more natural way (no line numbers, use indentation and comments, use labels, etc.) and then generates a normal BASIC/XB program that can be run on a TI-99/4A computer. Some of the main features are:

Line numbers are not necessary and will be assigned.
Labels can consist of A-Z, a-z, 0-9, _, and -. They can be any length, but a maximum line length is 256 characters. Label definitions must start a line and end with a single colon. Labels can be referenced any place a line number can be used, currently: THEN, ELSE, [ON]GOTO, [ON]GOSUB, and ON ERROR.
Comments are any line that start with REM or // (C/C++ style single line comment notation). XB also has a trailing comment designated by a ! that causes the rest of the line to be ignored. The C-style // comments will be stripped from the code, but the REM and ! comments will be retained in the output.
Leading space is ignored so you can indent as much as you like.
Long lines can be split by ending a line with .. (double period). These lines will be joined into one long line and the XB limit of 140 characters will be checked.
Lines that end with the XB multi-statement operator ::, that end with a THEN or ELSE statement, or where an ELSE statement is on the next line, will automatically join the next line.
A pseudo ENDIF statement can be used with IF-THEN-ELSE statements to help make code more readable.
The starting line number and line number increment can be specified.

http://codehackcreate.com/archives/237

#45 tibasic OFFLINE  

tibasic

    Space Invader

  • Topic Starter
  • 45 posts

Posted Mon Feb 12, 2018 7:55 AM

The level is now displayed on the screen in the game. I have also reduced the number of Vipers to three as I thought five was too many. The updated game is attached to this post.

 

I think the game has everything it needs now. Next I will run it through the compiler and see how that goes.

 

Attached Files



#46 senior_falcon ONLINE  

senior_falcon

    Stargunner

  • 1,039 posts
  • Location:Lansing, NY, USA

Posted Mon Feb 12, 2018 9:00 AM

 

I think the game has everything it needs now. Next I will run it through the compiler and see how that goes.

 

Remember that everything has to be an integer.  There are a number of places where you use RND in a way that is not compatible with the compiler. One example:

3780 R=RND     (R will always be zero when compiled - see the docs for ways to program using RNDj)
3790 IF R>TOP THEN 3800 ELSE 3820

Or:

2580 IF (RND>0.1)*(SHOOT=0)THEN 2590 ELSE 2710   this could be IF (RND*10>1)*SHOOT=0)


Edited by senior_falcon, Mon Feb 12, 2018 9:01 AM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users