Actually, yes. the second screenshot, just before it hits the multi-ball blocks. it passes upwards through two blocks...
Idk, I haven't really played many breakout games, only the one a Blackberries. ;) IMO this game is good enough as it is, though. ;)except, of course, only having one level :P
Hmmm... what would the score be based on?
Actually having the powerups drop down from the hit block on-screen?... you're kidding, right?Yea, I'm not sure how else you would do it. That's how the break clones that have power ups work. A couple of power-ups I've seen are mulitball, longer paddle, shorter power, or gun(gives you a couple of shots that fire directly upwards and destroy a block on impact)
Yes, it really does (the power-ups dropping down), but it'd be really interesting to code, I think. 10 a hit might do well. 2x damage... well that could work, but certainly not easy.Hmmm... what would the score be based on?
Something like 10 a hit would work nicely.
And as for powerups, it'd be cool to have features like temporarily making the ball go really fast and hit for twice as much damage. I have seen Breakout games with powerups dropping from the hit block, and that sometimes adds a lot to the game because you have to catch it...
maybe have it create random levels?Actually in one of my earlier versions (I'd say v.40) it did that. But I think for the sake of testing, one constant level works better... also the random levels were 8x8 blocks of blocks, and that lagged with only 1 ball... imagine 2 or 3 :P
This looks really nice! ^^I guess that'd work... but the score counter would look like... what?Actually having the powerups drop down from the hit block on-screen?... you're kidding, right?Yea, I'm not sure how else you would do it. That's how the break clones that have power ups work. A couple of power-ups I've seen are mulitball, longer paddle, shorter power, or gun(gives you a couple of shots that fire directly upwards and destroy a block on impact)
As for score, different style blocks usually give a different amount of points.
Wow that,s nice. I especially like the multi-ball support. Will there be a faster mode with fewer balls too?I'm not sure what you mean there. It's running at max speed as is. If I only allowed for one ball, yes, it would run faster. Or are you saying actually make the ball move twice as fast?
But if each block give a certain amount of points, wont the score for every level (READ: After you have hit every single block!) be the same?three words: multipliers.
lookitsacompetentprogrammer! ;Dyes^ ;)
But if each block give a certain amount of points, wont the score for every level (READ: After you have hit every single block!) be the same?
But if each block give a certain amount of points, wont the score for every level (READ: After you have hit every single block!) be the same?
It wouldn't have to be for a couple of reasons:
1. Not all levels would need to have the same number of blocks.
2. Different blocks can have different point values. IE some blocks take multiple hits to destroy and would be worth more points(other clones have done this).
3. Powerups. Power ups could affect point values also. Say for example he added a gun powerup that allowed you 3 free shots, (where if a bullet hits a block it destroys the block) he could make it so that blocks destroyed in this manner did not give points since they are essentially freebies.
Just some thoughts anyways. =)
What do you think? should the power-ups be random? should I use different icons for each power-up?Great job on this, and in my opinion, yes and yes. :D
Powerups look great! Why did it seem to go blank somewhere in the third screenie, though?lol thats the teacher key. ALPHA, in case anybody was wondering. It clears the screen in emergency situations, for example, your math teacher walks by...
What do you think? should the power-ups be random? should I use different icons for each power-up?Great job on this, and in my opinion, yes and yes. :D
Nice job on this version. :) I think it would be helpful to have multiple images for the falling power ups so you can know which is which. ;D
This will definitely be on my to-download list when it's finished.Me too. In fact, I think it's better than Ping. ;D
Wow looks great! I'll download the new version now. :)lol that should be much easier on you now ;)
EDIT: Awesome game! However, I was bored and this is what happened ;D
Btw question: why does the paddle move this fast when there are many balls at once? Or is it just in 15 MHz mode (like I added to create this screenshot)
*bookmarks* Looks great! "Bomb" blocks (that destroy blocks near them, even if they're normally unbreakable) shouldn't be too hard to implement...haven't seen your code tho, so I don't know. We're all behind you!The first time I read this I was almost laughing... then I realized that it really wouldn't be that hard...
Bomb blocks would be cool. For the editor, you could always go with the Mario style one: scroll through the different types with two keys, or select the block from a listWhen I said "another control scheme", that is exactly what I had in mind. ;)
capping it at 9 would be fine, although I guess you could maybe change the control scheme and have people just select the block they want to insert. By the way what will be the max rows of blocks in a level?Wow looks great! I'll download the new version now. :)lol that should be much easier on you now ;)
EDIT: Awesome game! However, I was bored and this is what happened ;DBtw question: why does the paddle move this fast when there are many balls at once? Or is it just in 15 MHz mode (like I added to create this screenshot)
Actually, neither. I figured with many balls on the screen it'd be harder to keep them all on, so I made paddle_speed = 1 + Number_of_balls to compensate. Now that I think about it, a cap would be nice.Spoiler For Spoiler:*bookmarks* Looks great! "Bomb" blocks (that destroy blocks near them, even if they're normally unbreakable) shouldn't be too hard to implement...haven't seen your code tho, so I don't know. We're all behind you!The first time I read this I was almost laughing... then I realized that it really wouldn't be that hard...
It's certainly a possibility.
The question is: I have blocks 0-7. Should I cap it at 9, or find more keys/another control scheme for the editor?
capping it at 9 would be fine, although I guess you could maybe change the control scheme and have people just select the block they want to insert. By the way what will be the max rows of blocks in a level?For the max paddle movement: I chose 5.
0->{A-3}->{A-2}
fails, as does!If X
...
ElseIf X=1
...
ElseIf X=2
...
End
That throws a ERR: BLOCK.If X=0
...
ElseIf X=1
...
Else
...
End
Disp <Score>,i,"65535 times ",<Var>
With <var> incrementing by 1 each 65535 or something.
I spent about half an hour in endless mode....Whoa. I never really expected it to be possible to make it loop... I'll probably think of something. (like using one variable for the lower 4 digits and another for the upper, max 655,359,990) I thought the paddle-size power-downs would make up for the lack of a cap... they seem far more common than their happy counterparts to me. :P
A few limits might help to keep the game challenging and interesting.
1) Paddle width--after a while it was wider than the screen, so you could just leave it and/or watch the score increase ;D
2) # of balls limit--there were about 20 by the time I got tired of it
3) some way to keep track of the score if it goes over 65535. It looped six or seven times :PCode: [Select]Disp <Score>,i,"65535 times ",<Var>
With <var> incrementing by 1 each 65535 or something.
Yeah I think at one point you need to delete the program then compile the source from archive. That said, I can't wait to see what you will come up with in updates.Actually it wasn't that big, I just had to archive the source before running. Also, I pulled a battery, and for some odd reason it freed up some more ram ??? Probably should have another look at my saving routine... (should I be using delvar?)
Weird, I would do a backup somewhere like a computer in case, though.
EDIT: By the way what do you mean by bomb blocks being out? Do you mean you will not implement them?
Code: [Select]!If X
That throws a ERR: BLOCK.
...
ElseIf X=1
...
ElseIf X=2
...
End
Also, Rect( doesn't work well with negatives.Spoiler For upcoming content:
And finally, I was pleasantly suprised that this works:Code: [Select]If X=0
...
ElseIf X=1
...
Else
...
End
Weird, I would do a backup somewhere like a computer in case, though.
EDIT: By the way what do you mean by bomb blocks being out? Do you mean you will not implement them?
Exactly what I meant... But now I'm having even more problems: I'm getting 'ERR: INVALID' when I try to run it... (no, I'm not trying to run the source :P, and yes, I am using 'Asm('. Isn't there a max program size or something? It isn't 8k, is it?)
also, I have exhausted the whole alphabet :(Are you already using L1?
8811, to be exact.Quotealso, I have exhausted the whole alphabet :(Are you already using L1?
I'm using 0.4.5 :PCode: [Select]!If X
That throws a ERR: BLOCK.
...
ElseIf X=1
...
ElseIf X=2
...
End
Also, Rect( doesn't work well with negatives.Spoiler For upcoming content:
And finally, I was pleasantly suprised that this works:Code: [Select]If X=0
...
ElseIf X=1
...
Else
...
End
That's a bug that should have been fixed in Axe 0.4.5... What version are you using?Weird, I would do a backup somewhere like a computer in case, though.
EDIT: By the way what do you mean by bomb blocks being out? Do you mean you will not implement them?
Exactly what I meant... But now I'm having even more problems: I'm getting 'ERR: INVALID' when I try to run it... (no, I'm not trying to run the source :P, and yes, I am using 'Asm('. Isn't there a max program size or something? It isn't 8k, is it?)
If it's more than 8192 bytes, the OS refuses to run it with Asm(.
8811, to be exact.Quotealso, I have exhausted the whole alphabet :(Are you already using L1?
No, 8811 is the number of bytes that you can run from a shell. With Asm(, you can only run 8192 bytes. Any more and the OS gives you an ERR:INVALID.
well then who wants to optimize some code ;D I don't have any experience in it, and my minor attempts so far have failed dramatically.
I actually have very little data in here. Most of my graphics are Rect(/RectI( commands.
Just a couple tips for anybody who wants to take this on:
It's mostly uncommented. All I have are section headers.
The Output( statement immediately after the second DispGraphr was for debugging, it's what pushed me over the limit :P
any volunteers?
If I=1
!If I-1
well then who wants to optimize some code ;D I don't have any experience in it, and my minor attempts so far have failed dramatically.
I actually have very little data in here. Most of my graphics are Rect(/RectI( commands.
Just a couple tips for anybody who wants to take this on:
It's mostly uncommented. All I have are section headers.
The Output( statement immediately after the second DispGraphr was for debugging, it's what pushed me over the limit :P
any volunteers?
Hmm, let's see.
All If statements that say something likeCode: (Axe) [Select]If I=1
can be optimized toCode: (Axe) [Select]!If I-1
and it'll save several bytes. (I think there were certain conditions where you couldn't do that, but I don't remember what. They're not important, anyway ;D)
:0→F
:0→N
:0→V
:0→F→N→V
:C*3+C→E
:C*4→E
Lol forgot about that one :PCode: (Axe) [Select]:0→F→N→V
And any reason you're doingI don't think I'm using that anywhere, justCode: (Axe) [Select]:C*3+C→E
? It's a lot more optimized withCode: (Axe) [Select]:C*4→E
:C*3+L2->E
I don't think I'm using that anywhere, justCode: [Select]:C*3+L2->E
: !If rand^5
:P+1→P*3+L4→E
:rand^4→{E-2}
:{A-1}+4→{E-1}
:{A}→{E}
: End
:C*3+C→E
:If {B}-{A}≥≥‾1 and (K≠1)
:1→{B-2}
:If {B}-{A}≥≥‾1 and (K≠1)
:→{B-2}
I don't think I'm using that anywhere, justCode: [Select]:C*3+L2->E
It's here:Code: (Axe) [Select]: !If rand^5
:P+1→P*3+L4→E
:rand^4→{E-2}
:{A-1}+4→{E-1}
:{A}→{E}
: End
:C*3+C→E
Also: major improvements can be made if I can Copy(xx,Y1,yy) Is this possible? I'm afraid to test it :/You can not store directly to archive, so that's impossible. :-\
Oh and one more, am I asking too many questions? ???Nah, it's cool. The more questions you ask, the more everyone learns. ;D
Also: major improvements can be made if I can Copy(xx,Y1,yy) Is this possible? I'm afraid to test it :/You can not store directly to archive, so that's impossible. :-\Oh and one more, am I asking too many questions? ???Nah, it's cool. The more questions you ask, the more everyone learns. ;D
I believe doing it that way it possible, but I'm only 80% sure as I've never tried it. :)Ok then does Unarchive return a pointer? Don't want to throw in an unnecessary GetCalc routine... :/
We observe the mentality of pushing you in the right direction and then letting you gain some experience yourself ;) Of course if you are totally lost or if we can give a few more pointers, we'll be happy :)No thanks. My program uses too many already :P
Ok so when score reaches 10000 it increases the second variable? Sounds interesting. I wonder how do you display them? I think I tried such thing before and failed. File size seems pretty nice so far. Keep up the good work and I hope you can solve the issues you are having.Well thats why it increases the second variable when it hits 10000 instead of 65535 or 60000.
:Output(4,0,S>Dec)
:If Q
:Output(0,0,Q>Dec)
:End
:.blocks
:{B-3}->U
:For(D,1,C) //for each block
:D*3+L2->A //get pointer to block info
: If Z+1 //every other frame...
: irrelevant code here
: End
: If the ball hit block D
: do stuff with the ball's velocity and the score
: 0->F->N->V
: C->{L2}
:Lbl DX
: If {A-2}=0 or ({A-2}=8) or ({A-2}=9) //destruction routines for different blocks
: ...
: ElseIf {A-2}=10 //start of problem code
: C*3+L2->D //I need to keep track of the block's info
: Exch(D-2,A-2,3) //so I use Exch
: C-1->C //to destroy the block
: For(E,1,C) //for each block
: E*3+L2->A //get block info
: If the blocks are close enough
: N+1->N+({L2}*3)+L2->F //pointer to open table space
: E->{F} //store a link
: End
: End //the destruction routines can mess up my links
: SortD({L2}*3+L2+1,N) //so I have to go in order.
: For(D,1,N) //for each table entry,
: If {{L2}*3+D+L2}*3+L2-A //If it doesnt link to the same block as the last one
: +A->A //store the link in A
: V+1->V //tell the destruction routine we need to return
: sub(DX) //I know it all works at least to here
: End
: End
: 0->D //no idea as to which blocks it has & hasn't hittested...
: ->N //list is empty
: ElseIf {A-2}<=7
: ...
: End
: If V //If we need to return
: V-1->V //then we return
: Return
: End
: End
:End
True, I didn't make the connection about the difference of a number for !If .Oh and one more, am I asking too many questions? ???Nah, it's cool. The more questions you ask, the more everyone learns. ;D
Block type 10 is having major problems... :(What will that be? The C4/chain reaction block?
I really need some answers.
Is !If X-56 also an optimisation?
What if I have compound If statements? I know splitting them up saves speed, but what about space?
Lastly, should I be using DelVar in my save routine? I do have to overwrite the appvar every time I save...
We observe the mentality of pushing you in the right direction and then letting you gain some experience yourself ;) Of course if you are totally lost or if we can give a few more pointers, we'll be happy :)No thanks. My program uses too many already :P
I spent about half an hour in endless mode.I kind of replicated it, but didn't get nearly as far this time :P
A few limits might help to keep the game challenging and interesting.
1) Paddle width--after a while it was wider than the screen, so you could just leave it and/or watch the score increase ;D
2) # of balls limit--there were about 20 by the time I got tired of it
3) some way to keep track of the score if it goes over 65535. It looped six or seven times :PCode: [Select]Disp <Score>,i,"65535 times ",<Var>
With <var> incrementing by 1 each 65535 or something.
yup. it just crashes my calc when it tries to return...I think I have an idea what the problem is. I noticed that when the ball just barely clips the corner of the block, it doesn't cause problems. So I think it may be having trouble deleting the C4 block.
That's a great idea! I've been wondering how to do this. :D Thanks. ;DOk so when score reaches 10000 it increases the second variable? Sounds interesting. I wonder how do you display them? I think I tried such thing before and failed. File size seems pretty nice so far. Keep up the good work and I hope you can solve the issues you are having.Well thats why it increases the second variable when it hits 10000 instead of 65535 or 60000.Code: [Select]:Output(4,0,S>Dec)
:If Q
:Output(0,0,Q>Dec)
:End
Lol I found a minor problem with that code. take 10010 for example. It'll outputThat's a great idea! I've been wondering how to do this. :D Thanks. ;DOk so when score reaches 10000 it increases the second variable? Sounds interesting. I wonder how do you display them? I think I tried such thing before and failed. File size seems pretty nice so far. Keep up the good work and I hope you can solve the issues you are having.Well thats why it increases the second variable when it hits 10000 instead of 65535 or 60000.Code: [Select]:Output(4,0,S>Dec)
:If Q
:Output(0,0,Q>Dec)
:End
1 10so a minor modification:
:Output(4,0,Q=/=0*10000+S>Dec)
:If Q
:Output(0,0,Q>Dec)
:End
Adding 10000 forces it to display all the zeros :DGlad to hear it's working. :)Well actually I'm not sure. The game exited to the os. I pushed enter, and the whole screen became an almost-blue black. I've never actually seen the test mode, so that might've been just contrast 64, but I was gonna pull the battery either way.
@Darl181 I think he means test mode blue screen. The one that can damage the screen if left like that for a minute.
I don't know how it worked, but something i did made the screen turn blue, but I can't remember what it was...Remember that? I think I still have that program :P
EDIT....
here it isCode: [Select]Repeat 1=2
If getKey=15
Goto E
End
-1→B
62→A
Repeat A>62
Shade(A)
A+B→A
If A<1
-B→B
End
End
End
Lbl E
Shade(47)
Glad to hear it's working. :)What I don't get is the "test mode" part. Is this something TIOS does?
@Darl181 I think he means test mode blue screen. The one that can damage the screen if left like that for a minute.
Beat this :P :Hmm, how long did that take?
Spoiler For hoo wantz dem updateses? ;D:
Beat this :P :
Aw you limited the amount of balls :(. I loved having OVER 9000 on the screen. J/k, but is it because of memory limitations? It seemed to run pretty fine with like 30 at once. ??? It was just hard to keep them all in the screen. :PMemory limitations? A ball takes up 4 bytes in memory. I have them stuck one on top of another in L1 how many balls can I have then? :P (EDIT: ran the numbers, I can have 178 at a time ;))
I'll try this when I get some time. :)
No the problem was writing to random bytes in ram then returning to TI-OS. ;DI don't know how it worked, but something i did made the screen turn blue, but I can't remember what it was...Remember that? I think I still have that program :P
EDIT....
here it isCode: [Select]Repeat 1=2
If getKey=15
Goto E
End
-1→B
62→A
Repeat A>62
Shade(A)
A+B→A
If A<1
-B→B
End
End
End
Lbl E
Shade(47)
No. It's a particular mode of the lcd driver that puts lots of random blue lines on the screen and potentially (i'm pretty sure it's unconfirmed) damages your screen.Glad to hear it's working. :)What I don't get is the "test mode" part. Is this something TIOS does?
@Darl181 I think he means test mode blue screen. The one that can damage the screen if left like that for a minute.
Also, great to see the update ;D... I wasn't really watching the time. I paused a couple times in the middle, and all I really know is that I ended up with that number at the end of the school day.QuoteBeat this :P :Hmm, how long did that take?
OK, downloaded and sent to calc.
I don't really enjoy debugging, just finding the bugs :PSpoiler For hoo wantz dem updateses? ;D:
Beat this :P :
Nice! You must be enjoying debugging a lot ;)
/me forgot to check the readme againWow that's a big number... a 20 bit number to be exact
So, 2nd and the number... now I know :P
Oh, and I got 610980. Tip: don't try to play in a poorly lit room and try to record it with a digital camera at the same time, playing it by watching the camera screen.
Also, the contrast sets itself to 45 when you exit that mode, which I find to be a decent number. If you don't like that, please tell me :P (note, for those of you inexperienced in axe/asm, reading the contrast value is not possible, so no maintaining it, sry) (at least not in axe without hex codes)
Shade({ᴇ8447}ʳ+24)
So many smileys...Okay sorry if I was a little unclear, but how would you select C4 block (#10) with that control scheme?
So, I'll need to clarify this, because it isn't working. To select a different block in the level editor, you hold 2nd and press the number while it's held down, right? If that's the case, it isn't working.
After the score gets to the max, it just loops I guess?
And for the teacher key contrast thing, I've found from playing Simul that changing the contrast once you're back in TIOS restores it to what it was before.
Wow I forgot that the OS saved your previous contrast setting, thanks! :)Also, the contrast sets itself to 45 when you exit that mode, which I find to be a decent number. If you don't like that, please tell me :P (note, for those of you inexperienced in axe/asm, reading the contrast value is not possible, so no maintaining it, sry) (at least not in axe without hex codes)
It's actually very simple to return the contrast to the value it was previously set to, without any need for assembly. To change the contrast value to what the user had it set to:Code: [Select]Shade({ᴇ8447}ʳ+24)
Ah cool to hear. I like intense stuff a lot. :PAw you limited the amount of balls :(. I loved having OVER 9000 on the screen. J/k, but is it because of memory limitations? It seemed to run pretty fine with like 30 at once. ??? It was just hard to keep them all in the screen. :PMemory limitations? A ball takes up 4 bytes in memory. I have them stuck one on top of another in L1 how many balls can I have then? :P (EDIT: ran the numbers, I can have 178 at a time ;))
I'll try this when I get some time. :)
It was because it got far too easy in endless mode if you had 50 balls on screen :P
As I said, I consider it a temporary measure. I fully intend to remove the cap eventually ;)
The test mode sends an overly high amount of energy to the LCD which causes it to turn blue, and it can damage the screen. I don't know why this was included.
The test mode sends an overly high amount of energy to the LCD which causes it to turn blue, and it can damage the screen. I don't know why this was included.Ah cool to hear. I like intense stuff a lot. :PAw you limited the amount of balls :(. I loved having OVER 9000 on the screen. J/k, but is it because of memory limitations? It seemed to run pretty fine with like 30 at once. ??? It was just hard to keep them all in the screen. :PMemory limitations? A ball takes up 4 bytes in memory. I have them stuck one on top of another in L1 how many balls can I have then? :P (EDIT: ran the numbers, I can have 178 at a time ;))
I'll try this when I get some time. :)
It was because it got far too easy in endless mode if you had 50 balls on screen :P
As I said, I consider it a temporary measure. I fully intend to remove the cap eventually ;)
Btw I love the endless mode. Maybe there could be an endless mode where additional ball blocks are more frequent but it scrolls down 4 times faster? ;D
The test mode sends an overly high amount of energy to the LCD which causes it to turn blue, and it can damage the screen. I don't know why this was included.
It's probably how they test the drivers in the production factory.
You could always make it an app if you wanted, you get double the file size that way ^^
[000102030405]->Str1
9->{Str1+5} //cant do that!
[000102030405]->Str1
Copy(Str1,L1,6) //copy it to some free ram, but you cant copy back
9->{L1+5}
Its easy :) Just go to options, and select Application under 'shell'. The only difference between apps and programs is you can't modify any data that you create in your program. ie: you cant do this:Code: [Select][000102030405]->Str1
9->{Str1+5} //cant do that!
you have to do this insteadCode: [Select][000102030405]->Str1
Copy(Str1,L1,6) //copy it to some free ram, but you cant copy back
9->{L1+5}
Well I'm sure I don't do that anywhere...
... Actually SMC is possible but not realistically :P I know that...
You're giving me a headache just thinking about the debugging :(
I think the editor should be separate. Some people may not want to create levels and will prefer a smaller file in that case. I don't think the play button will work, though.
GetCalc(prgmBREAKOUT)
Asm(jp hl)
... on second thought that won't work. It'll mess up all my pointers. :'(
Well I'm sure I don't do that anywhere...
... Actually SMC is possible but not realistically :P I know that...
SMC is easier to write than you might think. It's debugging that's the pain :P
1: I have 7 things to say:
2: No, even though I have been idle for about a week, I didn't leave :P Just no comp access...
3: This project ain't dead yet. Just a bug I couldn't find.
4: The bug was idiotically wiping my flags variable on the start of the game, immidiately after setting a flag.
5: along with a fully functional extreme mode, I'm pretty sure I added something, and I will most likely upload all that tomorrow.
6: Would you prefer an app to a program?
7: I really only have 6 things to say ;D
If not, there's always:Code: [Select]GetCalc(prgmBREAKOUT)
... on second thought that won't work. It'll mess up all my pointers. :'(
Asm(jp hl)
I think I'll just make two versions: split programs, and an app.If not, there's always:Code: [Select]GetCalc(prgmBREAKOUT)
... on second thought that won't work. It'll mess up all my pointers. :'(
Asm(jp hl)
There's a b_call(ExecProg) or something like that that does that ... you'll have to move the program name to a particular spot in memory before you do that, though.
I knew there was something I left out! I changed the winning and Game Over screens! :o
Sorry for forgetting to list that in the update list and readme.
Guess its about time to get me a ticalc account? ;D
I got 9020.What?! But that's OVER
This is great. Well done Lookit'san00b! ;DI got 9020.What?! But that's OVERmy high score9000! ;D
Well it has version 1.00. 1.00 means it's finished, normally. :P (unless there are bugs)Do you think I have enough space in my app (I've used 9000) for that soundtrack? :P
Can't wait for next version! By the way, in case you only check the forums project/axe sections and not the front page news, I made a Youtube video of the endless mode. ;D
Lol that song would take like 4 calcs worth of flash memory XD. It would have to be converted (composed from scratch as well) into axe format to fit, and it would slow the game down a lot).If only there was a midi version...
What do you mean about the 4 page apps thing? ??? Your game should be 1 page large (16 KB on calc and up to 33 KB on the comp)
2 player Breakout clone would be great. I like both ideas as well. Maybe also have a power-up that inverts the blocks position too (or is that what you mean by warp block?)?aaw... :'( but I liked them looking the same... ._. <_<
Also in future versions it would be nice if all power ups looked differently. For example, ° sometimes makes ball go through blocks and other times they move twice faster, but it gets confusing sometimes. :(