jchase1970 Posted March 13, 2010 Share Posted March 13, 2010 (edited) I was showing TI-Trooper to my son and I noticed a scoring error, then I noticed that the plane didn't change direction even though I had made the graphics for the other direction, I just forgot to implement it. I also added joystick control which is great with a retro 2600 joystick, feels alot like I remember it. Also now there is a four jump round and a few more graphical animation. TI-SKYDIVER c2010 By John Chase Jchase1970@hotmail.com Have you ever felt the desire to jump out of a perfectly fine aircraft? Do you have a little daredevil inside you? Then hang on to that cord and let it rip! In TI-SKYDIVER you are a skydiver with 4 jumps to make. First select your difficulty, with 0 being the hardest and 3 being the easiest. The game will begin after you make your selection. The view from 20,000ft.... Look at the screen for vital information on your progress. In the upper left corner you will see a tally of you jumps so far, being 4 parachutes in the beginning and then showing the result of the jumps after you make them. At the center top is the high score of the game, with your current score under it. You plane is moving across the horizon and will test you ability by alternating directions between jumps. Watch the clouds to gage the wind speed and direction. At the bottom of the screen you will see your landing area. Harder games have more wind speed and small landing area. Scoring.... You are scored by how brave you are, how long you wait to pull that rip cord and open your chute. You must remember to deploy your chute soon enough to land softly on the ground. While you don't need to be at the minimum speed you do need to be much slower then the freefall. You will also loose points having your chute deployed. Landing on the landing pad will score you an extra 100pts. While smashing into the ground will cost you 100pts. Your score accumulates for 4 jumps and the highest score for a round of jumps will be recorded for the high score. I'm in the plane, now what.... Press you joystick button to jump from the plane. Pulling back on the stick will deploy your chute. If you find yourself blowing off course you can try to correct yourself by pushing the stick left or right, but an overpowering wind will always win out. Enjoy the flight, just don't get to relaxed in that seat. SKYDIVER.zip 100 DATA "60F0F8F8FCFFFFFFFF7F0000000000000000000000FFFFFCFBFB070707070F0E","0000000000FFFF01FEFDF8F0E0C080000000000000FCF2F9FFFE" 110 DATA "00000000003F4F9FFF7F0000000000000000000000FFFFC0BFDF0F070301","0000000000FFFF3FDFDFE0E0E0E0F070060F1F1F3FFFFFFFFFFE" 120 DATA 030705170B0503010101020204040808C0E0A0E8D0A0C0808080404020201010,0307050703011F010101020202040404C0E0A0E0C080F8808080404040202020 130 DATA 03070507030103050911010102020202C0E0A0E0C080C0A09088808040404040,033F7FFFFFF870202020101000000000C0FCFEFFFF1F0E040404080800000000 140 DATA 00000000000F1020405955595555407F0000000000E0100804645464444404FC,0000397FFFFFFF7EBDC37F3F60DFFE7C3CFEE7DBFFFF7EF0FCEFDF3FFFFE7800 150 DATA 0000033F7FFFFFFC702020201010101000FCFEFFFFFF0E040404080800000000,003F7FFFFFFF702020201010000000000000C0FCFEFFFF3F0E04040408080808 160 DATA 0307050703011F010101020204040808C0E0A0E8D0A0C0808080404020201010,030705170B0503010101020204040808C0E0A0E0C080F8808080404020201010 170 data 1,88,2,20,1,2,92,2,20,17,10,124,16,40,1,11,124,16,48,15,12,124,16,42,29 171 data 13,116,14,4,8,14,116,14,4,25,15,116,14,4,42,16,116,14,4,59 180 CALL CLEAR ::RANDOMIZE :: CALL MAGNIFY(3) :: CALL CHAR(33,"FFFFFFFFFFFFFFFF",40,"FFFFFFFFFFFFFFFF",87,"0044442810101010") 190 DISPLAY AT(2,9):"TI-SKYDIVER" :: CALL SCREEN(6) :: FOR I=1 TO 10 :: CALL COLOR(I,2,6) :: NEXT I::display at(6,6):"Choose difficulty" 200 DISPLAY AT(7,4):"0 hardest - 3 easiest" :: display at(20,5):"c2010 - John Chase" 230 CALL KEY(0,K,S) :: IF(S=0)+(K<48)+(K>51)THEN 230 ELSE Dif=K-48 240 call clear::FOR I=0 TO 13::READ C$::CALL CHAR(I*4+88,C$)::NEXT I::CALL COLOR(1,3,6,2,15,6)::PS=8 260 for i=1 to 9::read a,b,c,d,e::call sprite(#a,b,c,d,e)::next i::lp=-1:: PD=-1 265 for i=0 to 3::call pattern(#13+i,116)::next i::IF SC>HI THEN HI=SC::DISPLAY AT(1,10):"HIGH SCORE="&STR$(HI)::sc=0 else sc=0 270 tsc=0::lp=lp+1:=0 :: FS=2 :: PD=PD*-1::if lp=4 then lp=-1 :: goto 500 271 if pd=1 then CALL SPRITE(#1,88,2,20,1,0,PD*PS,#2,92,2,20,17,0,PD*PS) :: goto 280 272 CALL SPRITE(#1,96,2,20,1,0,PD*PS,#2,100,2,20,15,0,PD*PS) 280 CALL HCHAR(23,1,33,64)::PO=INT(RND*27)+2::CALL HCHAR(23,PO,40,2+Dif) 290 WS=5-INT(RND*(10+2*(3-Dif))) :: CALL MOTION(#10,0,WS,#11,0,WS,#12,0,WS) 300 if p=0 then CALL KEY(1,K,S)::IF K=18 THEN 370 else 300 310 if p=3 then 410 else CALL JOYST(1,X,Y) :: J=((X+3*Y)/4)+5 :: on j goto 380,330,380,340,380,350,380,380,380 330 if p=1 then SC=SC+TSC:=2::CALL POSITION(#3,Y,X)::CALL SPRITE(#3,104,12,Y,X,fs,WS,#4,116,7,Y-8,X,fs,WS)::goto 310 else 380 340 if p=2 then CALL MOTION(#3,fs,WS-4,#4,fs,WS-4) :: CALL PATTERN(#3,136,#4,128):: goto 390 else 430 350 if p=2 then CALL MOTION(#3,fs,WS+4,#4,fs,WS+4) :: CALL PATTERN(#3,140,#4,132):: goto 390 else 430 370 P=1 :: CALL POSITION(#2,Y,X) :: CALL SPRITE(#3,104,12,Y+10,X,FS,PS/2*PD) :: CALL DELSPRITE(#4) :: GOTO 300 380 IF P=2 THEN CALL pattern(#3,104,#4,116) ELSE GOTO 430 390 SC=SC-1::DISPLAY AT(2,14):SC ::CALL POSITION(#3,Y,X)::fs=fs-3:: if fs<2 then fs=2 :: CALL MOTION(#3,fs,WS,#4,fs,WS) 395 IF Y>159 THEN 460 else 300 410 CALL POSITION(#4,Y,X) :: IF Y>176 THEN CALL MOTION(#4,0,0) :: GOTO 270 else goto 300 430 TSC=TSC+10 :: FS=FS+1 :: F=F+1 :: PAT=F :: IF F=3 THEN PAT=1 ELSE IF F=4 THEN F=0 :: PAT=0 440 CALL MOTION(#3,FS,PD*PS/2) :: CALL PATTERN(#3,104+PAT*4) :: CALL POSITION(#3,Y,X) :: IF Y>159 THEN 450 ELSE GOTO 300 450 CALL sprite(#3,120,2,161,X,0,0):: CALL DELSPRITE(#4)::call sound(1000,311,0,349,0,220,0)::call sound(1000,185,0,220,0,262,0) 451 call pattern(#13+lp,120)::sc=sc-100::DISPLAY AT(2,14):SC::GOTO 270 460 if fs<4.5 then CALL motion(#3,0,0)::call pattern(#3,112,#13+lp,112) :: P=3::DISPLAY AT(2,14):SC::tsc=0 else 450 470 IF(X+4>PO*8-*(X+11<PO*8+10+8*Dif)THEN SC=SC+100 :: CALL SOUND(300,262,0,330,0,392,0) :: CALL SOUND(2000,523,0,659,0,784,0) else 300 480 call pattern(#3,104)::call pattern(#13+lp,104)::DISPLAY AT(2,14):SC:: goto 300 500 display at(14,9):"PLAW AGAIN W/N"::CALL KEY(3,K,S):: IF K=89 THEN display at(14,9):" ":: goto 265 ELSE IF K=78 THEN END ELSE 500 Edited March 13, 2010 by jchase1970 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted March 13, 2010 Share Posted March 13, 2010 Very impressive. Good work. One thing though. I can deploy parachute at ground level and easily survive. Quote Link to comment Share on other sites More sharing options...
jchase1970 Posted March 13, 2010 Author Share Posted March 13, 2010 Very impressive. Good work. One thing though. I can deploy parachute at ground level and easily survive. In the first draft of the program I had it slow you down slowly. It didn't work to well, but it may have been because of some other bug. I'll try to reimplement that system and see if I can get it working. I never even thought about putting it back after I took it out. Quote Link to comment Share on other sites More sharing options...
jchase1970 Posted March 13, 2010 Author Share Posted March 13, 2010 Ok, the game is now updated and the manual as well to reflect a need to open the chute in time to slow down before you hit the ground. You wont need to be at minimum speed which is 2 but you must be at around 4. It's alot more difficult since the resolution of 192 isn't much to show acceleration and deceleration. It wasn't had to add the slowdown in to the code but the required 1 line of space I had to compact was a challenge. I don't want to think about trying to squeeze anything else in there, lol. As a side note, this game was a very fun project. Each of the programs I made were alot of fun to do. The TI99-4a is what over 30yrs old now and still bringing joy to us. That's great. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted March 13, 2010 Share Posted March 13, 2010 Excellent update. Beautiful. It seems to me we are pushing the machine - or have become better at pushing the machine. As someone else said, I was not expecting all these possibilities/entries, when I first heard about the XB 30+10 liner competition. What can you do with 30 lines ? Well, apparently a lot. And some of the tight control loops even makes ‘em playable. Amazing. Quote Link to comment Share on other sites More sharing options...
jchase1970 Posted March 14, 2010 Author Share Posted March 14, 2010 (edited) I noticed on this project that just because you have the space the basic interpreter will only accept so much information on a line for ex, 271 if pd=1 then CALL SPRITE(#1,88,2,20,1,0,PD*PS,#2,92,2,20,17,0,PD*PS) :: goto 280 272 CALL SPRITE(#1,96,2,20,1,0,PD*PS,#2,100,2,20,15,0,PD*PS) I wanted to have this on one line like 271 if pd=1 then CALL SPRITE(#1,88,2,20,1,0,PD*PS,#2,92,2,20,17,0,PD*PS) else CALL SPRITE(#1,96,2,20,1,0,PD*PS,#2,100,2,20,15,0,PD*PS) even though it fits it says 'line to long' and the same with data statements, 170 data 1,88,2,20,1,2,92,2,20,17,10,124,16,40,1,11,124,16,48,15,12,124,16,42,29 171 data 13,116,14,4,8,14,116,14,4,25,15,116,14,4,42,16,116,14,4,59 when I first enter this I had it on one line and got the 'line to long' error So I guess there is a limit to how many arguments the interpreter can work out per line. Another thing I noticed doing these 30 liners is that you can't put a for next loop after a if then, like this, 10 if a=0 then for x=1 to 10:: print x:: next x That is a syntax error. John Edited March 14, 2010 by jchase1970 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.