+retroclouds Posted December 31, 2009 Share Posted December 31, 2009 (edited) This is the BASIC format of the "boss" stage level... or "inside the honeycomb" stage... Still working on ironing it out and adding a few new accents 100 CALL CLEAR 110 CALL SCREEN(6) 111 FOR I=1 TO 4 115 CALL SOUND(400,165,1) 120 CALL SOUND(200,220,2,440,2,523,1) :: CALL SOUND(200,220,2,440,2,494,1) :: CALL SOUND(200,220,2,440,2,523,1) 130 CALL SOUND(200,220,2,440,2,587,1) :: CALL SOUND(200,220,2,330,2,659,1) :: CALL SOUND(200,220,2,440,2,587,1) 140 CALL SOUND(200,220,2,440,2,523,1) :: CALL SOUND(200,165,2,440,2,494,1) 150 CALL SOUND(200,220,2,440,2,523,1) :: CALL SOUND(200,220,2,440,2,494,1) :: CALL SOUND(200,220,2,440,2,523,1) 160 CALL SOUND(200,220,2,440,2,587,1) :: CALL SOUND(400,220,2,330,2,659,1) 170 NEXT I wow, that sounds real nice! :thumbsup: I just tried it in Extended Basic using classic99's paste functionality. I clipped the call sound statements right here from the post and pasted it in classic99. Nice Edited December 31, 2009 by retroclouds Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1909109 Share on other sites More sharing options...
Opry99er Posted December 31, 2009 Author Share Posted December 31, 2009 Hey thanks man... . I hope, even though I am still a novice programmer, that I can use my musicianship skills to help enhance the game a bit. The main theme music for the game is really something special,... My wife and I wrote it together... She is an excellent musician as well, and graciously ALLOWS me a bit of free time to do this programming stuff. . I'll post that piece very soon as well. No new progress to report... New Years is insane for me. The last 2 weeks of the year are always ridiculous... But as soon as the 4th of January, I should be able to focus a bit on coding... I will be posting samples of code as we go along here.... Just like Filip did, copy and paste directly into Classic99 for optimum results. Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1909148 Share on other sites More sharing options...
Opry99er Posted January 6, 2010 Author Share Posted January 6, 2010 (edited) I've had very little time to work on this project lately... Christmas and the New Years take up my family and work time--- leaving very little time to focus on these projects... However, I HAVE made a BIT of progress. Below I have posted the XB code for the primary game screen with updates SPRITES and a little "death" screen... Just testing stuff out, so bear with me here. Paste this into Classic99 using the Extended BASIC application cartridge. This is not the entire code..... The "honeycomb" and "flowerbed" are not implemented in this particular program... They are being designed and worked on and will be added to this pre-existing code as soon as I am happy with them. UPDATES FROM OLD VIDEO *Implemented joystick function (no longer have to use ESDX) *Implemented 4 new SPRITE positions (up and left, down and left, up and right, down and right) *Created COINC collisions *Put "initial" life and level counters on the top of the screen... All text will use a unique character set font... the TI set will not be seen in the final game. NEXT TO ACCOMPLISH *Finish flower bed graphics *Finish honeycomb graphics *Implement new character set font ****NOTE**** LINE 260 should be CALL SCREEN (eight)... It's adding an emoticon there. Sorry 100 REM **INIT VARIABLES** 110 Q=3 :: LEV=1 120 CALL CLEAR :: CALL SCREEN(2) 130 S1$="040402010001040B102340878087483120204080008020D008C402E101E1128C" 140 S2$="31488780874023100B040100010204048C12E101E102C408F020800080402020" 150 S3$="3844828140282AAAAA2A2840818244380000000080C384A8A884438000000000" 160 S4$="0000000001C221151521C301000000001C22418102145455555414028141221C" 170 S5$="007F4140C0808188E4221108241301010810C8354A2814844602028202021EF0" 180 S6$="01011324081122E4888180C040417F00F01E0202820202468414284A35C81008" 190 S7$="0F7840404140406221281452AC1308108080C82410884427118101030282FE00" 200 S8$="100813AC52142821624040414040780F00FE8202030181112744881024C88080" 210 S9$="000000783C1E4FE7E7FDFF03070F1E3C0000000000000181F15DF9C181000000" 220 CALL CHAR(136,"5CA5CA5CA5CA5CA5") 230 CALL HCHAR(8,1,136,544) 240 CALL CHAR(128,S1$) :: CALL CHAR(132,S5$) :: CALL CHAR(120,S3$) :: CALL CHAR(108,S6$) :: CALL CHAR(104,S2$) :: CALL CHAR(100,S7$) 250 CALL CHAR(112,S4$) :: CALL CHAR(124,S8$) :: CALL CHAR(116,S1$) :: CALL CHAR(96,S9$) 260 CALL COLOR(14,11,12) :: CALL SCREEN( 270 CALL SPRITE(#1,100,2,170,5) :: CALL SPRITE(#2,112,7,99,150,0,-15) 280 CALL SPRITE(#4,112,7,150,125,0,-15) 290 CALL SPRITE(#3,96,2,10,5,0,20) 300 CALL MAGNIFY(3) 310 DISPLAY AT(3,20):Q 320 DISPLAY AT(1,16):"LEVEL" :: DISPLAY AT(1,21):LEV 330 CALL COINC(ALL,C) :: IF C=-1 THEN GOSUB 380 ELSE 340 340 CALL JOYST(1,X,Y) 350 CALL MOTION(#1,-Y*2.5,X*2.5) 360 CALL PATTERN(#1,Y*3+X+116) 370 GOTO 330 380 CALL DELSPRITE(ALL) :: FOR I=2 TO 14 :: CALL COLOR(I,2,1) :: NEXT I :: CALL SCREEN(2) :: CALL CHARSET 390 Q=Q-1 :: IF Q<0 THEN GOTO 430 400 CALL SCREEN(7) :: PRINT " YOU LOST A BEE!!!" :: FOR X=1 TO 400 :: NEXT X 410 CALL CLEAR :: CALL CHARSET :: CALL SCREEN(2) :: DISPLAY AT(7,11):"GET READY" :: CALL SCREEN(7) :: FOR X=1 TO 400 :: NEXT X 420 GOTO 120 430 CALL CLEAR 440 FOR L=1 TO 16 450 FOR X=1 TO 30 :: NEXT X :: PRINT "GAME OVER" :: CALL SCREEN(L) :: NEXT L Thanks for taking a look. =) Owen Edited January 6, 2010 by Opry99er Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1913630 Share on other sites More sharing options...
+retroclouds Posted January 6, 2010 Share Posted January 6, 2010 Just gave it a spin in classic99. Collision detection works real nice :thumbsup: Just an idea: Do you think it's possible to let the bees flap their wings or would that bee to cumbersome in extended basic ? I'm looking forward seeing the flower bed Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1914148 Share on other sites More sharing options...
Tursi Posted January 7, 2010 Share Posted January 7, 2010 Sometimes, as always, your skill with the pixel art, especially with hiding the color limitations, blows me away. Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1914463 Share on other sites More sharing options...
Opry99er Posted January 7, 2010 Author Share Posted January 7, 2010 Yes... And those flowers he designed will be added to the game code tomorrow. . You'll receive credit in the manual, sir. Now I have to come up with a creative way to implement said flower... Right now I just have the flowers going straight across with plain green stems... But I think I can do much better than that. Code and/or screenshots forthcoming... Promise Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1914487 Share on other sites More sharing options...
sometimes99er Posted January 7, 2010 Share Posted January 7, 2010 Thanks. I like the 5x5 myself. I haven’t done much downscaling (big pictures to pixel art) as such, but it is certainly something I will explore more. Owen, I tried and do a bit of work on your own design (Post #10) ... Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1914623 Share on other sites More sharing options...
Opry99er Posted January 7, 2010 Author Share Posted January 7, 2010 That's pretty much the design I was going for... Except you made it..... Cool. Shame on you. I mean, "Thanks" my man. once again, you come through with style and class. Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1914670 Share on other sites More sharing options...
Opry99er Posted January 7, 2010 Author Share Posted January 7, 2010 Flap their wings???? Sir you ARE crazy!!!. I had that in my original test code... But it is very cumbersome in XB... I JUST had it set up for the main SPRITE to do that--- and I had it set up just for the ESDX directions.... I ran against some character limitations... I could make all the enemy bees flap their wings without much difficulty, but Im not sure how much it would affect my loop.... I really need to learn TMS9900.... Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1914686 Share on other sites More sharing options...
Opry99er Posted January 7, 2010 Author Share Posted January 7, 2010 Finished the title screen graphics... Will post later tonight... The letters looked much better on paper than in code--- which is strange. I will need to cut back on the "P" in Rapture to make the "T" stand out more. I'm also contemplating adding a bee SPRITE to the title screen, but a different bee than is in the game. Half the size or smaller... Perhaps a single character. Will post pix and/or video in a bit. Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1915054 Share on other sites More sharing options...
Opry99er Posted January 8, 2010 Author Share Posted January 8, 2010 Here are a couple pix... one is the art for the title, the other is the screen in Classic99. Not sure how I feel about the font... Also haven't added "flowers" or "honeycombs" to the title screen yet. The art shows honeycombs, but I was thinking flowers... Who knows. =) Anyway, here ya go Take a gander. =) Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1915601 Share on other sites More sharing options...
Opry99er Posted January 8, 2010 Author Share Posted January 8, 2010 Here's a litle vid I took of it all. I changed some screen colors so you could watch these blocky letters load up... Insane that I had to do over 70 CALL HCHAR or VCHAR to make this screen work. Anyway, here it is http://www.youtube.com/watch?v=aBuOXEeh6B8 Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1915617 Share on other sites More sharing options...
+retroclouds Posted January 8, 2010 Share Posted January 8, 2010 Here's a litle vid I took of it all. I changed some screen colors so you could watch these blocky letters load up... Insane that I had to do over 70 CALL HCHAR or VCHAR to make this screen work. Anyway, here it is http://www.youtube.com/watch?v=aBuOXEeh6B8 Just watched the vid. Nice, nice, very nice :thumbsup: Looking forward seeing more Actually I played around with Extended Basic last week. The first time in 22 years or so. I forgot how powerful it is. It's not really lightning fast, but you can really do some amazing stuff with it Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1915635 Share on other sites More sharing options...
Opry99er Posted January 8, 2010 Author Share Posted January 8, 2010 It IS a powerful language. I love it... But it is limited. Not necessarily by speed (which it IS) but more by the need for a concise loop which may or may not be able to include the necessary parameters. For instance, right now I am trying to set up limitations for my bee... I don't want it to go off the left side to reach the right, don't want it to be able to go off the bottom to reach the top, and I am trying to limit it's movement to JUST inside the yellow "canola field". XB sucks for this kind of thing... I'll have more done later today... We're snowed in.... Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1915654 Share on other sites More sharing options...
Opry99er Posted January 9, 2010 Author Share Posted January 9, 2010 Can I just set up a CALL LOCATE inside my loop to make sure the SPRITE is within parameters? For instance 300 CALL POSITION(#1,XPOS,YPOS) 310 IF XPOS<192 OR THEN GOSUB 1000 (rest of program) 1000 CALL LOCATE(#1,192,YPOS) if I'm right, this will stop the SPRITE from going off the bottom of the screen, and let it maintain the Y position (dot column). If I also included a line and subprogram for the Y axis as well, this should work, yes?!? (excited... Think I may have figured out my problem) Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1916088 Share on other sites More sharing options...
Opry99er Posted January 9, 2010 Author Share Posted January 9, 2010 (edited) My life just got a bit less stressful. New code, new video. Check out the screen parameters. =) Again, in LINE 260, it's "CALL SCREEN(eight)... damned emoticons. The music is a piece I wrote and recorded called "A Short Riverside Rest." Hope you enjoy http://www.youtube.com/watch?v=U5uUIMgEI7U 100 REM **INIT VARIABLES** 110 Q=3 :: LEV=1 120 CALL CLEAR :: CALL SCREEN(2) 130 S1$="040402010001040B102340878087483120204080008020D008C402E101E1128C" 140 S2$="31488780874023100B040100010204048C12E101E102C408F020800080402020" 150 S3$="3844828140282AAAAA2A2840818244380000000080C384A8A884438000000000" 160 S4$="0000000001C221151521C301000000001C22418102145455555414028141221C" 170 S5$="007F4140C0808188E4221108241301010810C8354A2814844602028202021EF0" 180 S6$="01011324081122E4888180C040417F00F01E0202820202468414284A35C81008" 190 S7$="0F7840404140406221281452AC1308108080C82410884427118101030282FE00" 200 S8$="100813AC52142821624040414040780F00FE8202030181112744881024C88080" 210 S9$="000000783C1E4FE7E7FDFF03070F1E3C0000000000000181F15DF9C181000000" 220 CALL CHAR(136,"5CA5CA5CA5CA5CA5") 230 CALL HCHAR(8,1,136,544) 240 CALL CHAR(128,S1$) :: CALL CHAR(132,S5$) :: CALL CHAR(120,S3$) :: CALL CHAR(108,S6$) :: CALL CHAR(104,S2$) :: CALL CHAR(100,S7$) 250 CALL CHAR(112,S4$) :: CALL CHAR(124,S8$) :: CALL CHAR(116,S1$) :: CALL CHAR(96,S9$) 260 CALL COLOR(14,11,12) :: CALL SCREEN( 270 CALL SPRITE(#1,100,2,170,5) :: CALL SPRITE(#2,112,7,99,150,0,-15) 280 CALL SPRITE(#4,112,7,150,125,0,-15) 290 CALL SPRITE(#3,96,2,10,5,0,20) 300 CALL MAGNIFY(3) 310 DISPLAY AT(3,20):Q 320 DISPLAY AT(1,16):"LEVEL" :: DISPLAY AT(1,21):LEV 330 CALL COINC(ALL,C) :: IF C=-1 THEN GOSUB 420 340 CALL POSITION(#1,XPOS,YPOS) 350 IF XPOS>185 THEN GOSUB 500 360 IF YPOS<10 THEN GOSUB 520 370 IF XPOS<58 THEN GOSUB 510 380 CALL JOYST(1,X,Y) 390 CALL MOTION(#1,-Y*2.5,X*2.5) 400 CALL PATTERN(#1,Y*3+X+116) 410 GOTO 330 420 CALL DELSPRITE(ALL) :: FOR I=2 TO 14 :: CALL COLOR(I,2,1) :: NEXT I :: CALL SCREEN(2) :: CALL CHARSET 430 Q=Q-1 :: IF Q<0 THEN GOTO 470 440 CALL SCREEN(7) :: PRINT " YOU LOST A BEE!!!" :: FOR X=1 TO 400 :: NEXT X 450 CALL CLEAR :: CALL CHARSET :: CALL SCREEN(2) :: DISPLAY AT(7,11):"GET READY" :: CALL SCREEN(7) :: FOR X=1 TO 400 :: NEXT X 460 GOTO 120 470 CALL CLEAR 480 FOR L=1 TO 16 490 FOR X=1 TO 30 :: NEXT X :: PRINT "GAME OVER" :: CALL SCREEN(L) :: NEXT L 500 CALL LOCATE(#1,185,YPOS) :: RETURN 510 CALL LOCATE(#1,58,YPOS) :: RETURN 520 CALL LOCATE(#1,XPOS,10) :: RETURN Edited January 9, 2010 by Opry99er Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1916124 Share on other sites More sharing options...
Opry99er Posted January 9, 2010 Author Share Posted January 9, 2010 Okay--- so my game loop is shaping up nicely. The next step (and my coding order has changed from "Graphics first" to "Game Loop first") is to replace the CALL COINC(ALL) in line 330 with more precise instructions. I do not want a collision to take place if any other SPRITEs collide with one another... I will try to implement the "DDT" drop today. So, I have two questions..... 1) **I will have to find a way to find the plane SPRITE and have it drop a DDT SPRITE as it moves across the screen... I think the best way to do this is use a similar detection and subroutine as I used in keeping the bee within parameters... CALL POSITION on that SPRITE, and if it is at a certain place on the screen, have it drop the DDT. Now--- how do I get it to drop the DDT from random positions as it travels? 2) How can I increase the number and speed of the enemy SPRITEs per level? On this question, I believe there will have go be two variables set up like "ENNUM" that will start with the initial number of enemies (probably 3) and will increase in a subprogram that increases the "level". (ENNUM=ENNUM+1) Additionally, a second variable---"ENSPD" which will control the speed of the enemy sprites... The same thing will apply here (ENSPD=ENSPD+2) then I must come up with a RANDOMIZE function for where the SPRITEs will appear in the X and Y axis. Any help would be appreciated Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1916393 Share on other sites More sharing options...
TI99Kitty Posted January 9, 2010 Share Posted January 9, 2010 All I have are some suggestions; I hope you take them in the spirit in which they're intended, as helpful critisism. And feel free to ignore them, if they don't fit in with what you're trying to accomplish; you won't hurt my feelings. Much... ^_~ The first is just a bit of optimization of the code you already had: 1) Using DATA and READ (in a FOR-NEXT loop) to create your custom character definitions (really only necessary when you first type it in, I suppose, to keep from having to type "CALL CHAR" all those times). I don't think the quotes in the DATA statements are strictly necessary, since the strings don't contain any commas or spaces, but they're there, just in case. 2) Moving the code for the start point of the level. In your code, the program loops back up to line 120, whereupon all the character definition code is run again. I moved line 120 down below the character definition code, and edited the GOTO to point there. 3) Tweaking the DISPLAY ATs, to center the "Get ready" message, and to position the "You have lost a bee" message higher up, where it doesn't cause the screen to scroll up. The second is a slight change in the way you handle losing a bee. Rather than simply blanking the screen and saying "you lost a bee," it might be more interesting to have some visual effect. Originally in this suggestion, I was going to delete the "you lost a bee" message, but I'll let you see how it looks with it left in. I know there must be a better way to handle spinning the bee, other than DATA statements, but I'm not that good at math, and don't see a pattern in the way the bee sprites are oriented. No doubt, someone here can tell you how to do the spin with only the FOR-NEXT loop, and leave the READ and DATA statements out, if you decide to leave the "death-spin" in. If the spin and the screen flash are too fast/too slow, I apologize. Classic99 was running too slow, so I shut down BOINC; now it runs too fast, so I haven't been able to gauge what the best delay in lines 424 and 427 should be. I'm including the empty lines (from the lines I deleted), so you can just copy/paste the altered code over the original to test it (make sure you don't save over your original code, though!) The DATA statements originally started immediately after line 520, but I added 1000 to the line numbers, in case you have other code starting at 530 that you didn't post. I didn't want my suggestions to overwrite anything that might affect gameplay! 120 129 REM ** INIT CUSTOM CHARACTERS ** 130 RESTORE 1530 140 FOR SP=96 TO 136 STEP 4 :: READ SP$ :: CALL CHAR(SP,SP$) :: NEXT SP 150 160 170 180 190 200 210 220 CALL CLEAR :: CALL SCREEN(2) 230 CALL HCHAR(8,1,136,544) 240 250 419 REM ** SPIN BEE & FLASH SCREEN ** 420 CALL DELSPRITE(#2,#3,#4) :: CALL MOTION(#1,0,0) :: RESTORE 1640 421 FOR DEAD=1 TO 8 423 READ SPIN :: CALL PATTERN(#1,SPIN) 424 CALL SCREEN(7) :: FOR DELAY=1 TO 10 :: NEXT DELAY 425 READ SPIN :: CALL PATTERN(#1,SPIN) 427 CALL SCREEN( :: FOR DELAY=1 TO 10 :: NEXT DELAY 428 NEXT DEAD 440 CALL SCREEN(7) :: DISPLAY AT(6,6):" YOU LOST A BEE!! " :: FOR X=1 TO 400 :: NEXT X 450 CALL CLEAR :: CALL CHARSET :: CALL SCREEN(2) :: DISPLAY AT(7,10):"GET READY" :: CALL SCREEN(7) :: FOR X=1 TO 400 :: NEXT X 460 GOTO 220 1529 REM ** CHARACTER INIT DATA ** 1530 DATA "000000783C1E4FE7E7FDFF03070F1E3C0000000000000181F15DF9C181000000" 1540 DATA "0F7840404140406221281452AC1308108080C82410884427118101030282FE00" 1550 DATA "31488780874023100B040100010204048C12E101E102C408F020800080402020" 1560 DATA "01011324081122E4888180C040417F00F01E0202820202468414284A35C81008" 1570 DATA "0000000001C221151521C301000000001C22418102145455555414028141221C" 1580 DATA "040402010001040B102340878087483120204080008020D008C402E101E1128C" 1590 DATA "3844828140282AAAAA2A2840818244380000000080C384A8A884438000000000" 1600 DATA "100813AC52142821624040414040780F00FE8202030181112744881024C88080" 1610 DATA "040402010001040B102340878087483120204080008020D008C402E101E1128C" 1620 DATA "007F4140C0808188E4221108241301010810C8354A2814844602028202021EF0" 1630 DATA "5CA5CA5CA5CA5CA5" 1639 REM ** SPRITE SPIN DATA ** 1640 DATA 120,108,104,100,112,124,128,132 1650 DATA 120,108,104,100,112,124,128,132 Anyway, those are just my little suggestions. I like what you'e done so far. It looks like it's going to be an interesting game, and I can't wait to see it when you're finished! ^_^ Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1916461 Share on other sites More sharing options...
Opry99er Posted January 9, 2010 Author Share Posted January 9, 2010 (edited) Thanks a million! I will start implementing some of this now! One question, however.... If the standard format for a CALL CHAR is ;; 100 CALL CHAR(97,"xxxx") ;; then would line 140 not have to include the quotation marks?... I think I see what you've done... You changed SP to the string SP$.... interesting method... The DATA statements include the """" and DATA reads directly. Thanks. I'll use this for sure. Just LOOKS nice! Edited January 9, 2010 by Opry99er Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1916484 Share on other sites More sharing options...
Opry99er Posted January 10, 2010 Author Share Posted January 10, 2010 (edited) Got a few things worked out here on the game... code to be posted later. First, the DDT the plane will be dropping.... I will set up an IF THEN statement and a RND function to do so.... I will need 3 or 4 more variables to do this.... Existing code notwithstanding, here is the premise for getting from point A to point B 100 REM **INIT VARIABLES** 101 DSPD=10 :: Z=10 :: ZX=8 500 DDT=RND*Z :: IF DDT>ZX THEN GOSUB 3000 . . . 3000 CALL POSITION(#3,XPOS,YPOS) :: CALL SPRITE(#5,130,XPOS,YPOS,DSPD,0):: RETURN this will set up my DDT drop... The speed of the DDT, "DSPD" will be increased when the level increases. What ya think? I'll have all new updated code tonight including TI99Kitty optimizations and the DDT drop. I am also considering increasing the speed of the plane each level as well, but not sure... That would be easy to do. Z and ZX set the "frequency" of drops... If they are decreased, the chance the plane will drop DDT is higher. At the end of each level, I will include a--- 1000 Z=Z-1 :: ZX=ZX-1 there ya go... I'm sure I'm forgetting something, but I'm getting there Edited January 10, 2010 by Opry99er Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1916673 Share on other sites More sharing options...
TI99Kitty Posted January 10, 2010 Share Posted January 10, 2010 Thanks a million! I will start implementing some of this now! One question, however.... If the standard format for a CALL CHAR is ;; 100 CALL CHAR(97,"xxxx") ;; then would line 140 not have to include the quotation marks?... I think I see what you've done... You changed SP to the string SP$.... interesting method... The DATA statements include the """" and DATA reads directly. Thanks. I'll use this for sure. Just LOOKS nice! Yeah, like I said before, I'm not sure if that actually saves any memory -- but it's much easier to type in. As for SP/SP$, I only used those because it makes it easy to remember what they're used for (SPrite definition). The SP variable is generated by the FOR-NEXT loop, which is set up to generate the ASCII codes (96, 100, 104, etc.). The hex values are READ into SP$, and then both are plugged into the CALL CHAR statement. It's a cute little trick I learned ages ago (possibly from looking at the code from "TI-Trek"). Z and ZX set the "frequency" of drops... If they are decreased, the chance the plane will drop DDT is higher. At the end of each level, I will include a--- 1000 Z=Z-1 :: ZX=ZX-1 So, will the plane make multiple drops, or will it be like the skunk in "Alpiner," which drops its "payload" once, then scoots off the screen? Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1916792 Share on other sites More sharing options...
Opry99er Posted January 10, 2010 Author Share Posted January 10, 2010 Z and ZX control the frequency. It will start with probably 2 drops per "pass" and will move up from there.. As the killer bee sprites speed up by level and the number of SPRITEs increases each level by 1, the frequency of drops will also increase to possibly up to 5 drops per pass. I gotta get these graphics up so I can set the game loop to look for the bee reaching the honeycomb. ***planned steps 1) finish coding flowerbed and honeycomb.... 2) set up loop to search for bee-honeycomb contact 3) finish graphics for "inside the freaky honeycomb" 4) build "alien" engine.... And graphics. No, I'm not kidding. 5) rebuild collision detection routine to exclude "enemy SPRITE--enemy SPRITE" detection. 6) Not this far yet....... Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1916833 Share on other sites More sharing options...
Opry99er Posted January 10, 2010 Author Share Posted January 10, 2010 (edited) I've just finished a bit of work adding all this new code into place... here's what I've got... I'm having a problem, though, that I won't be able to get to tonight... seems that I am having some serious difficulty getting my loop to work now. It starts with an instantaneous "death" to my play piece. The reason for this is the CALL COINC(ALL) in line 240. I will have to get rid of that and switch to more precise collision detection. To try it without that collision and junky mess, delete lines 245 and 3000. Then it's back to mostly normal. I'll be modifying the "SPIN" pattern a little bit, but it's a great idea, thanks Rhea! Anyway, here's the code... and as I said... delete lines 245 and 3000 to get rid of the problem. If someone cares to write up the routine for detecting collisions between the following SPRITE numbers, that would be great. =) If not, I'll knock it out tomorrow::: #1 and #2 #1 and #4 #1 and #5 #1 and #6 #1 and #7 While #6 and #7 are not currently in the game, they WILL be on later levels... Will write the "end of level" subprogram tomorrow... It will include many additions and subtractions to different variables... including +1 SPRITE speed -1 Z \_________________together control frequency of DDT dropping -1 ZX / +1 LEV -2 ENSPD (will increase speed of enemy SPRITEs I will also have to set it up to where in LINE 3000, the SPRITEs that are generated in a plane pass-over have different numbers.... With the current code, the DDT will fall until the next one has to get dropped, then it disappears to make way for the new DDT SPRITE... This will have to get changed before I go any further as well---but for now, here's the code... Haven't tested it totally out yet... got caught up in the COINC thing... 100 REM **INIT VARIABLES** 110 Q=3 :: LEV=1 :: DSPD=10 :: Z=10 :: ZX=8 :: ENSPD=-15 120 REM ** INIT CUSTOM CHARACTERS ** 130 RESTORE 520 140 FOR SP=96 TO 136 STEP 4 :: READ SP$ :: CALL CHAR(SP,SP$) :: NEXT SP 150 CALL CLEAR :: CALL SCREEN(2) 160 CALL HCHAR(8,1,136,544) 170 CALL COLOR(14,11,12) :: CALL SCREEN( 180 CALL SPRITE(#1,100,2,170,5) :: CALL SPRITE(#2,112,7,99,150,0,ENSPD) 190 CALL SPRITE(#4,112,7,150,125,0,ENSPD) 200 CALL SPRITE(#3,96,2,10,5,0,20) 210 CALL MAGNIFY(3) 220 DISPLAY AT(3,20):Q 230 DISPLAY AT(1,16):"LEVEL" :: DISPLAY AT(1,21):LEV 240 CALL COINC(ALL,C) :: IF C=-1 THEN GOSUB 340 245 DDT=INT(RND*Z)+10 :: IF DDT>ZX THEN GOSUB 3000 250 CALL POSITION(#1,XPOS,YPOS) 260 IF XPOS>185 THEN GOSUB 480 270 IF YPOS<10 THEN GOSUB 500 280 IF XPOS<58 THEN GOSUB 490 290 CALL JOYST(1,X,Y) 300 CALL MOTION(#1,-Y*2.5,X*2.5) 310 CALL PATTERN(#1,Y*3+X+116) 320 GOTO 240 330 REM ** SPIN BEE & FLASH SCREEN ** 340 CALL DELSPRITE(#2,#3,#4,#5) :: CALL MOTION(#1,0,0) :: RESTORE 640 350 FOR DEAD=1 TO 8 360 READ SPIN :: CALL PATTERN(#1,SPIN) 370 CALL SCREEN(7) :: FOR DELAY=1 TO 10 :: NEXT DELAY 380 READ SPIN :: CALL PATTERN(#1,SPIN) 390 CALL SCREEN( :: FOR DELAY=1 TO 10 :: NEXT DELAY 400 NEXT DEAD 410 Q=Q-1 :: IF Q<0 THEN GOTO 450 420 CALL SCREEN(7) :: DISPLAY AT(6,6):" YOU LOST A BEE!! " :: FOR X=1 TO 400 :: NEXT X 430 CALL CLEAR :: CALL CHARSET :: CALL SCREEN(2) :: DISPLAY AT(7,10):"GET READY" :: CALL SCREEN(7) :: FOR X=1 TO 400 :: NEXT X 440 GOTO 150 450 CALL CLEAR 460 FOR L=1 TO 16 470 FOR X=1 TO 30 :: NEXT X :: PRINT "GAME OVER" :: CALL SCREEN(L) :: NEXT L 480 CALL LOCATE(#1,185,YPOS) :: RETURN 490 CALL LOCATE(#1,58,YPOS) :: RETURN 500 CALL LOCATE(#1,XPOS,10) :: RETURN 510 REM ** CHARACTER INIT DATA ** 520 DATA "000000783C1E4FE7E7FDFF03070F1E3C0000000000000181F15DF9C181000000" 530 DATA "0F7840404140406221281452AC1308108080C82410884427118101030282FE00" 540 DATA "31488780874023100B040100010204048C12E101E102C408F020800080402020" 550 DATA "01011324081122E4888180C040417F00F01E0202820202468414284A35C81008" 560 DATA "0000000001C221151521C301000000001C22418102145455555414028141221C" 570 DATA "040402010001040B102340878087483120204080008020D008C402E101E1128C" 580 DATA "3844828140282AAAAA2A2840818244380000000080C384A8A884438000000000" 590 DATA "100813AC52142821624040414040780F00FE8202030181112744881024C88080" 600 DATA "040402010001040B102340878087483120204080008020D008C402E101E1128C" 610 DATA "007F4140C0808188E4221108241301010810C8354A2814844602028202021EF0" 620 DATA "5CA5CA5CA5CA5CA5" 630 REM ** SPRITE SPIN DATA ** 640 DATA 120,108,104,100,112,124,128,132 650 DATA 120,108,104,100,112,124,128,132 3000 CALL POSITION(#3,XPOS,YPOS) :: CALL SPRITE(#5,132,2,XPOS,YPOS,DSPD,0) :: RETURN Edited January 10, 2010 by Opry99er Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1916916 Share on other sites More sharing options...
Opry99er Posted January 13, 2010 Author Share Posted January 13, 2010 Progress has slowed for the time being... I do not have very good programming tools/aids and it's just so hard to get any "TI Time" right now. So... that being said, I'll try to transfer this program to my TI and then I might be able to be "in the dungeon" for a while and get time to code... Since I do my coding on my Intel MAC with a virtual machine on it running XP, I am often distracted and interrupted by a bunch of crap. But nobody disturbs me in my war room. =) Updates coming... I think I've figured out the collision detection subroutines... More info coming soon. =) Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1919052 Share on other sites More sharing options...
Opry99er Posted January 15, 2010 Author Share Posted January 15, 2010 Listen up guys.... here is what has been happening.... I was able to (with a bit of help) put together array variable to handle my CALL COINC detection... However, I have pushed XB as far as I can push it. The main issue is the drag that is being put on program execution by the array I have put together for coincidence detection. It slows down joystick movement detection to a debilitating level. I need to find a way to either set up my joystick function as an assembly subroutine or find a way to do my detections array in assembly if this game is going to work properly. I will need to CALL INIT and CALL LOAD my subroutine(s) and subsequently CALL LINK the subroutine inside of my game loop.... This is beyond me, really.... But I'm trying. I need to figure out how to pass values between the two environments.... Anyone have any experience in this area? Quote Link to comment https://forums.atariage.com/topic/155428-honeycomb-rapture-rgpc/page/2/#findComment-1920652 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.