Jump to content
atari2600land

Jezzball

Recommended Posts

I'm working on a version of Jezzball. To make a line vertically, press fire. To make a line horizontally, press fire+left or fire+right and then fire. The cursor will change to indicate whether you'll make a line horizontally or vertically. If you're in the middle of making a line vertically and the ball hits it, the game will reset (normally, you'd lose a life.) I can't get it to do the same thing horizontally. Maybe someone can help me with this.

jezzball.bas.bin

jezzball.bas

Share this post


Link to post
Share on other sites

OK... I've looked at the code, and I'd say the bug lies in the setting of the variable o, which gets set to the current pfpixel column / row of the ball in order to check for a collision with the wall being drawn.

The problem is here that you're basically checking the coordinate under the ball. At the moment the ball hits the playfield, it's basically still not on the pfpixel of the wall, but on the adjacent one to it. So the calculations you're doing:

 

if !c{1} then o=(missile0x-17)/4 else o=(missile0y-1)/4

 

are flawed. To be correct, you should subtract another 8 pixels from missile0x before doing the calculation if the ball is flying left, but add them to missile0x if the ball is flying right. Likewise, 2 pixels should be subtracted / added to/from the missile0y variable depending on if the ball is flying left or right.

By the way, I would only calculate this if the collision has occured, not every frame like you are doing it now.

So I would replace the line above by roughly the following:

 

if c{1} then goto check_collision_1

 

if n{0} !! n{1} then o = (missile0x-9)/4 else o = (missile0x-25) / 4

 

goto check_collision_2

 

check_collision_1

 

if n{0} !! n{3} then o = (missile0y+1)/4 else o = (missile0y-3) / 4

 

check_collision_2

 

Note: I haven't tested this, but I think it would work this way.

 

Oh, and here's another version of your original source code... I added some comments to it. Actually, I would find it helpful if you would comment your code like that if you want other people to help you so they can see better what different parts of the code are supposed to do.

jezzball.bas

Edited by Kurt_Woloch

Share this post


Link to post
Share on other sites

I've been working on this since before Kurt added remarks, so I copied some remarks in.

bB doesn't seem to like the double exclamation points. I've also added some better cursor movement. You can now go anywhere because in the future, there will be a maximum of 4 balls (missile0, player1, missile1, and ball). I know there's more than that in the Microsoft version, but the 2600 does have limitations.

jezzball2.bas.bin

jezzball2.bas

Share this post


Link to post
Share on other sites

Thought I'd get this out there. Last night and today I have been working on a version of JezzBall. It can't be exactly like JezzBall, so in order to avoid copyright infringement AND due to the 2600's capabilities, it won't be EXACTLY like it, though it is similar.

This test screen has a non-moving ball, and the object is to close as much space as possible Qix-like without the line you create hitting the ball.

The lines you create are either horizontal or vertical, as indicated by the cursor.

I'll add some stuff to make it differ from JezzBall, since I can only have one ball bouncing around.

 

The 6 digit number is the score, and the 2 digit number is the %age of space you've cleared.

qix8.bas.bin

Share this post


Link to post
Share on other sites

The ball now bounces around the screen and gives bonus points if you clear more than 75% of the screen. Still no way to "die" yet.

EDIT: here's a link to the original game idea, Jezzball.

qix9.bas.bin

Edited by atari2600land

Share this post


Link to post
Share on other sites

+ Fixed a bug where starting a line at the beginning glitches lines up (u variable was set to 0 instead of 1!)

+ Ball now keeps bouncing around when lines are being made and space is filling up (you sure can fit a lot of stuff in vblank!)

+ Increased level % clearing to 85.

 

You can play Jezzball online at www.jezzball.net

My highest score was 100,000 or so at level 11 or so.

qix9a.bas.bin

Share this post


Link to post
Share on other sites

Introducing Bob the Block. Make sure Bob doesn't touch the line that's being drawn. Otherwise, you'll lose a life. Well, in the final version anyway. If you complete a level or die, it goes back to the title screen in this version. I've decided to name the game "Billy the Ball". The ball is red, like most playground balls are. So I changed the border to green. I think the introduction to Bob the Block makes the game harder. Bob can go anywhere in the screen, so it's tough to judge where he'll go next since it's random.

billy2a.bas.bin

  • Like 2

Share this post


Link to post
Share on other sites

We'll be featuring Billy the Ball on tomorrow's (Wednesday) ZeroPage Homebrew stream on Twitch at 11AM PT | 2PM ET | 7PM GMT! Hope everyone can watch!

Twitch Stream: http://twitch.tv/zeropagehomebrew/

Games:

- Billy the Ball (2019 WIP) by Chris Read aka atari2600land
- White Water Madness (2019 WIP Update) by Chris Read aka atari2600land
- KTron (2019 WIP) by Adriano Sabo aka acsabo
- Climber 5 (2003) by Dennis Debro aka DEBRO

 

EDIT: Updated with YouTube Archive of Stream

 

Edited by ZeroPage Homebrew
  • Like 1

Share this post


Link to post
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.

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...