Jump to content
IGNORED

Graphics on your TI... are YOU interested?


Omega-TI

Graphics on the TI  

28 members have voted

  1. 1. Would you be interested in a TI graphics repository thread?

    • Yes
      18
    • No
      2
    • Possibly
      8
  2. 2. If "Yes" to question #1 would you be interested in... (multiple choice)

    • Downloading stuff people post to the thread?
      21
    • Creating new graphics to add to the thread?
      14
    • N/A - Other - No Interest
      4
  3. 3. If interested, do you think we should settle on a single graphic format?

    • Yes
      4
    • No
      11
    • Maybe
      12
    • N/A - Other - No Interest
      1
  4. 4. If you chose 2 or 3 in the previous question, would you be interested in an F18A format?

    • Yes
      15
    • No
      6
    • Depends
      4
    • N/A - Other - No Interest
      3

  • Please sign in to vote in this poll.

Recommended Posts

I'm not sure how many of you are into graphics for our little Retro-Wonder, so this poll is to gauge interest and even possible participation efforts.

 

Also, if you do have interest, please let us know what your favorite TI graphics program is/was and anything else you would like to see or comment on.

 

Thanks.

 

P.S. Feel free to attach a copy of the program to your message if you like! :)

 

 

Link to comment
Share on other sites

Graphics for the TI comes in many shapes and forms. There's the original graphic chips and later additions like the Yamaha V9938/58. There are thousands of screenshot of graphics already in the Gamebase. Graphics can be animated, pictures, video, part of programs, games, box art and more. And I guess TI graphics programs cover cross platform.

Personally I'm not interested in seeing loads of pictures simply converted. :dunce:

Repositories for files like MIDI, SID, VGM, F18A, soundeffects, sprites, MSX, ColecoVision, Tomy Tutor, clipart, and relevant Cosby stuff, may also come in handy. :-D

I do like to see more or less handcrafted graphics creatively challenging (or simply using) the original popular graphic chip, - the TMS9918A. But I guess I see just that in threads and on the Internet and put into relevant context. :)

 

 

 

  • Like 1
Link to comment
Share on other sites

Sometimes,

You make some VERY good points and have some great ideas and suggestions. You also brought up some things I had not considered. Wow, I see a lot of work ahead. I can see this thing turning into a multi-category monster over time. Something like this, to become worthwhile will also require input from others for things such as locations of graphics, font files, etc. of the different formats.

 

I guess a thread such as this can start with some cool stuff at first, but will require community participation to become really useful.

Link to comment
Share on other sites

Always like seeing what can be done on the TI, so would love to have a graphics thread...wouldn't want a single format since that would probably omit graphics created though programming (Basic/Forth/GPL/Assembler) which, to me, are always more impressive than using a paint program (not necessarily in final results, but certainly in accomplishment). Otherwise we'll likely get nothing but a bunch of existing digital images converted for 16 colour 256x192 (which never look as 'good' as native graphics).

 

Little or no interest here in F18 graphics. Don't get me wrong, I love my F18, with it's stunning graphics enhancements and it's supreme clarity on a modern monitor, but if we're going to show off what a 4A is capable of graphically, I (personally) would prefer to show off what it was capable of as it rolled off the production line. Let's face it, it beat the pants off of much of the competition back then, so let's show THAT off, not what it can do with new tech attached (which makes the 99 no different than any other vintage computer with modern enhancements)!

  • Like 3
Link to comment
Share on other sites

I would really love a repository for v9938 graphics ... owning a Geneve for 26 years, but possibly never pushed graphics to their limits. This could also be interesting for 80col card users.

 

Oh boy, I hope I did not bite off more than I can chew. I agree it'll have to be broken down into different categories and even sub categories. Since different people like different things, I see, a "CLASSIC" category with things like BASIC 9918A & v9938 categories, as well as program specific links to things like FONTS (which are graphics).

 

Then there will have to be a "Modern Category" for F18A related stuff as it becomes available.

 

Any more suggestion and ideas would be GREATLY APPRECIATED, not to mention a few links and other things you deem appropriate to get things started off... so it's not a total empty space when I create the thread.

 

THANKS!

Link to comment
Share on other sites

Pictures are ok, but I would rather see graphics that are created programmatically and usable for something other than just viewing, i.e. in a game or some other software.

 

That sounds good too. What would be nice is if everyone with an idea or a want would post some information to help get me started on a framework.

 

For instance certain graphics programs used specific graphic formats, like Page Pro, TI Artist, etc. If we're going to keep track of all these different formats and links to them, it would also be nice to have the program that uses them easily available and downloadable too. That way people could also try them out and discover something new for themselves too.

Link to comment
Share on other sites

  • 4 weeks later...

I love graphics and animation. I create them all the time. I would love to learn and do the same on the TI, just for viewing or actual program assets (code for use in any scenario). I don't care what it is. I'll create things right away. No kidding. I mean it. :) I mean seriously, it was my TI-99/4a that got me started and I haven't stopped yet so going back to my roots feels very exciting.

  • Like 1
Link to comment
Share on other sites

First time doing 8x8 animation on a TI. Playing with a run cycle.
XB

10 call clear 
20 data 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
30 for chr=40 to 45
40 read pat$
50 call char(chr,pat$)
60 call vchar(15,12,chr)
70 next chr
75 restore 20
80 goto 20
  • Like 3
Link to comment
Share on other sites

And running across the screen...

 
100 CALL CLEAR
200 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
300 R=12 :: C=1
400 CHR=39
500 FOR DIST=1 TO 200 :: CHR=CHR+1
600 IF CHR<=44 THEN 800 ELSE 700
700 CHR=40 :: RESTORE 200
800 C=C+1 :: IF C>=250 THEN 300
900 READ PAT$
1000 CALL CHAR(CHR,PAT$)
1100 CALL SPRITE(#1,CHR,2,R,C)
1200 NEXT DIST
1300 RESTORE 200
1400 GOTO 300
  • Like 3
Link to comment
Share on other sites

Thanks to all the great folks here who answered my call for help on animating sprite patterns - here is more efficient code of the dude running.


 
100 CALL CLEAR
110 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
120 FOR CHR=40 TO 45
130 READ PAT$
140 CALL CHAR(CHR,PAT$)
150 NEXT CHR
160 CALL SPRITE(#1,CHR,2,12,15,0,6)
170 FOR PT=40 TO 45
180 CALL PATTERN(#1,PT)
190 FOR DELAY=1 TO 10
200 NEXT DELAY
210 NEXT PT
220 GOTO 170
 

Edited by Sinphaltimus
  • Like 2
Link to comment
Share on other sites

Disclaimer: I'm focusing more on the code than the graphics at the moment. Not many options 8x8 but it's fun and challenging.

Run then Jump then run some more...

 
 
100 CALL CLEAR
110 YP=12 :: XP=15
120 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
130 FOR CHR=40 TO 45
140 READ PAT$
150 CALL CHAR(CHR,PAT$)
160 NEXT CHR
170 CALL SPRITE(#1,CHR,2,YP,XP,0,6)
180 FOR PT=40 TO 45
190 CALL PATTERN(#1,PT)
200 FOR DELAY=1 TO 10
210 NEXT DELAY
220 CALL POSITION(#1,YP,XP)
230 IF XP=100 THEN 260
240 NEXT PT
250 GOTO 180
260 RESTORE 280
270 CALL MOTION(#1,0,0)
280 DATA 1818101010101018,000C1C3058081018,00000C1C305C1C18,0000060E183C0C18,0003070C18081018
290 FOR CHR=41 TO 45
300 READ PAT$
310 CALL CHAR(CHR,PAT$)
320 NEXT CHR
330 CALL SPRITE(#1,CHR,2,YP,XP)
340 FOR PT=41 TO 45
350 CALL PATTERN(#1,PT)
360 FOR DELAY=1 TO 10
370 NEXT DELAY
380 REM CALL POSITION(#1,YP,XP)::rem PRINT XP
390 NEXT PT
400 DATA 0303040609081010,1818141810106000,1818103810183020,1818503018080C00
410 FOR CHR=42 TO 45
420 READ PAT$
430 CALL CHAR(CHR,PAT$)
440 NEXT CHR
450 CALL POSITION(#1,YP,XP)
460 CALL SPRITE(#1,CHR,2,YP,XP,0,6)
470 FOR PT=42 TO 45
480 CALL PATTERN(#1,PT)
490 FOR DELAY=1 TO 10
500 NEXT DELAY
510 REM CALL POSITION(#1,YP,XP)::rem PRINT XP
520 NEXT PT
530 CALL MOTION(#1,0,0)
540 CALL POSITION(#1,YP,XP)
550 CALL DELSPRITE(ALL)
560 DATA 1818705018080C00,0018183070103830
570 FOR CHR=44 TO 45
580 READ PAT$
590 CALL CHAR(CHR,PAT$)
600 NEXT CHR
610 CALL SPRITE(#1,CHR,2,YP,XP)
620 FOR PT=44 TO 45
630 CALL PATTERN(#1,PT)
640 FOR DELAY=1 TO 10
650 NEXT DELAY
660 REM CALL POSITION(#1,YP,XP)::rem PRINT XP
670 NEXT PT
680 RESTORE 120
690 CALL POSITION(#1,YP,XP)
700 GOTO 130
 
  • Like 2
Link to comment
Share on other sites

Much better run jump run:

 
100 CALL CLEAR
110 YP=12 :: XP=15
120 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
130 DATA 1818101010101018,000C1C3058081018,00000C1C305C1C18,0000060E183C0C18,0003070C18081018
140 DATA 0303040609081010,1818141810106000,1818103810183020,1818503018080C00
150 DATA 1818705018080C00,0018183070103830
160 FOR CHR=40 TO 45
170 READ PAT$
180 CALL CHAR(CHR,PAT$)
190 NEXT CHR
200 FOR CHS=46 TO 50
210 READ PAT$
220 CALL CHAR(CHS,PAT$)
230 NEXT CHS
240 FOR CHJ=51 TO 54
250 READ PAT$
260 CALL CHAR(CHJ,PAT$)
270 NEXT CHJ
280 FOR CHL=56 TO 56
290 READ PAT$
300 CALL CHAR(CHL,PAT$)
310 NEXT CHL
320 CALL SPRITE(#1,CHR,2,YP,XP,0,6)
330 FOR PT=40 TO 45
340 CALL PATTERN(#1,PT)
350 FOR DELAY=1 TO 10
360 NEXT DELAY
370 CALL POSITION(#1,YP,XP)
380 IF XP>100 AND XP<104 THEN 410
390 NEXT PT
400 GOTO 330
410 CALL MOTION(#1,0,0)
420 CALL SPRITE(#1,CHS,2,YP,XP)
430 FOR PT=46 TO 50
440 CALL PATTERN(#1,PT)
450 FOR DELAY=1 TO 10
460 NEXT DELAY
470 REM CALL POSITION(#1,YP,XP)::rem PRINT XP
480 NEXT PT
490 CALL POSITION(#1,YP,XP)
500 CALL SPRITE(#1,CHJ,2,YP,XP,0,6)
510 FOR PT=51 TO 54
520 CALL PATTERN(#1,PT)
530 FOR DELAY=1 TO 10
540 NEXT DELAY
550 REM CALL POSITION(#1,YP,XP)::rem PRINT XP
560 NEXT PT
570 CALL MOTION(#1,0,0)
580 CALL POSITION(#1,YP,XP)
590 CALL DELSPRITE(ALL)
600 CALL SPRITE(#1,CHL,2,YP,XP)
610 FOR PT=56 TO 56
620 CALL PATTERN(#1,PT)
630 FOR DELAY=1 TO 10
640 NEXT DELAY
650 REM CALL POSITION(#1,YP,XP)::rem PRINT XP
660 NEXT PT
670 RESTORE 120
680 CALL POSITION(#1,YP,XP)
690 GOTO 320
 
  • Like 3
Link to comment
Share on other sites

So this tiny little journey of mine keeps evolving. Each post a little something more than the last.

Here's running stick figure dude - this time a button press of the joystick OR a keypress on the left side of the keyboard will invoke the jump. Or else, he just keeps on running. Added comments too as I think it will be useful for anyone who comes after me with less know how than I.

100 CALL CLEAR
110 YP=12 :: XP=15 !start position
115 !running patterns
120 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
125 !stop and jump
130 DATA 1818101010101018,000C1C3058081018,00000C1C305C1C18,0000060E183C0C18,0003070C18081018
135 !jumping
140 DATA 0303040609081010,1818141810106000,1818103810183020,1818503018080C00
145 !landing
150 DATA 1818705018080C00,0018183070103830 
160 FOR CHR=40 TO 45 !setup for creating running characters
170 READ PAT$
180 CALL CHAR(CHR,PAT$)
190 NEXT CHR
200 FOR CHS=46 TO 50 !setup for creating stop and jump characters
210 READ PAT$
220 CALL CHAR(CHS,PAT$)
230 NEXT CHS
240 FOR CHJ=51 TO 54 !setup for creating jumping characters
250 READ PAT$
260 CALL CHAR(CHJ,PAT$)
270 NEXT CHJ
280 FOR CHL=56 TO 56 !setup for creating landing characters
290 READ PAT$
300 CALL CHAR(CHL,PAT$)
310 NEXT CHL
320 CALL SPRITE(#1,CHR,2,YP,XP,0,6) !create the runner and send running
330 FOR PT=40 TO 45 !setup for animating the run
340 CALL PATTERN(#1,PT)
350 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
360 NEXT DELAY
370 CALL POSITION(#1,YP,XP) !check position and store before stopping motion
380 CALL JOYST(1,X,Y)::call key(1,b,s) !check for joystick input (ket is for fire button)
385 if s=-1 then 410 !fire button pressed jump to jump (410)
390 NEXT PT !continue animating the run
400 GOTO 330 !if no joystick input interuptions then continue running.
410 CALL MOTION(#1,0,0) !joystick button pressed so STOP running!
420 CALL SPRITE(#1,CHS,2,YP,XP) !recreate sprite1 as stop and jump characters
430 FOR PT=46 TO 50 !setup stop and jump animation
440 CALL PATTERN(#1,PT)
450 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
460 NEXT DELAY
480 NEXT PT !continue animating the stop and jump until done
490 CALL POSITION(#1,YP,XP) !get new postion for animating the jumping
500 CALL SPRITE(#1,CHJ,2,YP,XP,0,6) !recreat sprite 1 as jumping characters and put in to motion
510 FOR PT=51 TO 54 !setup jumping characters
520 CALL PATTERN(#1,PT)
530 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
540 NEXT DELAY
550 NEXT PT
570 CALL MOTION(#1,0,0) !stop motion at end of jumping animation to begin landing animation.
580 CALL POSITION(#1,YP,XP) !get new position for starting landing animation.
590 rem CALL DELSPRITE(ALL)
600 CALL SPRITE(#1,CHL,2,YP,XP)
610 FOR PT=56 TO 56 !setup landing animation
620 CALL PATTERN(#1,PT)
630 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
640 NEXT DELAY
650 NEXT PT ! continue landing animation until last frame.
670 RESTORE 120 !getting ready to do it all over again.
680 CALL POSITION(#1,YP,XP) !get current position to start all over again from new position.
690 GOTO 320 !start all over again.
  • Like 2
Link to comment
Share on other sites

And here is running jumping man.
Joystick required

push left, runs left, push right, runs right.

press button, jumps.

I know it's a lot of code, but these are just demos and I want them to run as smoothly as possible.

 
100 CALL CLEAR
110 YP=12 :: XP=15 :: RS=0 :: CS=6 !start position direction and velocity
120 !running patterns right
130 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
140 !stop and jump right
150 DATA 1818101010101018,000C1C3058081018,00000C1C305C1C18,0000060E183C0C18,0003070C18081018
160 !jumping right
170 DATA 0303040609081010,1818141810106000,1818103810180C00,1818503010180404
180 !landing right
190 DATA 0018183050180818,1818101038501018
200 !running patterns left
210 DATA 1818080808080818,1818183C3828640C,18583C7A58CC0206,18987E19384E8200,18987E1918284EC2,18181C7A1A38246C
220 !stop and jump left
230 DATA 1818080808080818,0030380C1A100818,000030380C3A3818,00006070183C3018,00C0E03018100818
240 !jumping left
250 DATA C0C0206090100808,1818281808080600,1818081C08183000,18180A0C08182020
260 !landing right
270 DATA 0018180C0A181018,181808081C0A0818
280 FOR CHRR=40 TO 45 !setup for creating running characters right
290 READ PAT$
300 CALL CHAR(CHRR,PAT$)
310 NEXT CHRR
320 REM CHR=CHRR
330 FOR CHSR=46 TO 50 !setup for creating stop and jump characters right
340 READ PAT$
350 CALL CHAR(CHSR,PAT$)
360 NEXT CHSR
370 FOR CHJR=51 TO 54 !setup for creating jumping characters right
380 READ PAT$
390 CALL CHAR(CHJR,PAT$)
400 NEXT CHJR
410 FOR CHLR=56 TO 56 !setup for creating landing characters right
420 READ PAT$
430 CALL CHAR(CHLR,PAT$)
440 NEXT CHLR
450 REM left running***********************
460 FOR CHRL=57 TO 62 !setup for creating running characters left
470 READ PAT$
480 CALL CHAR(CHRL,PAT$)
490 NEXT CHRL
500 FOR CHSL=63 TO 67 !setup for creating stop and jump characters left
510 READ PAT$
520 CALL CHAR(CHSL,PAT$)
530 NEXT CHSL
540 FOR CHJL=68 TO 71 !setup for creating jumping characters left
550 READ PAT$
560 CALL CHAR(CHJL,PAT$)
570 NEXT CHJL
580 FOR CHLL=72 TO 73 !setup for creating landing characters left
590 READ PAT$
600 CALL CHAR(CHLL,PAT$)
610 NEXT CHLL
620 CALL SPRITE(#1,CHRR,2,YP,XP,RS,CS)!create the runner and send running***What to assign chr***
630 FOR PT=40 TO 45 !setup for animating the run
640 CALL PATTERN(#1,PT)
650 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
660 IF S<>0 THEN 860 !nothing pressed for button keep running
670 IF JX<>0 THEN 780 !not joy pressed keep running
680 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
690 NEXT DELAY
700 NEXT PT
710 CALL POSITION(#1,YP,XP)!check position and store before stopping motion
720 GOTO 630
730 REM **************call joy and key checks*********
740 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
750 IF S=0 THEN 770 ELSE 860
760 !nothing pressed for button so skip next lines
770 IF JX=0 THEN 780 ELSE 950
780 REM ********Check direction and continue runing.***************
790 IF CS<>-6 THEN 820
800 CALL POSITION(#1,YP,XP)!get new position for next sprite
810 GOSUB 1680
820 IF CS<>6 THEN 740
830 CALL POSITION(#1,YP,XP)!get new position for next sprite
840 GOSUB 1550
850 GOTO 730 !after RETURN goto joyst check
860 REM ********jump routine check********
870 CALL MOTION(#1,0,0)
880 IF CS<>-6 THEN 910
890 CALL POSITION(#1,YP,XP)!get new position for next sprite
900 GOSUB 1280 ! goto run left
910 IF CS<>6 THEN 740
920 CALL POSITION(#1,YP,XP)!get new position for next sprite
930 GOSUB 1020 !goto run right
940 REM *******run check************
950 IF JX<>-4 THEN 980
960 CALL POSITION(#1,YP,XP)!get new position for next sprite
970 GOSUB 1680 !joyst left goto run left
980 IF JX<>4 THEN 1010
990 CALL POSITION(#1,YP,XP)!get new position for next sprite
1000 GOSUB 1550 !joyst right goto run right
1010 GOTO 740 !return to joyst check
1020 REM *************jump right routine******
1030 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running! right
1040 CALL SPRITE(#1,CHSR,2,YP,XP)!recreate sprite1 as stop and jump characters right
1050 FOR PT=46 TO 50 !setup stop and jump animation right
1060 CALL PATTERN(#1,PT)
1070 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1080 NEXT DELAY
1090 NEXT PT !continue animating the stop and jump until done right
1100 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping right
1110 CS=12 :: CALL SPRITE(#1,CHJR,2,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion right
1120 FOR PT=51 TO 54 !setup jumping characters right
1130 CALL PATTERN(#1,PT)
1140 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1150 NEXT DELAY
1160 NEXT PT
1170 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
1180 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
1190 CALL SPRITE(#1,CHLR,2,YP,XP)
1200 FOR PT=56 TO 56 !setup landing animation
1210 CALL PATTERN(#1,PT)
1220 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1230 NEXT DELAY
1240 NEXT PT ! continue landing animation until last frame
1250 CS=6 :: CALL MOTION(#1,0,CS)
1260 CALL POSITION(#1,YP,XP)!get new position for next sprite
1270 RETURN
1280 REM *************jump left routine*********
1290 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running!
1300 CALL SPRITE(#1,CHSL,2,YP,XP)!recreate sprite1 as stop and jump characters
1310 FOR PT=63 TO 67 !setup stop and jump animation
1320 CALL PATTERN(#1,PT)
1330 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1340 NEXT DELAY
1350 NEXT PT !continue animating the stop and jump until done
1360 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping
1370 CS=-12
1380 CALL SPRITE(#1,CHJL,2,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion
1390 FOR PT=68 TO 71 !setup jumping characters left
1400 CALL PATTERN(#1,PT)
1410 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1420 NEXT DELAY
1430 NEXT PT
1440 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
1450 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
1460 CALL SPRITE(#1,CHLL,2,YP,XP)
1470 FOR PT=72 TO 73 !setup landing animation left
1480 CALL PATTERN(#1,PT)
1490 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1500 NEXT DELAY
1510 NEXT PT ! continue landing animation until last frame
1520 CS=-6 :: CALL MOTION(#1,0,CS)
1530 CALL POSITION(#1,YP,XP)!get new position for next sprite
1540 RETURN
1550 REM ************run right routine********
1560 CS=6 :: CALL SPRITE(#1,CHRR,2,YP,XP,RS,CS)!create the runner and send running
1570 FOR PT=40 TO 45 !setup for animating the run
1580 CALL PATTERN(#1,PT)
1590 REM FOR DELAY=1 TO 2 !these delays adjusts animation frame rate to match desired rate.
1600 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1610 IF S<>0 THEN 1670 !nothing pressed for button keep running
1620 IF JX<>0 THEN 1670 !not joy pressed keep running
1630 REM NEXT DELAY
1640 NEXT PT
1650 CALL POSITION(#1,YP,XP)!check position and store before stopping motion
1660 GOTO 1570
1670 RETURN
1680 REM **********run left routine**************
1690 CS=-6 :: CALL SPRITE(#1,CHRL,2,YP,XP,RS,CS)!create the runner and send running
1700 FOR PT=57 TO 62 !setup for animating the run
1710 CALL PATTERN(#1,PT)
1720 REM FOR DELAY=1 TO 2 !these delays adjusts animation frame rate to match desired rate.
1730 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1740 IF S<>0 THEN 1800 !nothing pressed for button keep running
1750 IF JX<>0 THEN 1800 !not joy pressed keep running
1760 REM NEXT DELAY
1770 NEXT PT
1780 CALL POSITION(#1,YP,XP)!check position and store for next sprite
1790 GOTO 1700
1800 RETURN
 
  • Like 1
Link to comment
Share on other sites

New and improved running jumping man.

 
 
100 CALL CLEAR
110 YP=12 :: XP=15 :: RS=0 :: CS=16 !start position direction and velocity
120 !running patterns right
130 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
140 !stop and jump right
150 DATA 1818101010101018,000C1C3058081018,00000C1C305C1C18,0000060E183C0C18,0003070C18081018
160 !jumping right
170 DATA 0303040609081010,1818141810106000,1818103810180C00,1818503010180404
180 !landing right
190 DATA 0018183050180818,1818101038501018
200 !running patterns left
210 DATA 1818080808080818,1818183C3828640C,18583C7A58CC0206,18987E19384E8200,18987E1918284EC2,18181C7A1A38246C
220 !stop and jump left
230 DATA 1818080808080818,0030380C1A100818,000030380C3A3818,00006070183C3018,00C0E03018100818
240 !jumping left
250 DATA C0C0206090100808,1818281808080600,1818081C08183000,18180A0C08182020
260 !landing right
270 DATA 0018180C0A181018,181808081C0A0818
280 FOR CHRR=40 TO 45 !setup for creating running characters right
290 READ PAT$
300 CALL CHAR(CHRR,PAT$)
310 NEXT CHRR
320 REM CHR=CHRR
330 FOR CHSR=46 TO 50 !setup for creating stop and jump characters right
340 READ PAT$
350 CALL CHAR(CHSR,PAT$)
360 NEXT CHSR
370 FOR CHJR=51 TO 54 !setup for creating jumping characters right
380 READ PAT$
390 CALL CHAR(CHJR,PAT$)
400 NEXT CHJR
410 FOR CHLR=56 TO 56 !setup for creating landing characters right
420 READ PAT$
430 CALL CHAR(CHLR,PAT$)
440 NEXT CHLR
450 REM left running***********************
460 FOR CHRL=57 TO 62 !setup for creating running characters left
470 READ PAT$
480 CALL CHAR(CHRL,PAT$)
490 NEXT CHRL
500 FOR CHSL=63 TO 67 !setup for creating stop and jump characters left
510 READ PAT$
520 CALL CHAR(CHSL,PAT$)
530 NEXT CHSL
540 FOR CHJL=68 TO 71 !setup for creating jumping characters left
550 READ PAT$
560 CALL CHAR(CHJL,PAT$)
570 NEXT CHJL
580 FOR CHLL=72 TO 73 !setup for creating landing characters left
590 READ PAT$
600 CALL CHAR(CHLL,PAT$)
610 NEXT CHLL
620 REM******Create Sprite Idle********
630 CALL SPRITE(#1,CHRR,2,YP,XP)!create the runner and send running***What to assign chr***
640 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
650 IF S=0 THEN 1290 !nothing pressed for button keep running
660 REM ********jump routine check********
670 CALL MOTION(#1,0,0)
680 IF CS<>-16 THEN 720
690 CALL POSITION(#1,YP,XP)!get new position for next sprite
700 GOSUB 760 ! goto jump left
710 GOTO 620
720 IF CS<>16 THEN 1290
730 CALL POSITION(#1,YP,XP)!get new position for next sprite
740 GOSUB 1030 !goto jump right**************************
750 GOTO 620
760 REM *************jump left routine*********
770 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running!
780 CALL SPRITE(#1,CHSL,2,YP,XP)!recreate sprite1 as stop and jump characters
790 FOR PT=63 TO 67 !setup stop and jump animation
800 CALL PATTERN(#1,PT)
810 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
820 NEXT DELAY
830 NEXT PT !continue animating the stop and jump until done
840 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping
850 CS=-12
860 CALL SPRITE(#1,CHJL,2,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion
870 FOR PT=68 TO 71 !setup jumping characters left
880 CALL PATTERN(#1,PT)
890 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
900 NEXT DELAY
910 NEXT PT
920 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
930 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
940 CALL SPRITE(#1,CHLL,2,YP,XP)
950 FOR PT=72 TO 73 !setup landing animation left
960 CALL PATTERN(#1,PT)
970 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
980 NEXT DELAY
990 NEXT PT ! continue landing animation until last frame
1000 CS=-16 :: CALL MOTION(#1,0,CS)
1010 CALL POSITION(#1,YP,XP)!get new position for next sprite
1020 RETURN
1030 REM *************jump right routine******
1040 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running! right
1050 CALL SPRITE(#1,CHSR,2,YP,XP)!recreate sprite1 as stop and jump characters right
1060 FOR PT=46 TO 50 !setup stop and jump animation right
1070 CALL PATTERN(#1,PT)
1080 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1090 NEXT DELAY
1100 NEXT PT !continue animating the stop and jump until done right
1110 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping right
1120 CS=12 :: CALL SPRITE(#1,CHJR,2,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion right
1130 FOR PT=51 TO 54 !setup jumping characters right
1140 CALL PATTERN(#1,PT)
1150 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1160 NEXT DELAY
1170 NEXT PT
1180 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
1190 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
1200 CALL SPRITE(#1,CHLR,2,YP,XP)
1210 FOR PT=56 TO 56 !setup landing animation
1220 CALL PATTERN(#1,PT)
1230 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1240 NEXT DELAY
1250 NEXT PT ! continue landing animation until last frame
1260 CS=16 :: CALL MOTION(#1,0,CS)
1270 CALL POSITION(#1,YP,XP)!get new position for next sprite
1280 RETURN
1290 REM **************Check Joyst Options************
1300 IF JX<>0 THEN 1330
1310 CALL MOTION(#1,0,0)
1320 GOTO 640
1330 REM ********Check direction and continue running.***************
1340 IF JX<>-4 THEN 1370
1350 CALL POSITION(#1,YP,XP)!get new position for next sprite
1360 GOSUB 1550
1370 IF JX<>4 THEN 640
1380 CALL POSITION(#1,YP,XP)!get new position for next sprite
1390 GOSUB 1410
1400 GOTO 640 !after RETURN goto joyst check
1410 REM ************run right routine********
1420 CS=16 :: CALL SPRITE(#1,CHRR,2,YP,XP)!create the runner and send running
1430 CALL MOTION(#1,0,JX*4)
1440 FOR PT=40 TO 45 !setup for animating the run
1450 CALL PATTERN(#1,PT)
1460 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1470 REM IF S=0 THEN 1620 else 1670 !nothing pressed for button keep running
1480 IF JX=4 THEN 1510
1490 IF JX=0 THEN 1500 ELSE 1540 !not joy pressed keep running
1500 IF JX=-4 THEN 1540
1510 NEXT PT
1520 IF JX=4 THEN 1440
1530 CALL POSITION(#1,YP,XP)!check position and store before stopping motion
1540 RETURN
1550 REM **********run left routine**************
1560 CS=-16 :: CALL SPRITE(#1,CHRL,2,YP,XP)!create the runner and send running
1570 CALL MOTION(#1,0,JX*4)
1580 FOR PT=57 TO 62 !setup for animating the run
1590 CALL PATTERN(#1,PT)
1600 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1610 REM IF S=0 THEN 1750 else 1800 !nothing pressed for button keep running
1620 IF JX=-4 THEN 1650
1630 IF JX=0 THEN 1640 ELSE 1680 !not joy pressed keep running
1640 IF JX=4 THEN 1680
1650 NEXT PT
1660 IF JX=-4 THEN 1570
1670 CALL POSITION(#1,YP,XP)!check position and store for next sprite
1680 RETURN
 
 
  • Like 2
Link to comment
Share on other sites

Works best in emulation with CPU throttled way up.

Messing with "Bob"

100 DATA 4,2,1,5,2,1,6,2,1,7,2,1,8,2,1,9,2,1,10,2,1,11,2,1
110 DATA 12,2,1,13,2,1,14,2,1
120 DATA 57,"000080C0E0F0F8FC",58,"0000000000000000",59,"3F3F3F3F3F1F1F3F",60,"808080008080803F",61,"000000000000003F"
130 DATA 62,"1E1A1E050D050101",63,"60606040C2C2E1F3",64,"0F3F7FFEE4F1FFFF",65,"FFFFFF866622A091"
140 DATA 66,"F8FF7787171D5F1F",67,"0F0F4F4F4F4F4F0F",68,"DBFFEFC7A7A3A343",69,"FEFCF8FB0080E0F2"
150 DATA 70,"0707F3F3737B3E0C",72,"0000000000000000",73,"8080808080808080",74,"0C00000070F8FC9F",75,"00000000005EFFF7"
160 DATA 76,"0C00000000000000",77,"0000000000808080",78,"8080000000000000",80,"1C000000008387CD"
170 DATA 88,"0606060E0C2060F0",89,"73771F0F1E3F7FFF",90,"FCE1FF7FE0C0C0C0",91,"01C1C18303060C18"
180 DATA 92,"C080800000000000",93,"0F1F1F1F1F3F3F3F",94,"FFFFFFFFFF808000",95,"FFFFFFFFFF0E0000"
190 DATA 96,"FFFFFCF080000000",97,"FEBE3F1F1F1F1F2F",98,"3F3F3F3F3E3E1E1A",99,"FFC3FFFF7F4C030F"
200 DATA 100,"80C0C0E1E3E0E060",101,"7F70FEFFDD0D381C",102,"EF6F2727A7270706",103,"0103010101010000"
210 DATA 104,"0F077EF818F0E000",105,"F0F0F0606060C0C0",106,"F7E3C0C080000000",107,"C0FFFF0000000000"
220 DATA 108,"38F0E00000000000",112,"000000010307070F",113,"0000003844544834",114,"0000007844784844"
230 DATA 115,"0000003C40380478",116,"0000007C10101010",117,"0000004444444438",118,"0000004444282810"
240 DATA 119,"0000004444545428",120,"0000004428102844",121,"0000004428101010",122,"0000007C0810207C"
250 DATA 123,"0018202040202018",124,"0010101000101010",125,"0030080804080830",126,"0000205408000000"
260 DATA 32,24,16
270 DATA 112,64,65,66,57,58,58,58,58,58,58,58,58,58,58,58
280 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
290 DATA 93,94,95,96,97,77,58,58,58,58,58,58,58,58,58,58
300 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
310 DATA 59,60,72,61,67,73,58,58,58,58,58,58,58,58,58,58
320 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
330 DATA 98,99,100,101,102,78,58,58,58,58,58,58,58,58,58,58
340 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
350 DATA 62,80,63,74,88,58,58,58,58,58,58,58,58,58,58,58
360 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
370 DATA 103,68,69,104,105,58,58,58,58,58,58,58,58,58,58,58
380 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
390 DATA 75,89,90,91,92,58,58,58,58,58,58,58,58,58,58,58
400 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
410 DATA 70,106,107,108,58,58,58,58,58,58,58,58,58,58,58,58
420 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
430 DATA 76,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
440 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
450 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
460 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
470 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
480 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
490 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
500 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
510 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
520 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
530 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
540 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
550 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
560 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
570 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
580 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
590 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
600 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
610 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
620 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
630 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
640 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
650 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
660 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
670 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
680 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
690 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
700 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
710 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
720 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
730 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
740 DATA 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58
750 RESTORE 100 :: FOR C=1 TO 11 :: READ CS,CF,CB :: CALL COLOR(CS,CF,CB):: NEXT C
760 RESTORE 120 :: FOR C=1 TO 56 :: READ CN,CC$ :: CALL CHAR(CN,CC$):: NEXT C
770 RESTORE 260
780 READ W,H,SC :: CALL SCREEN(SC)
790 FOR Y=1 TO H
800 FOR X=1 TO W
810 READ CP :: CALL VCHAR(Y,X,CP)
820 NEXT X
830 NEXT Y
840 RESTORE 100 :: FOR C=1 TO 11 :: READ CS,CF,CB :: CALL COLOR(CS,CF,CB):: NEXT C
850 RESTORE 120 :: FOR C=1 TO 56 :: READ CN,CC$ :: CALL CHAR(CN,CC$):: NEXT C
860 RESTORE 260
870 READ W,H,SC :: CALL SCREEN(SC)
880 FOR Y=10 TO H
890 FOR X=1 TO W
900 READ CP :: CALL VCHAR(Y,X,CP)
910 NEXT X
920 NEXT Y
930 RESTORE 100 :: FOR C=1 TO 11 :: READ CS,CF,CB :: CALL COLOR(CS,CF,CB):: NEXT C
940 RESTORE 120 :: FOR C=1 TO 56 :: READ CN,CC$ :: CALL CHAR(CN,CC$):: NEXT C
950 RESTORE 260
960 READ W,H,SC :: CALL SCREEN(SC)
970 FOR Y=1 TO H
980 FOR X=1 TO 10
990 READ CP :: CALL VCHAR(Y,X,CP)
1000 NEXT X
1010 NEXT Y
1020 CALL CLEAR
1030 CALL CHAR(40,"070E1F1D181E1F0B",41,"090F0B0507363D38",42,"F0B8BCDC0C3C7C28",43,"08B8E830D020C000")
1035 CM=4
1040 RANDOMIZE
1050 X=INT(RND*255)+1
1060 Y=INT(RND*195)+1
1070 CALL SPRITE(#1,40,2,Y,X,Y/100,X/100)
1080 X=INT(RND*255)+1
1090 Y=INT(RND*195)+1
1100 CALL SPRITE(#2,40,2,Y,X,-Y/100,-X/100)
1110 X=INT(RND*255)+1
1120 Y=INT(RND*195)+1
1130 CALL SPRITE(#3,40,2,Y,X,-Y/100,X/100)
1140 X=INT(RND*255)+1
1150 Y=INT(RND*195)+1
1160 CALL SPRITE(#4,40,2,Y,X,Y/100,-X/100)
1180 TB=1
1190 FOR BOB=1 TO 13
1195 
1200 TB=TB+1
1210 PRINT TAB(TB);"p@AB9 p@AB9 p@AB9 p@AB9"
1220 GOSUB 1420
1230 PRINT TAB(TB);"]^_`aM ]^_`aM ]^_`aM ]^_`aM"
1240 GOSUB 1420
1250 PRINT TAB(TB);";<H=CI ;<H=CI ;<H=CI ;<H=CI"
1260 GOSUB 1420
1270 PRINT TAB(TB);"bcdefN bcdefN bcdefN bcdefN"
1280 GOSUB 1420
1290 PRINT TAB(TB);">P?JX >P?JX >P?JX >P?JX"
1300 GOSUB 1420
1310 PRINT TAB(TB);"gDEhi gDEhi gDEhi gDEhi"
1320 GOSUB 1420
1330 PRINT TAB(TB);"KYZ[\ KYZ[\ KYZ[\ KYZ[\"
1340 GOSUB 1420
1350 PRINT TAB(TB);"Fjkl Fjkl Fjkl Fjkl"
1360 GOSUB 1420
1370 PRINT TAB(TB);"L L L L"
1390 REM FOR DELAY=1 TO 1000::NEXT DELAY
1400 NEXT BOB
1401 if CM=4 then cm=3 else cm=4
1405 call magnify(cm)
1410 GOTO 1050
1420 FOR FC=1 TO 15
1430 FOR CLR=4 TO 12 :: CALL COLOR(CLR,FC,1):: NEXT CLR
1440 CALL SCREEN(SC):: SC=SC-1
1450 NEXT FC
1460 SC=16
1465 if CM=4 then cm=3 else cm=4
1466 call magnify(cm)
1470 RETURN
  • Like 3
Link to comment
Share on other sites

Messing with Bob in post #21 has 2 lines that cause the compiler to crash: Line 1401 and line 1465 which are the same code:

 

1401 if CM=4 then cm=3 else cm=4 The compiler will only accept IF THEN ELSE statements as used in TI BASIC. I changed this to be:

 

1401 CM=4+(CM=4) and did the same for line 1465 and the program compiles and runs fine. (And fast!)

 

How does this statement work? In your line, CM should always become 4 unless it already is 4, in which case it should become 3. In my line (CM=4) is -1 if true, but is 0 if not true. So CM will become 4 with 1 subtracted only if CM already is a 4.

If that method is too obscure you can always do something like this:

1401 IF CM=4 THEN 1402::CM=4::GOTO 1405

1402 CM=3

1405 program continues...

  • Like 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...