Jump to content

tibasic

Members
  • Posts

    110
  • Joined

  • Last visited

Everything posted by tibasic

  1. What a great game! Once I realised what was going on it was so much fun! Thanks for posting it and I hope you consider completing the XB version.
  2. Animation of multiple objects demonstrated in a Frogger-type game in console basic. The objects, except for the frog, are animated by switching the character's colour sets on and off. It's quite a well known trick in basic to speed things up but I can't remember seeing it applied to this many objects. The code isn't very well optimised as I'm not intending to make it into a polished game. I think the approach might be good for animating a moving asteroid belt or some such thing. I converted the program into a cartridge using the BasicCart by Harry Wilhelm. It speeds up the start time so you don't have to wait for the program to set up the screen. https://forums.atariage.com/topic/353957-making-a-cartridge-from-a-ti-basic-program/ Frogsdemo.zip contains the bin file. I've also included a dsk file and a file to use with Classic99. Code is below if you prefer to copy-paste the code into an emulator: FROGSDEMO.zip
  3. Yeah I don't know what it is really ... 😀 Great, thanks!
  4. Thanks sometimes99er for giving it a whirl! There's no levels as such as the 'levels' are of similar difficulty. What I could do is only let the player advance to the next planet or moon once they have completed the preceding screen. I forgot to mention the lander has an autopilot for the vertical velocity. This limits the lander's descent rate to 10 m/s and is on unless a thrust key is pressed. This was to make it a bit easier to play and so the player can spend some time planning their route through the asteroid belt or rather asteroid maze.
  5. Here's a lunar lander type game. It's taken a couple of years to finish it because it got a bit too complex but I picked it up again recently and managed to finish it. The idea of the game is you have to collect cargo from an asteroid belt and deliver to the landing pad. You can land without the cargo but you get less points. There's the possibility to refuel as well. There are different planets and moons to land on. At the end of the game a table is presented of your scores for each planet or moon. The engines of the landers are designed for each particular gravity. So for the moon the engines are quite weak and slow to accelerate the lander. So that needs to be taken into account when moving around. The name of the file on the disk is CARGO. Listing is below in the spoiler thing. CARGO.zip Cargo.dsk
  6. Here is a updated version that is playable. I've used the ON ERROR statement to deal with the bad values and removed the vertical position checking that was possibly slowing the game down. It means occasionally you might get stuck in the lower floor but you can get out by moving the joystick. I guess it's probably now an acceptable quality for a type in game. The filename on the disk has been changed to COSMIC2. updated version: Cosmic2.dsk COSMIC2.zip
  7. Hmmm that looks familiar! I'll have another look at it. It seems a location check is needed for the sides of the screens as well. Adding ON ERROR to line 16 seems to help. 16 CALL PATTERN(#1,RC):: CALL JOYST(1,A,X):: CALL MOTION(#1,0,A) :: ON ERROR 16
  8. Computer and Video Games issue 37 had an incomplete listing of an extended basic game called Cosmic Digger. See CantStopClicking's post from February 7, 2013. https://forums.atariage.com/topic/194598-computer-video-games-magazine-type-in-games/page/3/ The game is a Manic Miner type game. I remember buying this issue of C&VG and being very disappointed that the game could not be played. I realised recently that inserting a few lines could make the screens viewable and playable. See the example code below. The attached zip file is a Classic99 compatible. It can also be used with JS99'er. I've also attached a dsk file which is compatible with both emulators as well. These are a list of additions and modifications required to make it playable. 1. Level 5 is missing code for sprites, keys and round object. This has been made playable by copying code from level 4. 2. The code gives bad values when the miner is on the lowest floor. Inserted location checks, -R2*(R2<=24)-24*(R2>24), into GCHAR and HCHAR statement to avoid bad values. Now I think this extra code is causing the miner to fall through floors. 3. Added a display of the current sceen level to keep track of the screens. 4. Included game over and levels completed messages. 5. Included an instructions screen. 6. Added scoring routines. 7. Added lives routine. 8. Set lives to 99 for testing and seeing all the screens. 9. Added some basic sounds. Screen captures of the different screens are attached. COSMIC.zip Cosmic.dsk
  9. Thanks! Thanks for compliment. Great you got the game to run. I guess the problem with the file might be it doesn't have the extension. I've re-attached the file as a zip file so hopefully it wont give any problems. Thanks, yes I like it. It's a very simple language and easy to program but of coarse it has its limits. Great, glad you like! I can remember playing City Bomber on someone's ZX81 in the 80s before we got a TI99 and thinking it was amazing but it does seem a bit too simplistic now. I've added the DESCEND file as a zip now so hopefully that's better.
  10. Hi, it's been a while ... I had some time over Christmas to start writing a game. I have finally completed it although it might need some polishing. In the game you are piloting a space shuttle on an emergency return to Earth. It did not have time to deploy its payload so it is a bit heavy and does not have enough energy to glide to a suitable runway. It is heading towards a city so you will have to sling out trusses from the shuttle's payload bay to build a runway on top of the city. Enjoy! I have attached a file called 'DESCEND.zip' that is for the Classic99 emulator but can also be run from the JS99'er web emulator. Type 'OLD DSK1.DESCEND'. I have also attached a file called Descend.dsk which can be used on JS99'er and also Classic99 emulator (but you need set the path to it). Type 'OLD DSK1.DESCENDER'. Also the listing is below if you prefer to copy paste it. The keys are: Note some of the keys have dual use depending on your situation, i.e. the context of your situation decides what the action will be (let me know if this is confusing). space bar: drop a truss for the runway on top of a building X: descend quickly to save time X: when on the runway it is important to press this key to brake and stop Z: file a laser above the city or fire a missile to destroy a truss or building that is in your way Listing Descender.dsk Instructions_Descender.pdf DESCEND.zip
  11. Glad to hear you got the game working and that the program might even be useful! ?
  12. I've fixed all the issues now and the game is finished. See first post for the final version of the game. Next I think I'll attempt to make a game based on Battlezone in TI Basic. Below is a side scrolling experiment I did a while ago. 100 FOR I=1 TO 17 110 CALL CLEAR 120 CALL COLOR(2,1,1) 130 PRINT TAB(I+10);"*" 140 PRINT TAB(I+1);"*"; 150 PRINT TAB(I+9);"***" 160 PRINT TAB(I);"***"; 170 PRINT TAB(I+7);"*****" 175 CALL HCHAR(24,1,42,32) 180 CALL COLOR(2,5,5) 190 NEXT I
  13. I've fixed the high negative points situation. Additionally I have added a bonus points system to the game. You now get extra bonus points added to your score at the end depending on how many ships you have left. There is also a '5 gates remaining' message in the game so you know how many gates are left to go through. I've updated the listing in the first post. When the gate goes partly off the screen it either disappears or wraps around to the other side of the screen. It's a bit messy looking so I might have a go at fixing that.
  14. I've updated the program listing in the first post that has the fix for the coordinate errors. I also changed the keys to the ascii codes and updated the title screen to inform what directions the keys are for. I noticed that the game awards very high negative points if you fly to the side of the gates. I'll have to fix that and then it'll be ready I think.
  15. Thanks again oddemann. I think the line needs to be: 395 IF XPOS+T+X>32 THEN 404
  16. Thanks Vorticon and oddemann for trying the game and finding the errors. I thought I'd fixed the coordinate errors before I posted the game but it's great that you found them. All that is needed it seems are some small changes to lines 395 and 405. To correct the program the first minus sign in line 395 needs to be changed to a plus and in line 405 "ELSE 430" needs to be added to the end. The new lines are listed below and could be copy-pasted into the version listed above or could be done manually as they are very small changes. Hopefully it works better now! New lines: 395 IF XPOS+T+X-1>32 THEN 404 405 IF XPOS-T+X-1>=1 THEN 410 ELSE 430 Once it's all working properly I'll attach the full corrected version to the first post.
  17. Classic99 should be SEXD responsive! The game is a bit slow so maybe it doesn't look like anything is happening. Also you may want to swap around the E and X keys as I have the game configured so E is down and X is up. The line 340 and 360 could be changed as follows. 340 IF K=ASC("E") THEN 350 ELSE 360 360 IF K=ASC("X") THEN 370 ELSE 372
  18. I have been developing a 3D type game in TI Basic. In this game you pilot a helicopter through some laser gates. The number of points awarded depends how close horizontally you pass to the centre of the gate. You get a maximum of 5 points and there are 20 gates so theoretically you could get 100 points but I'm not sure if that's possible. I've tested it on Classic99 and Js99'er. The code is included below if you want to copy and paste it into one of the emulators. There are a few small issues to iron out but it seems to working ok. Update: all the issues are fixed now. I've also attached the file for running on Classic 99 and Js99'er. 100 REM LASERGATE 110 REM 120 REM ** TITLE SCREEN ** 130 RANDOMIZE 140 CALL CLEAR 150 CALL SCREEN(2) 160 FOR I=1 TO 16 170 CALL COLOR(I,16,1) 180 NEXT I 190 GOSUB 1420 200 INPUT "PRESS ENTER TO PLAY":ENTER$ 210 REM ** INITIALISE ** 220 CALL CLEAR 230 X=0 240 Y=1 250 XPOS=17 260 T=0 270 H=0 280 H2=0.8 290 GATE=0 300 SC=0 310 SHIP=10 320 REM ** GRAPHICS ** 330 CALL CHAR(128,"FFFFFFFFFFFFFFFF") 340 CALL CHAR(136,"FF") 350 CALL CHAR(144,"FE10387C7C3844C6") 360 CALL SCREEN(2) 370 CALL COLOR(13,3,1) 380 CALL COLOR(14,7,1) 390 CALL COLOR(15,16,1) 400 REM ** GAME START ** 410 REM 420 REM ** KEYS ** 430 CALL KEY(0,K,S) 440 IF K=88 THEN 450 ELSE 460 450 Y=Y-(Y<=10) 460 IF K=69 THEN 470 ELSE 480 470 Y=Y+(Y>=1)*2 480 IF K=68 THEN 490 ELSE 500 490 X2=-1 500 IF K=83 THEN 510 ELSE 530 510 X2=1 520 REM ** MOVE GATE ** 530 X=X+X2 540 YPOS=24-(T+8)*(10-Y)/10-Y 550 IF XPOS-T+X-1<1 THEN 580 560 CALL VCHAR(YPOS,XPOS-T+X-1,128,T) 570 GOTO 630 580 L=XPOS+T+X 590 CALL HCHAR(YPOS+T*H,1,136,L) 600 CALL HCHAR(YPOS+T*H2,1,136,L) 610 CALL VCHAR(YPOS,XPOS+T+X,128,T) 620 GOTO 720 630 IF XPOS+T+X>32 THEN 660 640 CALL VCHAR(YPOS,XPOS+T+X,128,T) 650 GOTO 700 660 L=XPOS-T+X-1 670 CALL HCHAR(YPOS+T*H,XPOS-T+X,136,32-L) 680 CALL HCHAR(YPOS+T*H2,XPOS-T+X,136,32-L) 690 GOTO 720 700 CALL HCHAR(YPOS+T*H,XPOS-T+X,136,2*T) 710 CALL HCHAR(YPOS+T*H2,XPOS-T+X,136,2*T) 720 CALL HCHAR(17,16,144) 730 REM ** PASS THRU GATE? ** 740 T=T+1 750 IF T<>10 THEN 1170 760 IF (18>=INT(YPOS+T*H)+1)*(18<=INT(YPOS+T*H2))THEN 770 ELSE 890 770 IF (16<XPOS-T+X-1)+(16>XPOS+T+X-2)THEN 890 780 CALL CLEAR 790 REM ** SCORING ** 800 PTS=INT(5-ABS(16-(XPOS+X-1))) 810 PTS=PTS*ABS(PTS>=0) 820 SC=SC+PTS 830 PRINT "POINTS:";PTS;"SCORE:";SC 840 REM ** BELL ** 850 FOR L=0 TO 16 STEP 2 860 CALL SOUND(-50,700,L,2100,L,4200,L) 870 NEXT L 880 GOTO 990 890 CALL CLEAR 900 REM ** MISSED GATE ** 910 CALL SOUND(300,500,0) 920 CALL SOUND(300,110,0) 930 SHIP=SHIP-1 940 IF SHIP=-1 THEN 1190 950 PRINT ::"REMAINING SHIPS:";SHIP 960 FOR I=1 TO 500 970 NEXT I 980 REM ** GATES REMAINING ** 990 GATE=GATE+1 1000 IF (GATE=5)+(GATE=10)+(GATE=15)THEN 1010 ELSE 1050 1010 PRINT :::"GATES REMAINING:";20-GATE 1020 FOR L=0 TO 16 STEP 2 1030 CALL SOUND(-50,700,L,2100,L,4200,L) 1040 NEXT L 1050 IF GATE=20 THEN 1190 1060 CALL COLOR(15,16,1) 1070 XPOS=INT(RND*22)+5 1080 CALL CLEAR 1090 T=0 1100 X=0 1110 REM ** SET UP NEXT GATE ** 1120 H=RND*(0.5+0.015*GATE) 1130 H2=H+0.5-0.015*GATE 1140 IF H2-H<0.2 THEN 1120 1150 CALL COLOR(14,INT(H*10)+3,1) 1160 CALL COLOR(14,INT(H*10)+3,1) 1170 CALL CLEAR 1180 GOTO 430 1190 CALL CLEAR 1200 PRINT " G A M E O V E R":::::::::::::::::::::::: 1210 REM ** BONUS ** 1220 BONUS=0 1230 FOR I=1 TO SHIP 1240 BONUS=BONUS+5 1250 PRINT "BONUS POINTS:";BONUS 1260 FOR L=0 TO 12 STEP 2 1270 CALL SOUND(-50,350,L,1050,L,2100,L) 1280 NEXT L 1290 SC=SC+10 1300 CALL CLEAR 1310 NEXT I 1320 REM ** TOTAL SCORE ** 1330 PRINT :::"YOUR SCORE IS:";SC:::: 1340 PRINT "PLAY AGAIN Y OR N?" 1350 CALL KEY(0,K,S) 1360 IF S=0 THEN 1350 1370 IF K=ASC("Y")THEN 220 1380 IF K=ASC("N")THEN 1400 1390 GOTO 1350 1400 END 1410 REM ** TITLE GRAPHICS ** 1420 DIM A$(16) 1430 A$(1)="0000000000000000" 1440 A$(2)="000000000F0F0F0F" 1450 A$(3)="00000000F0F0F0F0" 1460 A$(4)="00000000FFFFFFFF" 1470 A$(5)="0F0F0F0F00000000" 1480 A$(6)="0F0F0F0F0F0F0F0F" 1490 A$(7)="0F0F0F0FF0F0F0F0" 1500 A$(8)="0F0F0F0FFFFFFFFF" 1510 A$(9)="F0F0F0F000000000" 1520 A$(10)="F0F0F0F00F0F0F0F" 1530 A$(11)="F0F0F0F0F0F0F0F0" 1540 A$(12)="F0F0F0F0FFFFFFFF" 1550 A$(13)="FFFFFFFF00000000" 1560 A$(14)="FFFFFFFF0F0F0F0F" 1570 A$(15)="FFFFFFFFF0F0F0F0" 1580 A$(16)="FFFFFFFFFFFFFFFF" 1590 FOR I=1 TO 16 1600 CALL CHAR(96-1+I,A$(I)) 1610 NEXT I 1620 PRINT "kd``````````````````````````" 1630 PRINT "oj`````````LASERGATE````````" 1640 PRINT "oj``````````````````````````" 1650 PRINT "oo````````KEYS:`E`DOWN``````" 1660 PRINT "mob`````````````X`UP````````" 1670 PRINT "eok`````````````S`LEFT``````" 1680 PRINT "`moc```locb`````D`RIGHT`````" 1690 PRINT "``doob```dlocb``````````````" 1700 PRINT "```dookb``c`lmokb```````````" 1710 PRINT "`````monc`ookcoomlkcb```````" 1720 PRINT "``````monogoooooob```llac```" 1730 PRINT "```````docnooooooo```````dlk" 1740 PRINT "````````dooooooookb`````````" 1750 PRINT "``````````mooooooooc````````" 1760 PRINT "`FLY THRU``mooooookek```````" 1770 PRINT "```THE``````dmooooooob``````" 1780 PRINT "`GATES`````dbmnoooooogb`````" 1790 PRINT "``CLOSE``````idamoooooj`````" 1800 PRINT "`TO`THE```````dcloooooo`````" 1810 PRINT "```CENTRE```````h`llonlh````" 1820 PRINT :: 1830 RETURN LASERGATE.zip
  19. I noticed when I was playing H fighter that sometimes it would cause an bad value. This can be fixed by deleting line 650 and moving it to line 675, i.e. 675 IF (X+T>32)+(X-T<1)+(12+Y-T<2)THEN 910 ELSE 680 Also I made some progress with a game inspired by the trench run part of the Atari Star Wars game. I've called it Laser Gate because in this game you have to fly through a set of gates to score points. I've included the code below in the spoiler if you want to try it by pasting it into Classic99 or js99er.
  20. Hi, It's been a while since I've written any basic games. This one is a short and simple game inspired by the 1983 Atari Star Wars arcade game. In this game you battle H fighters which are tie fighter-like ships. There is no trench run but I think it's possible to approximate. I might look into if as a separate game. I'm trying to keep my games simple these days. To score against the h fighters your laser needs to strike them in the centre. In a similar manner for the h fighter to score against you and destroy one of your 5 ships it needs to strike you when it is positioned midway horizontally. The h fighter turns magenta just before it fires its laser. In that way you will hopefully have enough time to manoeuvre out of the way. The keys are ESDX for manoeuvring and spacebar to fire. The code is in the spoiler and a file for use with Classic99 is attached. HFIGHTER.zip
  21. We bought a TI in 1982 I think. It was a lot of fun typing in the BASIC code and seeing what appeared on the TV screen. Eventually I lost interest in the TI probably because it was not very well supported in the UK compared to other machines. I became interested in the TI in recent years after reading posts on the TI Atari-Age forum and found it all very inspiring. I then figured writing games in console BASIC would be something I could contribute.
  22. There is a game called Re-act in the Gamebase. It code looks similar apart from the instructions. 100 CALL CLEAR 110 PRINT " *RE-ACT*" 120 PRINT ::::: 130 PRINT "LO SCOPO E` DI RAGGIUNGERE":"IL REATTORE" 140 PRINT 150 PRINT "EVITANDO I ROBOT":: 160 PRINT "SE UNO VI PRENDE,ALLORA":"SIETE MORTI!":: 170 CALL SOUND(200,1109,0) 180 FOR D=1 TO 2000 190 NEXT D 200 CALL CLEAR 210 PRINT "USARE I TASTI CURSORE" 220 PRINT "RAGGIUNGERE IL REATTORE" 230 PRINT "PRIMA CHE ESPLODA" 240 PRINT :"I SISTEMI DI SICUREZZA NON" 243 PRINT "SONO PIU` SINCRONIZZATI : " 245 PRINT "LE PORTE SI APRONO/CHIUDONO" 250 PRINT "A CASO" 260 PRINT ::: 270 PRINT " *BUONA FORTUNA*" 280 CALL SOUND(200,1109,0) 290 FOR D=1 TO 2000 300 NEXT D 310 CALL CLEAR 320 R=24 330 C=16 340 RR=4 350 CC=4 360 REM ..SET SCREEN 370 CALL SCREEN(16) 380 CALL CHAR(40,"FFFFFFFFFFFFFFFF") 390 CALL CHAR(97,"FFC3A59999A5C3FF") 400 CALL CHAR(120,"FFFFFFFFFFFFFFFF") 410 CALL CHAR(112,"0000081C241C1422") 420 CALL CHAR(104,"1C1C083E241C1422") 430 CALL CHAR(105,"00220099990022") 440 CALL HCHAR(1,1,40,32) 450 CALL HCHAR(24,1,40,32) 460 CALL VCHAR(1,1,40,24) 470 CALL VCHAR(1,32,40,24) 480 CALL HCHAR(3,3,40,28) 490 CALL HCHAR(22,3,40,28) 500 CALL VCHAR(3,3,40,20) 510 CALL VCHAR(3,30,40,20) 520 CALL HCHAR(5,5,40,24) 530 CALL HCHAR(20,5,40,24) 540 CALL VCHAR(5,5,40,15) 550 CALL VCHAR(5,28,40,15) 560 CALL HCHAR(10,15,40,7) 570 CALL HCHAR(14,15,40,7) 580 CALL HCHAR(11,15,40,2) 590 CALL HCHAR(12,15,40,4) 600 CALL VCHAR(11,21,40,3) 610 CALL VCHAR(15,21,40,5) 620 CALL VCHAR(5,15,40,5) 630 CALL HCHAR(24,16,32) 640 CALL HCHAR(3,16,32) 650 CALL HCHAR(12,5,32) 660 CALL HCHAR(12,28,32) 670 CALL HCHAR(7,15,32) 680 CALL HCHAR(17,21,32) 690 CALL HCHAR(12,20,32,2) 700 CALL HCHAR(18,7,40,5) 710 CALL VCHAR(19,7,40) 720 CALL VCHAR(19,11,40) 740 FOR A=22 TO 25 750 CALL VCHAR(8,A,40,7) 760 NEXT A 770 CALL COLOR(9,2,12) 780 CALL COLOR(11,5,1) 790 CALL COLOR(10,7,1) 800 CALL VCHAR(9,23,120,3) 810 CALL VCHAR(9,24,120,3) 820 REM ......SET TIME 830 TIME=41 840 TIME=TIME-1 850 IF LEN(STR$(TIME))=1 THEN 860 ELSE 870 860 CALL HCHAR(19,10,32) 870 FOR I=1 TO LEN(STR$(TIME)) 880 CALL HCHAR(19,I+8,ASC(SEG$(STR$(TIME),I,1))) 890 NEXT I 900 REM 910 REM ...**MAIN LOOP** 915 RANDOMIZE 920 CALL HCHAR(R,C,112) 930 GOSUB 1150 940 GOSUB 1090 950 GOSUB 1150 960 GOSUB 2090 970 CALL GCHAR(12,21,E) 980 IF E=112 THEN 2390 990 GOSUB 1150 1000 MX=INT(RND*10)+1 1010 IF MX=1 THEN 1120 1020 GOSUB 1150 1030 DC=INT(RND*10)+1 1040 ON DC GOSUB 1730,1800,1870,1940,2010,1940,2010,1940,2010,1730 1050 GOSUB 1150 1060 CALL HCHAR(RR,CC,104) 1070 GOTO 920 1080 REM ...CORE COLOUR 1090 COLL=INT(RND*15)+1 1100 CALL COLOR(12,COLL,1) 1110 RETURN 1120 GOSUB 1430 1130 GOTO 920 1140 REM .......MAN MOVES 1150 CALL HCHAR(R,C,32) 1160 CALL KEY(0,K,S) 1170 IF K=69 THEN 1180 ELSE 1230 1180 R=R-1 1190 CALL GCHAR(R,C,G) 1200 IF G>32 THEN 1210 ELSE 1220 1210 R=R+1 1220 GOTO 1400 1230 IF K=88 THEN 1240 ELSE 1290 1240 R=R+1 1250 CALL GCHAR(R,C,G) 1260 IF G>32 THEN 1270 ELSE 1280 1270 R=R-1 1280 GOTO 1400 1290 IF K=83 THEN 1300 ELSE 1350 1300 C=C-1 1310 CALL GCHAR(R,C,G) 1320 IF G>32 THEN 1330 ELSE 1340 1330 C=C+1 1340 GOTO 1400 1350 IF K=68 THEN 1360 ELSE 1400 1360 C=C+1 1370 CALL GCHAR(R,C,G) 1380 IF G>32 THEN 1390 ELSE 1400 1390 C=C-1 1400 CALL HCHAR(R,C,112) 1410 RETURN 1420 REM .......ROBOT MOVES 1430 FOR T=4 TO 29 1440 CALL HCHAR(4,T,104) 1450 CALL GCHAR(4,T+1,GC) 1460 IF GC=112 THEN 2310 1470 CALL HCHAR(4,T,32) 1480 NEXT T 1490 GOSUB 2090 1500 FOR VV=5 TO 21 1510 CALL VCHAR(VV,29,104) 1520 CALL GCHAR(VV+1,29,GC) 1530 IF GC=112 THEN 2310 1540 CALL VCHAR(VV,29,32) 1550 NEXT VV 1560 GOSUB 2090 1570 FOR CO=28 TO 4 STEP -1 1580 CALL HCHAR(21,CO,104) 1590 CALL GCHAR(21,CO+1,GC) 1600 IF GC=112 THEN 2310 1610 CALL HCHAR(21,CO,32) 1620 NEXT CO 1630 GOSUB 2090 1640 FOR VC=20 TO 5 STEP -1 1650 CALL VCHAR(VC,4,104) 1660 CALL GCHAR(VC+1,4,GC) 1670 IF GC=112 THEN 2310 1680 CALL VCHAR(VC,4,32) 1690 NEXT VC 1700 GOSUB 2090 1710 RETURN 1720 REM .......DOOR CONTROL 1730 CALL HCHAR(3,16,97) 1740 CALL HCHAR(12,5,32) 1750 CALL HCHAR(12,28,32) 1760 CALL HCHAR(7,15,32) 1770 CALL HCHAR(17,21,32) 1780 CALL SOUND(100,110,10) 1790 RETURN 1800 CALL HCHAR(12,5,97) 1810 CALL HCHAR(12,28,32) 1820 CALL HCHAR(7,15,32) 1830 CALL HCHAR(17,21,32) 1840 CALL HCHAR(3,16,32) 1850 CALL SOUND(100,110,10) 1860 RETURN 1870 CALL HCHAR(12,28,97) 1880 CALL HCHAR(7,15,32) 1890 CALL HCHAR(17,21,32) 1900 CALL HCHAR(3,16,32) 1910 CALL HCHAR(12,5,32) 1920 CALL SOUND(100,110,10) 1930 RETURN 1940 CALL HCHAR(7,15,97) 1950 CALL HCHAR(17,21,32) 1960 CALL HCHAR(3,16,32) 1970 CALL HCHAR(12,5,32) 1980 CALL HCHAR(12,28,32) 1990 CALL SOUND(100,110,10) 2000 RETURN 2010 CALL HCHAR(17,21,97) 2020 CALL HCHAR(3,16,32) 2030 CALL HCHAR(12,5,32) 2040 CALL HCHAR(12,28,32) 2050 CALL HCHAR(7,15,32) 2060 CALL SOUND(100,110,10) 2070 RETURN 2080 REM ....TIME COUNT 2090 TIME=TIME-1 2100 IF LEN(STR$(TIME))=1 THEN 2110 ELSE 2120 2110 CALL HCHAR(19,10,32) 2120 FOR I=1 TO LEN(STR$(TIME)) 2130 CALL HCHAR(19,I+8,ASC(SEG$(STR$(TIME),I,1))) 2140 IF TIME=0 THEN 2180 2150 NEXT I 2160 CALL SOUND(100,1760,0) 2170 RETURN 2180 REM .....DESTRUCTION 2190 CALL COLOR(2,14,1) 2200 FOR S=30 TO 0 STEP -1 2210 CALL SOUND(50,110,S) 2220 NEXT S 2230 CALL SOUND(300,110,0) 2240 CALL CLEAR 2250 CALL SCREEN(14) 2260 PRINT "IL REATTORE E` SALTATO":::::: 2270 FOR D=1 TO 2000 2280 NEXT D 2290 GOTO 2460 2300 REM .....CAUGHT BY ROBOT 2310 CALL HCHAR(R,C,105) 2320 CALL SOUND(300,-1,0) 2330 CALL HCHAR(R,C,32) 2340 FOR DE=1 TO 1000 2350 NEXT DE 2360 CALL CLEAR 2370 PRINT "SEI STATO BATTUTO!":::::::::: 2380 GOTO 2460 2390 FOR V=30 TO 0 STEP -.125 2400 CALL SOUND(50,392,V) 2410 NEXT V 2420 CALL CLEAR 2430 PRINT "FANTASTICO!CE L'HAI FATTA IN":TIME:"SECONDI" 2440 FOR D=1 TO 3000 2450 NEXT D 2460 INPUT "VUOI RICOMINCIARE? ":RS$ 2470 IF (RS$="S")+(RS$="s")+(RS$="SI")+(RS$="si")THEN 310 2480 END
  23. Hello, It's been a little while since I've developed a full game as I've been experimenting with writing more simple games. I have attached a demo of a simple game that I started several months ago and recently managed to complete more or less called Square War! One file I saved in the Classic99 format (SQUAREDEMO) and the other is a .dsk file (SQUAREDEMO_dsk). I've also included the listing below in the spoiler. It might be easier to copy and past it into an emulator to try it. I have been trying to write games over the last few months in the spirit of the Texas Program Book 35 programs for home, educational and business use with the TI99/4A by Vince Apps. The Texas Program Book was my favourite TI programming book, apart from the TI manual itself. I remember the programs being easy to type in, consistently mediocre, and simple to understand. Also I don't think I had to debug any of the programs. This game is an Invaders type game except you don't shoot the invader you shoot the colourful blocks behind it which is the source of all its power! To destroy a segment of the block you have to wait until your square is the same colour as the invader's block. You score 10 points once you have destroyed one whole block. The game ends once you have lost three lives or the invader makes it to the bottom of the screen. The keys are S left and D right and space bar to fire. Different levels are not available yet and I need to refine the game a little more too. SQUAREDEMO.zip SQUAREDEMO_dsk.zip
×
×
  • Create New...