What about "Darl's Demon?"LOL sure
You should call this game "Maxwell's Demon" ;)
On IRC a couple of days ago (just after I hacked my Casio) i mentioned one of the games I saw on casiocalc.org (look for "BallGame" on this (http://www.casiocalc.org/to/fsdisplay.php?cat2disp=FS.FX-9860G.casm#totitle) page).
The object is to move the gap in the dividing wall up and down to sort the balls: black on the left, white on the right. Once you win, you can try again with one more ball than before.
It chooses black/white at random so it may be unbalanced.
Collision detection with the wall can be better, I'm kind of at a loss about what's causing the problems for the moment :P
I might spice up some graphics as well.
I also need to come up with a better title...
TWHG is still going, I'm just taking a break from it.
EDIT: Update here. (V2) (http://ourl.ca/8025/145084)
Awaiting a 8xp to play a lot ;)Look at the bottom of the post it links to ;)
Thanks for the suppost, all :)
Quote from: ScoutDavidAwaiting a 8xp to play a lot ;)Look at the bottom of the post it links to ;)
Have an update, just need to screenshot and post a poll.
@Querty: Yes, you can do that (I've done it as well) but where's the fun in that though? :P
There's an 8xp below the screenshot.
One idea (but it would be a hard difficulty) is to have a vertical and horizontal slider, so 4 regions and 4 colors/shapes of balls.I actually had an idea like that at first, maybe if I add menus it could be an extreme mode or something ;)
Planned for next update: a menu, hopefully with some options (hole can go off the field, two walls going through the middle, ability for full speed mode)
If I get really into this, I might also do power-ups or something ;)
THat would actually be cool. I wonder how hard it would be to implement?
collison codeDo you mean with the center wall, and the perpendicular center wall going horizontal?
Um...the walls kind of have to move for the concept of the game to work.
Unless...
I don't plan on making the actual walls to move, it would kind of be overkill.
Just the holes.
Making the balls collide with each other would probably seriously slow down the gameplay, think about the amount of times it would have to draw each frame to pxl-Test them all...especially when the person starts getting to 10-something balls.
The way axe always rounds down is killing me with the bar on top now...time for me to learn the floating-point or whatever it is :P
I've kind of made a sort of universal menu in a subroutine so I don't have to code the same menu 5-10 times :P
It's in the Axe parser thread.
I'm working on options, which will have to involve an appvar or SMC. And that kind of stuff can get complicated really fast if you don't plan ahead of time and know exactly what you want to add before you add it...
this looks really cool so far, dude! keep up the great work on this!
I'll probably make it slower, and the player can select the speed to go at through the Options menu. Normal speed="fast"
Full isn't ruled out yet either...
Unfortunately, I may end up having to take out the bar altogether because as of yet I can't think of a good way (read: easy) to implement them in the ideas (mockups above (http://ourl.ca/8025/146338))
Most of the time, I prefer to do small updates so if people want something in particular the development can kind of swerve from one thing to another, but it looks like I won't be able to do much of that on this, so, big updates :P
On a different note, what would people like to see in the options menu? So far I have speed, initial # of balls, # balls added each game, and amount of types of balls (2-4 planned)...maybe "difficulties" which set all the options to different levels...
Anything else?
Ball collision between each others migth be kinda hard to implement for the ones that are not black. I worry about the amount of pxl-test detection that would be needed for white balls.
Anyway keep up the good work!
In the past, I tried to make an effect like this to see how it would turn out...RAM clear. Instantly.
And for a game like this, which can get pretty complex...
It's possible, just highly impractical :P
Think about it. How many times would I have to make the program loop through (TWHG loops to 96 ~4 times, which slows it down tremendously) to pxl-test all of the balls, and adjust any directions and such accordingly? On top of that, I would have to put in a separate loop to find if something changed or not and update the positions. The thing about walls...they're static. The balls aren't.
(not to mention how much space it would take...:P)
I plan on adding some rather simpler stuff than that.
What you'll probably see is little things on other boards that are part of it...like the menu thing was my attemt at making a menu sysem that didn't take up a huge amount of space, or the character explorer which I've been using for months and it just occured to me yesterday to post it.
The update may not come for a few weeks for all I know...but it will probably be an unfortunately big one...I plan on doing something like the mockups as soon as I'm done with the menus.
EDIT speaking of mockups...look what I found
I was busy last night, and I think I have the menu done, the backgrounds for the different modes done, and the game about menu-ready. So now, I just need to put it all together ;D
In the next few days...coordinates inflated by 64 take me a while to work with for some reason...
coordinate inflated by 64... what do you mean? Do you mean ball positions is 64 times larger than it appears on screen for more accurate collision detection?Not quite. It was how I figured out to do the varying angles the balls go at. The speed is an inflated number as well.
yay! I hope a menu comes soon, what options available at the moment?See for yourself ;) ↓↓↓
coordinate inflated by 64... what do you mean? Do you mean ball positions is 64 times larger than it appears on screen for more accurate collision detection?Not quite. It was how I figured out to do the varying angles the balls go at. The speed is an inflated number as well.yay! I hope a menu comes soon, what options available at the moment?See for yourself ;) ↓↓↓
The first one is the menu interface, doesn't store anything yet.
The second one has potential backgrounds for the different types.
And yes, these ones are real :P
At this point, I'm planning on taking out the progress bar altogether. I tried adding something like it to the four-part field and it bugged and slowed down quite noticeably...
Any other options ideas?
You select quit. After setting an option, it goes to the options menu.
On another note, how does one remove a poll from a topic?
The second screenshot waits until the person press any key, and if it's not 2, 3 or 4, it quits.
The menu is planned, I just did the thing in the second one to clarify which mode went with which type.
It looks like I'll have to change the code so it redraws everything every frame, unless there's a way to do two extra buffers or store a greyscale background externally...;)
Or i can have it xor the balls back into nothing, I'm trying to think of a fast way to do it so what happened to TWHG (3-4 giant loops per frame) won't happen to this.
Update: I just need to fix the display issue ↑, involve an appvar and put the game in the menu.
The bar on top is done with, it slowed it down too much (now with greyscale and such) and it interfered with the design of the 3-type/4-type fields.>:( It looks a lot cleaner without it.
(One would hope the person would know when they're close to winning, anyway :P)
GetCalc("TempBuff",1536)→P
For(A,0,767
!If {P+A}
{P+A}→{L6+A}
.or
.{P+A+768}→{L3+A}
End
End
DispGraph
.or with r or rr modifiers
...?
.# represents the 16-bit or operation
L₆→A
While -768-L₆
{A}ʳ#{A+P-L₆}ʳ→{A}ʳ+1→A
End
The second screenshot waits until the person press any key, and if it's not 2, 3 or 4, it quits.I see, good luck. For extra buffers you can add a buffer at the end of your game, but that means the game would be 768 bytes larger for each additional screen buffers.
The menu is planned, I just did the thing in the second one to clarify which mode went with which type. In the menu, it's determined by the option "Types of balls".
It looks like I'll have to change the code so it redraws everything every frame, unless there's a way to do two extra buffers or store a greyscale background externally...;)
Or i can have it xor the balls back into nothing, I'm trying to think of a fast way to do it so what happened to TWHG (3-4 giant loops per frame) won't happen to this.
Update: I just need to fix the display issue ↑, involve an appvar and put the game in the menu.
The bar on top is done with, it slowed it down too much (now with greyscale and such) and it interfered with the design of the 3-type/4-type fields.>:( It looks a lot cleaner without it.
(One would hope the person would know when they're close to winning, anyway :P)
It doesn't say done, it says ERR:UNDEFINED.
Another thing. Every time it does that, about 2K of RAM disappears.
OS is definitely corrupted. Just tried graphing Y=2 and it just showed the run indicator on top. For minutes on end.
I'll probably be able to send stuff (MSD8X works) I'm just trying to think of a simple and practical way to do it.
I got the files on the comp, I just wasn't able to get to sending the OS yet./me glances at the library's timed sessions
This might mean a delay in development for a short while...
:banghead:
It's because a lot of Omni users got restrictive patents that won't allow them to go on any website related to games. In USA it got 10x worse in the past 3 years. Back in the Omnimaga Invisionfree days, I don't recall that many people on calc forums having parent filter problems.
Finally, able to fix the blasted OS. :P
Provided i don't run into any more calc and/or TiLP problems, progress will continue.
"MAXWELL"→Str1
GetCalc(Str1,5)→P
:banghead:Wow I definitively think your calc is bricked or it has an hardware issue. ANyway I hope it won't hinder your programming in long terms...I don't think it's bricked, it just may have been written differently early on (BOOT code 1.02, letter on back is B) and it's probably just TI being TI.
And to add on to that, my 84 thinks it's an 83 for some reason, and will only take a limited number of apps, which seems to fluctuate at random...even after I re-sent the OS./me RAWRS at TI
Oh, forgot something. In the menu, I tried to make it so the Full option under Speed only shows up on 15 mhz-compatible calcs. Can someone confirm that it doesn't show up?
Would difficulty levels simply be presets of options?Correct. This would make the criteria for the high scores fair.
High scores would only be enabled on the preset settings, so yes.That would be a nice idea. What about adding bonus points for enabling options that increases difficulty, like in Forza Motorsport series for Xbox 360?
What I can do to add on to that is allow it so if the person happens to set the options manually so it's the same as a given difficulty level, the program would detect that and go into the difficulty mode.
I just tried this on-calc and it was pretty great although it was really hard. I pretty much gave up on the 3 type of balls mode. X.x
Will upload here in a sec...Done.
Is it a game where you must turn OFF all blocks successfully?Yes. Tio stood for turn it off.
Stuff can look pretty fine even in monochrome sometimes.Wow, the timing's just perfect...
I don't think I've explained the editor controls yet...
[Y=] Start block
[WINDOW] Finish block
[ZOOM] Respawn block (if you die or press Alpha)
[TRACE] Enemies, static but if you touch them you die
While getKey(#):End
even if I put a pause in there.0→D
For(B,0,14
B*4→Y
For(A,0,23
A*4→X
.stuff
D+1→D
End
End
or this...For(D,0,359
D/24→Y
D-(Y*24)4→X
Y*4→Y
.stuff
End
add hl,hl
add hl,hl
so that if I try to draw a certain type of block over the same type of block, the one below won't be deleted?So, you mean nothing would happen, it would just skip over it?
Quoteso that if I try to draw a certain type of block over the same type of block, the one below won't be deleted?So, you mean nothing would happen, it would just skip over it?
And take out the wraparound, I can do that. Maybe when I split the game and level editor apart, I can make an options menu for each or something.
Actually, come to think of it, in the next release i can put comments in the source telling what part does what, say instead of If X>>24:0→X:End it would be If X>>24:24→X:End
#Realloc(12,
to#Realloc(12)
and it worked fine, except for the menu
Quoteso that if I try to draw a certain type of block over the same type of block, the one below won't be deleted?So, you mean nothing would happen, it would just skip over it?
And take out the wraparound, I can do that. Maybe when I split the game and level editor apart, I can make an options menu for each or something.
Actually, come to think of it, in the next release i can put comments in the source telling what part does what, say instead of If X>>24:0→X:End it would be If X>>24:24→X:End
Yeah, skip it would be perfect!
I also think that we could be able to make maps without the black blocks below. Not sure if others agree, though. What I think is, if you fall, you die.
Also, the wrapping around would be perfect too.
Copy(P,L1,384)
1→{L1+384}r
Fill({L1+384},24)
This should make the bottom row of the screen like the ground but it doesn't work ???"appvEXAMPLE"→Str1
GetCalc(Str1)→P
{P-2}r→A
.two-byte number
A is the size of the appvar, IIRC?
Argh, typing on my calc gets more and more annoying, some of the keys keep on sticking :mad:You might want to ask this in another thread, so people won't miss this again. X.x
How do you open a calc? I can get the screws out, but I dont want to make some sort of stupid mistake trying to open it :P so I'd rather be sure.
Thi is kind of urgent...
Added:
major optimizations (thanks go to squidgetx )
conveyor belt tiles
water tiles
level editor GUI change. Now, press alpha to select tiles.
bottom row is editable
included is a format fixer to add the bottom row to the appvar
"appvTIOLVL00"?Str1
L+48?{Str1+7}
.L is level #
GetCalc(Str1)->D
.D is pointer
Tio 5.Strange, the forum is setup to accept 10 ???. Your computer definitively have lots of issues. X.x
Added:
major optimizations (thanks go to squidgetx ;D)
conveyor belt tiles
water tiles
level editor GUI change. Now, press alpha to select tiles.
bottom row is editable
included is a format fixer to add the bottom row to the appvar
important: STIO5E is needed to compile as well as STIO5.
TIOLVLFX is source code.
Weird...it'll only accept up to three attachments :P
Screenshots in the next post.
Y/4*24+(X/4)+L1->G
Y/4*24+(X+3/4)+L1->F
Basically what it does, is it reduces your pixel coordinates to tile coordinates (the divide by 4). The Y value is multiplied by 24 because that's how wide the map is (It's now treated as a simple array). I use two values to check which tile the left and right side of the character is in. And now you can add or subtract from F and G to get different tiles; eg {F+24} is like adding one row's worth, and hence one tile down.:.DTILEMPR
:[F0F0F0F000000000]→Pic0N
:[A0A0505000000000]→Pic1J
:[6040206000000000]→Pic1S
:[6040604000000000]→Pic1F
:[9000009000000000]→Pic1R
:[A050A05000000000]→Pic1D
:[000C030000000000]→Pic1W
:DiagnosticOff
:"vTIOLVL"→Str1
:GetCalc(Str1)→P
:Return!If P
:conj(P,L1,384
:0→N→O→I→J-1→E
:.I and J are coordinates of top left corner
:.N and O are tile offsets
:
:ClrDraw
:.draw init image
:For(Y,0,15
:Y*4→T
:For(X,0,23
:X*4→S
:E+1→E
:sub(DRW
:End
:End
:DispGraph
:Repeat getKey(15)
:Repeat getKey(0):End
:If getKey(54)
:ClrHome
:.display stuff
:Disp "random info",i,"I",I►Dec," J",J►Dec,i,"N",N►Dec," O",O►Dec
:While getKey(54):Pause 10:End
:End
:
:If getKey(1) xor (getKey(4))
:.vert movement
:O+getKey(4)-getKey(1)→O
:If O>>3:J-1→J:O-4→O:End
:If O<<0:J+1→J:O+4→O:End
:If getKey(4)
:.up
:Vertical +
:For(A,0,23
:A*4-N→S
:0-O→T
:J*24+I+A→E
:sub(DRW
:End
:End
:If getKey(1)
:.down
:Vertical -
:For(A,0,23
:A*4-N→S
:64-O→T
:J*24+I+A+360→E
:sub(DRW
:End
:End
:End
:
:If getKey(2) xor (getKey(3))
:.horiz movement
:N+getKey(2)-getKey(3)→N
:If N>>3:I-1→I:N-4→N:End
:If N<<0:I+1→I:N+4→N:End
:If getKey(2)
:.left
:Horizontal +
:For(A,0,15
:0-N→S
:A*4-O→T
:J*24+I+(A*24)→E
:sub(DRW
:End
:End
:
:If getKey(3)
:.right
:Horizontal -
:For(A,0,15
:96-N→S
:A*4-O→T
:J*24+I+(A+1*24)→E
:sub(DRW
:End
:End
:
:End
:DispGraph
:End
:
:
:Lbl DRW
:Pt-On(S,T,Pic0N
:Pt-Change(S,T,Pic0N
:.pt-on stuff
:!If {L1+E}-1
:Pt-On(S,T,Pic0N
:Else!If {L1+E}-2
:Pt-On(S,T,Pic1J
:Else!If {L1+E}-3
:Pt-On(S,T,Pic1S
:Else!If {L1+E}-4
:Pt-On(S,T,Pic1F
:Else!If {L1+E}-5
:Pt-On(S,T,Pic1R
:Else!If {L1+E}-6
:Pt-On(S,T,Pic1D
:Else!If {L1+E}-7
:Pt-On(S,T,Pic1W
:End
:.Return
The plain grey ones kill you instantly :D. The thing that's really cool about them is that they actually aren't grey, they're really a 2 frame animated checkerboard tile! That's really a pretty cool way to do it, Darl, props. Also, when I post it tells me that the max number of attachments is 50 :oYeah I know. When I made Reuben Quest I actually did grayscale like that: by swapping a checkered pattern extremly fast to create an illusion of gray. That's similar to Axe's 3 lv grayscale actually.
Anyway. Yeah, so if you look at the code, it's basically an optimized version ofCode: [Select]Y/4*24+(X/4)+L1->G
Basically what it does, is it reduces your pixel coordinates to tile coordinates (the divide by 4). The Y value is multiplied by 24 because that's how wide the map is (It's now treated as a simple array). I use two values to check which tile the left and right side of the character is in. And now you can add or subtract from F and G to get different tiles; eg {F+24} is like adding one row's worth, and hence one tile down.
Y/4*24+(X+3/4)+L1->F
inData is a smaller way of doing If var=something or (var=something else) I believe the line reads If inData({F}+1,[040600])? So since both values 3 and 5 are respawn points, it checks if the current tile is either 3 or 5. But the data needs to be zero-terminated, which is why I added the +1 there. (and then scaled up the appropriate values)
For(A,0,12) //For 13 columns...
For(B,0,8) //For 9 rows...
{Y/8 //Take the Y position, divide by 8 to get the tile offset
-4 //But the character is in the middle of the screen, so -4 tiles worth
+B*32 //Add tilemapper's Y value, then multiply by 32 because that's how many tiles wide my maps are
+(X/8+A)-6 //Same as before but with X
+L1}->C //Level data is stored in L1
Pt-On(A*8-(X^8),B*8-(Y^8),C-1*8+Pic1 //X^8 and Y^8 are the pixel offsets of the player
End
End
End
getKey(3)-getKey(2)+A //If right, +1. If left, -1
!If +1 //If A+1=0, that is, if A = -1. Right now, hl=A+1
+1 //+1 to value in HL
End
-1 //Before, hl=A+1. So we have to -1 to it. If A=-1 before, now the value in HL=0
min(,max value)->A //Leaving the first argument blank inserts hl in. So basically, this compares A and the maximum value and returns the smaller one.
:.DTILEMPR
:[F0F0F0F000000000]→Pic0N
:[A0A0505000000000]→Pic1J
:[6040206000000000]→Pic1S
:[6040604000000000]→Pic1F
:[9000009000000000]→Pic1R
:[A050A05000000000]→Pic1D
:[000C030000000000]→Pic1W
:DiagnosticOff
:"vTIOLVL"→Str1
:GetCalc(Str1)→P
:Return!If P
:conj(P,L1,384
:0→N→O→I→J-1→E
:.I and J are coordinates of top left corner
:.N and O are tile offsets
:
:ClrDraw
:.draw init image
:For(Y,0,15
:Y*4→T
:For(X,0,23
:X*4→S
:E+1→E
:sub(DRW
:End
:End
:DispGraph
:Repeat getKey(15)
:Repeat getKey(0):End
:If getKey(54)
:ClrHome
:.display stuff
:Disp "random info",i,"I",I►Dec," J",J►Dec,i,"N",N►Dec," O",O►Dec
:While getKey(54):Pause 10:End
:End
:
:If getKey(1) xor (getKey(4))
:.vert movement
:
:If getKey(4)
:Vertical +
:O+1→O
:If O>>3
:J-1→J
:O-4→O
:For(A,0,23
:A*4-N→S
:0-O→T
:J*24+I+A→E
:sub(DRW
:End
:End
:End
:
:If getKey(1)
:Vertical -
:O-1→O
:If O<<1
:J+1→J
:O+4→O
:For(A,0,23
:A*4-N→S
:64-O→T
:J*24+I+A+360→E
:sub(DRW
:End
:End
:End
:
:End
:
:If getKey(2) xor (getKey(3))
:.horiz movement
:If getKey(2)
:Horizontal +
:N+1→N
:If N>>3
:N-4→N
:I-1→I
:For(A,0,15
:0-N→S
:A*4-O→T
:J*24+I+(A*24)→E
:sub(DRW
:End
:End
:End
:If getKey(3)
:Horizontal -
:N-1→N
:If N<<1
:N+4→N
:I+1→I
:For(A,0,15
:96-N→S
:A*4-O→T
:J*24+I+(A+1*24)→E
:sub(DRW
:End
:End
:End
:
:
:
:End
:DispGraph
:End
:
:
:Lbl DRW
:Pt-On(S,T,Pic0N
:Pt-Change(S,T,Pic0N
:.pt-on stuff
:!If {L1+E}-1
:Pt-On(S,T,Pic0N
:Else!If {L1+E}-2
:Pt-On(S,T,Pic1J
:Else!If {L1+E}-3
:Pt-On(S,T,Pic1S
:Else!If {L1+E}-4
:Pt-On(S,T,Pic1F
:Else!If {L1+E}-5
:Pt-On(S,T,Pic1R
:Else!If {L1+E}-6
:Pt-On(S,T,Pic1D
:Else!If {L1+E}-7
:Pt-On(S,T,Pic1W
:End
:.Return
Code: (Original code) [Select] :.DTILEMPR | Code: (Modified code) [Select] :.DTILEMPR |
Awesomeness, it works!!! :w00t: ;D(http://www.omnimaga.org/Themes/default/images/gpbp_arrow_up.gif) :hyper:
Thanks ;D
Now I just need to come up with a way to do this in the editor, and prolly by v8 or so there will be scrolling fully implemented!
EDIT: ok, apparently post rating doesn't work in this proxy...:P
(http://www.omnimaga.org/index.php?action=dlattach;topic=5428.0;attach=6246;image)No, at least I don't think that's what it's going to be.
This is the Scrolling Engine in the Editor? WHAT A BLAST.
:...
:i and j are the top left corner of the map
:h is height
:m is width
:p in the appvar pointer
:vars count from zero
:...
:GetCalc(Str1,H+1*(M+1))→P
:For(A,0,H
:
:.1 is a solid block
:1→{P+A}
:1→{H+1*M+P+A}
:End
:For(A,0,M
:1→{M+1*A+P}
:1→{M+1*A+P+M}
:End
:
:.pre-define start and finish to avoid crashes--how ironic :P
:3→{M+1*P+1}
:4→{M+1*P+2
:End
:While getKey(54):Pause 10:End
:End
:H*M→R
:GetCalc(Str1,R+2)→P
:H→{P}
:M→{P+1}
:P+2→P
:0→{P}
:Fill(P,R
:
:For(A,0,M-1
:
:.TOP
:1→{P+A}
:
:.BOTTOM
:1→{M-1*H+1+P+A}
:
:End
:For(A,0,H-1
:
:.LEFT
:1→{A*M+P}
:
:.RIGHT
:1→{A*M+P+M-1}
:
:End
Last night, I added tiles that, once you step on top of them (they function the same as the solid black floor tiles), a timer starts.
After 10 frames, the tile disappears, to reappear in 30 frames.
So, next it door/key, and after that I don't have any more ideas, except for something that breaks if you fall on top of it at terminal velocity or something :P
Also I need to optimize at some point, but I'm going to get more stuff added before that.
Those temporary tiles look sweet :)Thanks ;D
better menu;)
I'm thinking of making a title screen that has some effect actually relevant to the game--any ideas?...And bug reports, if any :P
Also ideas relating to options and tiles are appreciated ;D
:.TIOSCREN
:Full
:[EE8AAEAAEA000000]→Pic1GM:[AEE8EEA8AE000000]
:[EE88EE28EE000000]→Pic1SL:[8E888E88EE000000]:[EE848484E4000000]
:[EAAAAAEA6E000000]→Pic1QT:[EE444444E4000000]
:[EEAAAEA8E8000000]→Pic1OP:[EE4444444E000000]:[ECAAAAAAEA000000]:[E080E020E0000000]
:ClrDraw
:[FEFDFBF7EFDFBD7F]→Str1
:Fix 5
:0→θ→A→B
:Repeat getKey(15)
:.T
:ref(22,8,16,4
:ref(28,12,4,12
:.I
:ref(40,8,16,4
:ref(40,20,16,4
:ref(46,12,4,8
:.O
:ref(58,8,16,4
:ref(58,20,16,4
:ref(58,12,4,8
:ref(70,12,4,8
:
:!If θ
:StorePic
:1→θ
:End
:!If B
:If getKey(3) xor getKey(2)
:1→B
:A+getKey(3)-getKey(2)→A
:If A>>3:0→A:End:If A<<0:3→A:End
:End
:End
:!If getKey(2)+getKey(3)
:0→B
:End
:If A
:sub(MNU,0,0
:End
:If A-1
:sub(MNU,1,0
:End
:If A-2
:sub(MNU,2,0
:End
:If A-3
:sub(MNU,3,0
:End
:
:.FIRE
:For(F,L6+12,L6+372
:.+756 IS NORMAL
:{F} and {rand^8+Str1}→{F-12}
:End
:
:.RAIN
:L6+756→F
:While F-L6-384
:.TAKE OUT THE +384 FOR WHOLE SCREEN RAINING
:F-1→F
:ReturnIf getKey(15)
:{F} and {rand^8+Str1}→{F+12}
:End
:
:sub(MNU,A,0
:DrawInv
:Normal
:DispGraphr
:Full
:DrawInv
:sub(MNU,A,1
:End
:Fix 4
:
:Lbl MNU
:!If r1
:Pt-On(7,38,Pic1GM
:Pt-On(15,38,8+Pic1GM
:If r2
:ref(7,38,16,5
:rref(7,38,16,5
:End
:End
:!If r1-1
:Pt-On(30,38,Pic1SL
:Pt-On(38,38,8+Pic1SL
:Pt-On(46,38,16+Pic1SL
:If r2
:ref(30,38,24,5
:rref(30,38,24,5
:End
:End
:!If r1-2
:Pt-On(60,38,Pic1OP
:Pt-On(68,38,8+Pic1OP
:Pt-On(76,38,16+Pic1OP
:Pt-On(84,38,24+Pic1OP
:If r2
:ref(60,38,32,5
:rref(60,38,32,5
:End
:End
:!If r1-3
:Pt-On(41,50,Pic1QT
:Pt-On(49,50,8+Pic1QT
:If r2
:ref(41,50,16,5
:rref(41,50,16,5
:End
:End
:.Return
Okay, the ideas I have so far for levelsets are these:
Consider it done:
■ All stages go in the same appvar.
■ Player can switch between stages in-game by pressing [+] and [-] and same goes for editor
■ Pressing [◄]/[►] in the level select menu switches between selecting individual levels and levelsets.
■ Atm the idea for max # of levels in a set is 20 (which is really more than anyone needs, but it can easily be changed)
■ In the editor, it will be possible to import individual levels into the levelset
■ Add stage, delete stage, etc. Will be tricky but I'll get it figured out
■ Error messages in selecting: "Levelset does not exist" etc.
■ Same as above for original levels
Tentative:
• Password detection
• Some sort of compression
• If I have the time and space under the 8811 limit it may also be possible to load a stage from a levelset to create an individual level
• In-game transitions
• Stats for bronze/silver/gold finishes (unlikely)
• Random awards
I think you should keep the fire/water title screen; it's really, really epic. ;DWow, record number of times "epic" used in one post? :crazy:
I get a chance to try this today. ;) I'm sure it'll be epic. :D
Edit: Yeah, this is epic. Where are the built in levels though?
I probably won't be able to add it all, but I should be able to do the entire "consider it done" list. Figured out how to structure the appvars so far, and I'm working on a subroutine to add/remove levels from a levelset.[big list]
If you do all that, PURE EPICNESS:
I think you should keep the fire/water title screen; it's really, really epic. ;DWow, record number of times "epic" used in one post? :crazy:
I get a chance to try this today. ;) I'm sure it'll be epic. :D
Edit: Yeah, this is epic. Where are the built in levels though?
As for the levels, they're all external. There's one attached here (http://www.omnimaga.org/index.php?action=dlattach;topic=5428.0;attach=6670) (a simple demo, not made for playability but more for messing around with the tiles), another (actually game-like) here (http://www.omnimaga.org/index.php?action=dlattach;topic=5428.0;attach=6761), and a hard one here (http://www.omnimaga.org/index.php?action=dlattach;topic=5428.0;attach=6786). Have fun :D
btw you can easily make your own levels using the editor ;)I probably won't be able to add it all, but I should be able to do the entire "consider it done" list. Figured out how to structure the appvars so far, and I'm working on a subroutine to add/remove levels from a levelset.[big list]
If you do all that, PURE EPICNESS:
what, you can use L1-L6 in apps lolReally, I thought those were SMC or something, I heard somewhere that apps couldn't use them.
Zeros(100)->W
.....
1->{W}
...
That level looks fantabulous and that greyscale looks pretty perfect!Thanks!
It would only be SMC if you were referencing a pointer to within the program. Like...Good to know, thanksCode: [Select]Zeros(100)->W
.....
1->{W}
...
:..
:{r6-2}r→Q
:.so Q is the size
:!If r1-1
:.INSERT
:.inserts level at current point, moving the rest of the levels forward a level slot (384 bytes)
:GetCalc(Str0T,Q)→B
:GetCalc(Str0L)→C
:copy(C,B,Q)
:GetCalc(Str0L,Q+384)→C
:copy(B,C,Q)
:31337→{Q+384→Q+C+1}r
:End
:!If r1-2
:.DELETE
:.deletes currently selected level, brings back levels afterwards one level slot
:Q-384→Q
:GetCalc(Str0T,Q)→B
:GetCalc(Str0L)→C
:copy(C,B,Q)
:GetCalc(Str0L,Q)→C
:copy(B,C,Q)
:31337→{Q+r6}r
:End
This code is giving me problems to the extreme...
I tried it and after it instantly crashed the RAM I thought it might be more prudent to get some proofreading in :P
I made a typewith.me of the code.
So, thanks in advance, and http://typewith.me/QAp3pI4Cj8 ;D
Tried it last night. I only tested moving around the pointer to change the level, and something activated the level creating/deleting code, which by the way made a 31K appvar that, upon recall to TIOS, caused the BLOD and a RAM clear. So yeah, I think I'm going to need some help with this :P
In other news, got level switching working in the game, no BLODs or whatever, fortunately.
EDIT: the typewith.me went down, so up went an etherpad. http://etherpad.mozilla.org:9000/3DGcJ1sDcZ
Yeah, I'm going to need some help with this...
Did anyone else (that's still active in calcs that is :P) get this concept to work? I've looked around and as of yet I'm not really seeing anything...
Progress is being made, I'm almost done with levelsets. I'm also considering putting in switch type 2/door type 2, which work indepentently from the current ones but the same way. Levelsets get priority, tho.I'm glad this is still being worked on. Looks awesome by the way. I hope you can sort your Axe issues soon. Ask in the Axe section if you need any help and I'm sure people will be glad to help.And in response to the poll, I'm on the course of fixing up the source so instead of using L# tokens (which iirc won't work in apps because of SMC) to an external appvar named TEMP or something.nvm
Also, made another level in math today. This one is more puzzle-oriented than difficulty-oriented, but there are some harder parts, esp. near the end.
(http://www.omnimaga.org/index.php?action=dlattach;topic=5428.0;attach=6927;image)
I like those little arcade games you made near the beginning of the thread. Those look fun!Thanks! I actually need to buckle down and get some readmes written for them so i could put them on ticalc...
If [going back one slot]
If P-r6
P-384→P
End
End
If [going forward]
If {P+383}r-31337
P+384→P
End
End
The editor won't go past the end, but will go before the start of the var.x.x
Is the old computer still around or did he recycle it or something?
Idk, at one point I figured rather than make a new thread for every mini-game (pretty much all I was making for a while) I'd just combine them into one big thread. After a while I just got used to it and put pretty much everything in one thread, tho i've started separating (ie ds in its own topic) :P
Another idea I've been playing around with--physics platformer SHUMP. Can't say I've seen many of those, and I could imagine it being interesting to make...
Probably not different levels or a released editor, just one giant map with something endurance challenge-style or something. Maybe a sword or dagger as a backup weapon when you run out of ammo and need to get to the pickup ;D
Topic: YAMGT (Read 11111 times)^_^
It'd be cool if the bullets hit each other and deflected each other sort've like in Devil May Cry XDI played around with that a bit while making Maxwell's Demon, it's quite the slowdown x.x
X>>[Right] ?64-Θ→Θ
X<<[Left] ?64-Θ→Θ
Y>>[bottom]?-Θ→Θ
Y<<[top] ?-Θ→Θ