Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

176 Excellent

About Bones-69

  • Rank
    Chopper Commander
  • Birthday 11/10/1969

Profile Information

  • Gender
  • Location
  • Interests
    TI99/4a, rocketry, motorsports, BBQ pork, Aquaponics & growing chilli peppers!
  1. This is great. Love it!
  2. Submission: Boat Bomber Platform: RXB Written by: Darren Bellia Instructions: Use joystick to avoid attacking plane, edge of space, and mountains. Use fire to bomb boat as it speeds by. BBOMBER.dsk
  3. Joystick or arrow keys move plane up and down and fire launches a missile at the boat. Don't fly off into space, don't fly into the mountains, and avoid the other plane. Although the COINC on the plane collision is pretty average.... 100 U=124 :: CALL CHAR(36,"000307070F3F3F7F008080C0C0F0FCFF",U,"1C1E1F3F3F1F3F000",126,"0030C8FFFE8",33,"3C0C1E7F40407F000",35,"00F088FE0204F8") 110 CALL CLEAR :: X,W,Y,R=64 :: Q=12 :: A$=RPT$("$((%",:: CALL MAGNIFY(3):: CALL CHAR(92,RPT$("0",48),136,"AA55AA55AA55AA55"):: RANDOMIZE :: DIM E(33),P(33),S$(33) 120 CALL SCREEN(16):: CALL COLOR(1,3,5,2,3,3,8,Q,Q):: E(6),E(12),E(18)=1 :: FOR I=1 TO 33 :: P(I)=RND*30+5 :: A$=SEG$(A$,2,31)&SEG$(A$,1,1):: S$(I)=A$ :: NEXT I 130 E(24),E(30)=1 :: CALL SPRITE(#1,U,8,Y,X,#2,32,2,U,W,O,Q):: CALL HCHAR(13,1,40,R,15,1,92,R,22,1,92,96,1,1,136,128) 140 FOR I=1 TO 32 :: CALL HPUT(Q,1,S$(I)):: CALL JOYST(1,G,H):: CALL MOTION(#1,-H*2,0,#2,0,P(I)):: CALL POSITION(#1,Y,X) 150 CALL KEY(1,D,H):: IF Y<32 THEN Z$="ARE LOST IN SPACE" ELSE IF Y>83 THEN Z$="CRASHED" ELSE IF E(I)=1 THEN CALL SPRITE(#3,U,7,RND*49+36,1,0,21) 160 IF Z$="" THEN 170 :: CALL DELSPRITE(ALL):: PRINT "GAME OVER YOU ";Z$;"WITH A SCORE OF "&STR$(L)&".": :"TYPE RUN TO PLAY AGAIN." :: STOP 170 IF D=18 THEN CALL POSITION(#1,Y,X):: CALL SPRITE(#4,92,16,Y,X,100,25):: CALL MOTION(#4,0,0):: CALL LOCATE(#4,120,69+(100-Y)) 180 CALL COINC(#4,#2,13,Q1,#1,#3,9,Q2):: IF Q2=-1 THEN Z$="COLLIDED" ELSE IF Q1=-1 THEN L=L+1 :: DISPLAY AT(2,27)SIZE(LEN(STR$(L)))BEEP:(STR$(L)):: CALL LOCATE(#2,U,1) 190 CALL DELSPRITE(#4):: CALL JOYST(1,G,H):: CALL MOTION(#1,-H*2,0,#2,0,P(I)):: CALL SOUND(-800,-6,20):: NEXT I :: GOTO 140
  4. I let it run overnight, appears there may have been some excess generosity with the payout levels set..... It is disturbing how mind-numbingly entertaining it is just to watch it - and even weirder the undeserved feeling of satisfaction/accomplishment when four of a kind spin up.
  5. Here is a silly little XB slot machine 10 liner I threw together.... Let me know if anyone pulls off the jackpot (space invader, man, pacman & ghost - in this order). 100 RANDOMIZE :: DIM B(13):: CALL MAGNIFY(2):: FOR I=1 TO 4 :: READ A(I):: B(I)=A(I)::B(I+4)=A(I)::B(I+=A(I):: NEXT I :: READ W$ :: X=1000::S=1::CALL CLEAR::PRINT "YOU START WITH $1,000." : : 105 CALL CHAR(97,"00003C5A7E2442000018003C5A18242400003E6C787C3E0000003C5A7E7E5A"):: INPUT "WHAT IS YOUR MAXIMUM BET PERGAME? $":C :: IF C<=1000 THEN 110 ELSE PRINT "TRY AGAIN"::GOTO 105 110 GOSUB 900::IF X-C>=0 THEN 130 ! WIN *MEGA JACKPOT* BY SPINNING SPACE INVADER, MAN, PACMAN & GHOST - IN THIS ORDER. 120 PRINT "INSUFFICIENT FUNDS TO CONTINUE." : : " GAME OVER ": :"STARTING BALANCE WAS $1,000":"YOU LOST ALL YOUR CASH":"IN "&STR$(S)&" SPINS. LOSER."::STOP 130 X=X-C :: GOSUB 900 :: s=s+1::DISPLAY AT(14,10)BEEP:"GOOD LUCK!" :: FOR D=1 TO 4 :: CALL COLOR(#D,2):: FOR I=1 TO 12 :: CALL PATTERN(#D,B(I)):: CALL SOUND(30,110+I*30,I):: NEXT I 140 I=INT((RND*4)+1):: CALL PATTERN(#D,A(I)):: A$=A$&CHR$(A(I)):: Z$(D)="-"&A$&RPT$("!",4-D):: NEXT D :: FOR D=1 TO 4 :: WI(D)=POS(W$,Z$(D),1):: NEXT D :: FOR D=4 TO 1 STEP -1 :: IF WI(D)<>0 THEN 170 160 NEXT D :: DISPLAY AT(14,10):"* NO WIN *" :: FOR I=1 TO 100 :: NEXT I :: GOTO 110 170 E=VAL(SEG$(W$,WI(D)+5,4))*C :: DISPLAY AT(14,4):"CONGRATS! YOU WIN $"&STR$(E)&"." :: FOR I=1 TO 10 STEP .5 :: CALL SOUND(-500,I*110,0):: NEXT I :: X=X+E :: FOR I=1 TO 500 :: NEXT I :: GOTO 110 900 CALL CLEAR :: DISPLAY AT(1,1):"AVAILABLE FUNDS $"&STR$(X):"BETTING AMOUNT $"&STR$(C)&" " :: FOR I=1 TO 4 :: CALL SPRITE(#I,45,2,80,70+I*20):: NEXT I :: A$="" :: DISPLAY AT(24,1):S::RETURN 1000 DATA 97,98,99,100,-aa!!0001-bb!!0001-cc!!0001-dd!!0001-aaa!0010-bbb!0010-ccc!0010-ddd!0010-aaaa0100-bbbb0100-cccc0100-dddd0100-abcd1000
  6. Very Clever! Did it a few times, 130 seems to be my best.
  7. Would be great if sprites could be positioned on the 256 x 192 grid rather than the clunkier 32 x 24. Is this something that is workable?
  8. Have been throwing more time at this idea and it is evolving. Pretty much got all the sprites and character map sorted. Started working on the background graphics and general rules for how to move around in the environment. Worked out how I am going to set triggers during the game to create certain events, reveal secrets etc. While it will come with a loading delay between screens, I have decided to load each screen from disc. This will require fetching 4 records which will total 768 bytes every time player moves into a new screen. Doing this allows me to keep the graphics prettier and I shouldn't have to worry about memory issues. My current concept has a total of 133 screens. 19 above ground and 114 below although I am still flexible regarding this mix (with a preference for creating more screens above ground and less below). Above ground screens will resemble something like pitfall game-play and the below ground screens will be more like a traditional platform style appearance. That's the current thought process. Would be great if the old TI supported two fire buttons. One to jump and one to fire.... I feel just a jumping game has some limitations and will get old quick. Thinking about if it would be feasible to have two modes.... When in mode one you can jump and when in mode two you can fire. I do feel that having to use the keyboard to select each mode would be painful so not sure if this idea is worth pursuing.
  9. Du bist n ferkel..... I'll be in my bunk.
  10. I have a whole bunch from TISHUG (Texas Instruments Sydney Home Users Group) from the mid 80's. I will do my best to scan and upload some of these over the coming weeks.
  11. Wow That looks so nice.
  12. You are absolutely right. In fixing the inside of the cross I forgot about the 4 "quadrants". It's an easy fix, just need to add 4 more coordinates to the string. I will get around to clarifying the challenge with an image in the next day or two. Thanks Sometimes.
  13. I had overlooked the diagonal possibility during my original thought process but ended up correcting it in the code (post #9). So in that example a coinc is detected in all positions that it should I have the situation of not being able to use ALL to drill down at almost any point., I have a design where sprites hide behind other sprites to give the effect of "popping up". I guess there is always a workaround, but I am trying very much to avoid it....
  14. Quick little test & seems to work OK! Is detecting a dot/dot coincidence between two specific sprites, without using CALL COINC. Use arrow keys; 100 CALL CLEAR :: CALL SCREEN(2):: FOR I=1 TO 12 :: CALL COLOR(I,15,2):: NEXT I :: CALL MAGNIFY(3):: DISPLAY AT(24,1):"COINC:" 110 S$="!-30!-31!-21!-12!-13!03!13!12!21!31!30!3-1!2-1!1-2!1-3!0-3!-1-3!-1-2!-2-1!-3-1!20!02!0-2!-20!10!00!-10!01!0-1"::Y=100 :: X=100 120 CALL CHAR(124,"0000000000010107070101000000000000000000008080E0E0808",128,"0000000000000001010000000000000000000000000000808") 130 CALL SPRITE(#2,124,7,80,X,#1,128,5,Y,X,#3,124,14,50,50,0,10,#4,124,14,50,50,0,-5,#5,124,14,50,50,0,5) 140 CALL KEY(0,A,B):: IF A<8 OR A>11 THEN 140 150 ON A-7 GOTO 160,170,180,190 160 X=X-1 :: GOTO 200 170 X=X+1 :: GOTO 200 180 Y=Y+1 :: GOTO 200 190 Y=Y-1 200 CALL LOCATE(#1,Y,X):: CALL POSITION(#2,A,B):: A=A-Y :: B=B-X :: A$="!"&STR$(A)&STR$(B):: C=POS(S$,A$,1):: IF C=0 THEN A$="NO" ELSE A$="YES" 210 DISPLAY AT(24,7):A$ :: GOTO 140
  15. Thanks for the feedback and links guys - all very helpful stuff. I hadn't anticipated it would be this hard. For XB to not support dot-coincing between specified sprites I probably should have realised there was more to it.... I tried a few ideas on paper most of which were complicated, impractical, and took an absurd amount of steps and processing - but one idea seemed to have some potential, especially if it was XB compiled; It would be effortless using CALL POSITION to determine if the 64 dots of any MAGNIFY 3 sprite were in a situation where they might overlap with a second sprite. This could be determined from the the Upper Left Hand Corner position of each sprite. A minim overlap of one dot creates a potential 46 x 46 grid with the reference sprite being centered at position 16,16 (46 is determined by 16+15+15). If the two sprites fall within the 46 x 46 grid, the relative position of one sprite to the other sprite could be stored as a string. If the known positions for a coincidence were determined in advance, a "master string" could then act as a reference point for all such Y/X coordinates. Determining a dot-to-dot coincidence would then just be a case of searching one string within the other. So I think the steps would be; -Initial check to see if a coincidence is possible (if two sprites fall within the 46 x 46 grid), and if so; -Store relative coordinates of second sprite as a string -Search "master" string for the second sprite coordinate string using the POS command -If the returned variable in the POS statement is not equal to zero, a coincidence between two sprites has taken place. This idea seems like it might work although some effort in advance would be required to create the character "Coincidence Strings". Not sure if the concept is clear so I have Illustrated the idea in my attachment. *For the illustrated example I have not "stringified" the center of the cross, this would probably be necessary - especially to dot-check sprites that were in motion.
  • Create New...