Opry99er Posted September 5, 2015 Share Posted September 5, 2015 (edited) I came home from work today to find my son had overwritten one of my Magellan files... Something I had worked on off and on for a while, but hadn't done anything with just yet. I was upset.... And then he showed me what he did. One of our favorite "before-bedtime" activities is to play Air-Sea Battle on the 2600. He had created this basic screen and I used his graphics (he is really getting good at graphics. ) Enjoy 100 CALL CLEAR :: CALL SCREEN(16):: CALL CHAR(64,"0"):: CALL CHAR(72,"0"):: CALL CHAR(80,"0") 110 CALL CHAR(96,"03060C183C7EFFFFC06030183C7EFFFF0000003C3C000000C87E9B69699B7EC8") 120 CALL CHAR(100,"E033997F7F9933E0"):: CALL CHAR(104,"FFFFFFFFFFFFFFFF") 130 CALL CHAR(112,"0"):: CALL CHAR(120,"0"):: CALL CHAR(128,"0") 140 CALL HCHAR(3,1,112,64):: CALL HCHAR(5,1,120,64):: CALL HCHAR(7,1,128,64) 150 CALL HCHAR(9,1,64,64):: CALL HCHAR(11,1,72,64):: CALL HCHAR(13,1,80,64):: CALL HCHAR(24,1,104,32) 160 CALL COLOR(5,12,12,6,11,11,7,9,9,10,3,1,11,15,15,12,8,8,13,6,6,14,5,5) 170 DISPLAY AT(1,5):"00 00" :: DISPLAY AT(23,10):CHR$(96):: DISPLAY AT(23,20):CHR$(97) 180 CALL SPRITE(#3,99,16,50,10,0,20):: CALL SPRITE(#4,100,13,80,10,0,23) 190 CALL SPRITE(#1,98,2,174,90,-20,20):: CALL SPRITE(#2,98,8,174,170,-20,-20) 200 FOR I=1 TO 700 :: NEXT I :: CALL DELSPRITE(#1,#2):: GOTO 190 Edited September 5, 2015 by Opry99er 3 Quote Link to comment Share on other sites More sharing options...
Shift838 Posted September 5, 2015 Share Posted September 5, 2015 Very nice.. And how old is he? Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted September 5, 2015 Share Posted September 5, 2015 Cool, your kid might be another Mole or Rasmus in the game making arena! There may be hope that the TI lives another generation. BTW Tursi, I love being able to copy and paste text into Classic 99! 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 5, 2015 Author Share Posted September 5, 2015 Very nice.. And how old is he? 6. Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted September 5, 2015 Share Posted September 5, 2015 Wow! Credit to you Owen for getting him interested at such a young age. I never had any such luck with my kids despite all my efforts. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 5, 2015 Author Share Posted September 5, 2015 I don't deserve much credit here... He watches me code and test games out, then he just takes over when I'm done and does his own thing. I am proud of him... Next week, we start simple programming classes. 1 Quote Link to comment Share on other sites More sharing options...
JamesD Posted September 6, 2015 Share Posted September 6, 2015 Well done grasshopper. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted September 6, 2015 Share Posted September 6, 2015 The 2600 "Air-Sea Battle" was absolutely great. An early cartridge/memory. Colorful (also when not playing). You could practice on your own (one player). And it was great head-to-head (two players each with a joystick). "Combat" was actually not all that bad. Again you could practice alone, but it really came to life when playing head-to-head. All games end after 2 minutes and 16 seconds, or when either player scores 99 points. During the last 16 seconds, the score will flash to show that the game is nearing the end. Short and sweet. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 6, 2015 Author Share Posted September 6, 2015 Thanks. We usually play game variation #4 which is a standard stationary missile base... 3 firing trajectories, 90 degrees, 45 degrees (standard resting position) and a flat trajectory that I would guess to be about 25 degrees. Up and down joystick movement selects the trajectory of the missile, while the fire button releases it. No missile cancellation (unlike GORF) and only one missile in play per player at a time. Should be relatively trivial to add controls and turn this into a game. Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted September 6, 2015 Share Posted September 6, 2015 That is pretty cool. I have long thought about a TI version. Well done, indeed. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 6, 2015 Author Share Posted September 6, 2015 (edited) Thanks, CS1. I should do it in assembly, but I probably won't. XB with the compiler more than likely. I could see the entire game fitting in 50-60 lines of XB code, even if I add single player and a second variation (steerable projectiles). I have always loved this game and plan on fleshing it out when I get done with the current project. Eventually I would like to rework RFTB and Honeycomb Rapture and put them on a cart with Vector Hyperdrive, Air-Sea Battle, and Monster Canyon (when those three get done). Put out a multicart of 5 games complete with manual. That's my dream, anyway... We shall see how it goes. Edited September 6, 2015 by Opry99er 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted October 9, 2015 Author Share Posted October 9, 2015 Got a little action going here... In the following demo, you can play two player... Player 1 uses the "A" button to fire, Player 2 uses the "ENTER" key to fire. You can hit the targets in the sky (although they do not disappear when you hit them) Your score will increase with each target you hit. First player to make it to 20 points wins the game. You can easily change the number of hits required by each player to win the game by simply changing the values in lines 460 and 510 respectively. For testing, I changed the value from 19 to 3. Enjoy. 100 REM SET UP SCREEN AND GRAPHICS 110 CALL CLEAR :: CALL SCREEN(16):: CALL CHAR(64,"0"):: CALL CHAR(72,"0"):: CALL CHAR(80,"0") 120 CALL CHAR(96,"03060C183C7EFFFFC06030183C7EFFFF0000003C3C000000C87E9B69699B7EC8") 130 CALL CHAR(100,"E033997F7F9933E0"):: CALL CHAR(104,"FFFFFFFFFFFFFFFF") 140 CALL CHAR(112,"0"):: CALL CHAR(120,"0"):: CALL CHAR(128,"0") 150 CALL HCHAR(3,1,112,64):: CALL HCHAR(5,1,120,64):: CALL HCHAR(7,1,128,64) 160 CALL HCHAR(9,1,64,64):: CALL HCHAR(11,1,72,64):: CALL HCHAR(13,1,80,64):: CALL HCHAR(24,1,104,32) 170 CALL COLOR(5,12,12,6,11,11,7,9,9,10,3,1,11,15,15,12,8,8,13,6,6,14,5,5) 180 DISPLAY AT(23,10):CHR$(96):: DISPLAY AT(23,20):CHR$(97) 190 REM SET UP AND DISPLAY INITIAL SCORE 200 SCO1=0 :: SCO2=0 210 DISPLAY AT(1,5):SCO1; 220 DISPLAY AT(1,20):SCO2; 230 REM START TARGETS IN MOTION 240 CALL SPRITE(#3,99,16,50,10,0,20):: CALL SPRITE(#4,100,13,80,10,0,23) 250 REM START OF LOOP 260 CALL KEY(0,K,S):: IF K=65 THEN GOSUB 340 ELSE IF K=13 THEN GOSUB 360 270 IF PM1>0 THEN GOSUB 380 280 IF PM2>0 THEN GOSUB 410 290 IF PM1>0 THEN GOSUB 440 300 IF PM2>0 THEN GOSUB 490 310 GOTO 260 320 REM END OF LOOP 330 REM IF PLAYER 1 'FIRE' WAS PRESSED, THEN ACTIVATE MISSILE 340 PM1=1 :: CALL SPRITE(#1,98,2,174,90,-20,20):: RETURN 350 REM IF PLAYER 2 'FIRE' WAS PRESSED, THEN ACTIVATE MISSILE 360 PM2=1 :: CALL SPRITE(#2,98,8,174,170,-20,-20):: RETURN 370 REM CHECK FOR POSITION OF PLAYER 1 MISSILE, DELETE IF 'OUT OF PLAYFIELD' 380 CALL POSITION(#1,X,Y):: IF X>180 OR Y<20 THEN CALL DELSPRITE(#1):: PM1=0 390 RETURN 400 REM CHECK FOR POSITION OF PLAYER 2 MISSILE, DELETE IF 'OUT OF PLAYFIELD' 410 CALL POSITION(#2,XX,YY):: IF XX<10 OR YY<20 THEN CALL DELSPRITE(#2):: PM2=0 420 RETURN 430 REM CHECK FOR PLAYER 1 MISSILE COINC WITH TARGETS 440 CALL COINC(#1,#3,8,A):: CALL COINC(#1,#4,8,B) 450 IF A<0 OR B<0 THEN CALL DELSPRITE(#1):: PM1=0 :: SCO1=SCO1+1 :: DISPLAY AT(1,5):SCO1; 460 IF SCO1>19 THEN WINNER=1 :: GOSUB 540 470 RETURN 480 REM CHECK FOR PLAYER 2 MISSILE COINC WITH TARGETS 490 CALL COINC(#2,#3,8,C):: CALL COINC(#2,#4,8,D) 500 IF C<0 OR D<0 THEN CALL DELSPRITE(#2):: PM2=0 :: SCO2=SCO2+1 :: DISPLAY AT(1,20):SCO2; 510 IF SCO2>19 THEN WINNER=2 GOSUB 540 520 RETURN 530 REM END OF GAME 540 CALL CLEAR :: CALL DELSPRITE(ALL):: CALL CHARSET :: DISPLAY AT(8,:"PLAYER";WINNER;"WINS" 550 DISPLAY AT(10,2):"PRESS ENTER TO PLAY AGAIN" 560 CALL KEY(0,K,S):: IF S=0 THEN 560 570 IF K<>13 THEN 560 580 GOTO 100 2 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted October 9, 2015 Author Share Posted October 9, 2015 There is obviously some tweaking that will take place... It is MUCH harder for player 2 to register a direct hit, as the direction of the targets is left to right ONLY at this moment... The left to right missiles have much more time to register... Next step is to eliminate targets as they are hit and integrate different patterns, sizes, and speeds of targets in order to "level the playing field." Quote Link to comment Share on other sites More sharing options...
Opry99er Posted October 9, 2015 Author Share Posted October 9, 2015 : AIRSEA GRAPHSET SCORESET TARGETMOV CHKFIRE1 CHKFIRE2 PLAYCHK1 PLAYCHK2 CHKHIT1 CHKHIT2 ; Quote Link to comment Share on other sites More sharing options...
Opry99er Posted October 9, 2015 Author Share Posted October 9, 2015 Tonight on the docket: 1) Create a 4 SPRITE scenario and check if the COINC efficiency gets hit too hard 2) Develop additional graphics for targets 3) Create double magnified SPRITEs as a startup option (easier difficulty) 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.