As a sort of introductory project for myself, I've been making a platformer that runs entirely in ASCII on the homescreen. I have three levels completed so far, and working on a fourth (the fourth level is drastically different from the rest [because I discovered xLIBC around then], so the code is pretty messy as of now. I'll fix it when I finish making the level work)

(note: health does nothing as of now)

Download here

Screenshots:

Level 1


Level 2


Level 3


Level 4 (in progress - uses xLIBC's GetKey command, which is wayy more efficient than TIOS's)


The platforms in every level are randomly generated to an extent.
--
BUGS/GLITCHES
    - Sometimes, Level 1's top platform will show up too far to the right and throw an ERR: INVALID DIM. This is easy to fix, but I'm too lazy to do it so for now you'll have to quit and reenter the program.
    - Level 2's bottom platform will sometimes not appear. Again, an easy fix that I'm putting off for later.
    - In a similar vein, when Level 2's bottom platform appears as it did in the screenshot above, it's sometimes possible to just jump up through the platform on the left and get to the immediately.
    - Jumping up while on the top row (row 1) of the screen on any level will result in an ERR: INVALID DIM. I know why this happens, but any attempts to fix it completely screw up jumping so I'll have to leave it alone for now.
    - [minor] If a platform is at just the right height, sometimes you'll be able to jump through but not over it and make an I disappear from the platform without actually landing on it. This is demonstrated in Level 2's screenshot gif above.


--
(If you're wondering, the name came from me messing around with making a sprite move: first came MOVE1 [used the graph screen+the Draw() command], then MOVE2 [four-direction homescreen movement], and the platformer ended up being named MOVE3.)
Progress on Level 4!



(that's not me moving the square- it moves automatically if it's touching the platform!)
Update- Level 4 is now finished!


I'll refrain from posting to the archives for now, because a) the last update to it was stupid as level 4 wasn't actually finished, and b) the code is still a huge mess, and I want to fix it.
It'll probably be up in a day or two, though!
Oh, that is neat! So the little block moves with you; you just have to control moving it upwards? Nice gameplay idea! Smile
Is there any way to avoid having to re-copy the code for moving the square every single time I have a loop?

This is an example (written in sort-of-pseudocode to save time, sorry if it's hard to understand)

Code:

Repeat 0
getKey→K
If K=24:Then
Move right
End
If K=25:Then
"I'm using matrix [A] for collision detection; a value of 2 is a wall, 1 is the floor. A and B are the character's coordinates
"
Repeat [A](A-1,B)=2
Move up one
End
Repeat [A](A+1,B)=1
Move down one
End
End
If K=26:Then
Move left
End


Simple enough, right? Let's say, though, that I want to add a platform on row 6 that moves, like in level 4 of this game. That simple code becomes this:


Code:

Repeat 0
getKey→K
If K=24:Then
Move right
End
End
If K=25:Then
Repeat [A](A-1,B)=2
Move up one
End
Repeat [A](A+1,B)=1
Move down one
End
End
If K=26:Then
Move left
End
Repeat [platform hits a wall]
Output(6,platform left," "
0→[A](6,platform left
Output(6,platform right,"I"
1→[A](6,platform right
"platform moving will interrupt the getKey script
"
getKey→K
If K=24:Then
Move right
End
End
If K=25:Then
Repeat [A](A-1,B)=2
Move up one
"character jumping will interrupt the platform script
"
Output(6,platform left," "
0→[A](6,platform left
Output(6,platform right,"I"
1→[A](6,platform right
End
Repeat [A](A+1,B)=1
Move down one
"character falling will interrupt the platform script
"
Output(6,platform left," "
0→[A](6,platform left
Output(6,platform right,"I"
1→[A](6,platform right
End
End
If K=26:Then
Move left
End
End
Repeat [platform hits a wall]
Output(6,platform right," "
0→[A](6,platform right
Output(6,platform left,"I"
1→[A](6,platform left
getKey→K
If K=24:Then
Move right
End
End
If K=25:Then
Repeat [A](A-1,B)=2
Move up one
Output(6,platform right," "
0→[A](6,platform right
Output(6,platform left,"I"
1→[A](6,platform left
End
Repeat [A](A+1,B)=1
Move down one
Output(6,platform right," "
0→[A](6,platform right
Output(6,platform left,"I"
1→[A](6,platform left
End
End
If K=26:Then
Move left
End
End
End


It's obviously huge, and I honestly doubt that it's necessary... is there any shortcut to doing something like this that I'm unaware of?
--
MateoConLechuga wrote:
Oh, that is neat! So the little block moves with you; you just have to control moving it upwards? Nice gameplay idea! Smile

Pretty much, yeah. Thanks!
I'm now working on the final level, actually, so that's cool

Super-secret final level sneak peek!
Haha, that last level is just fun to watch. Smile How goes progress with this? It is a pretty nifty idea; how did you come about it?
MateoConLechuga wrote:
Haha, that last level is just fun to watch. Smile How goes progress with this? It is a pretty nifty idea; how did you come about it?


I've sorta started procrastinating it (as you can see by [url=http://www.cemetech.net/forum/viewtopic.php?t=11360]my other projects[/url) but I do have a plan in mind for what I want to do with the boss level.

Speaking of which, here's a new screenie:


(the w's are vines)

There's going to be at least five rooms (one of which you'll be able to access by climbing the vines), and you'll have to go through each of them, then get to the boss's tail to do... something. I haven't quite figured that out yet, to be honest. But yeah, that'll be it!

Not sure if by 'how did you come about it' you mean the game as a whole or the boss level, but the game was mostly an introductory thing for me (I started it like two days after I first learned about TI-BASIC, with pretty much no tutorials) and as such, the code is pretty unoptimized.
The boss level, on the other hand, was started on a whim because i felt like I had to wrap up the project and I was bored in math class, so I had time to draw the boss. I'll hopefully be done with the game soonishly.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement