Jump to content
IGNORED

the secret government waffle project


Recommended Posts

I'm likin' the change to bacon & syrup and giving me a utensil to eat the waffles. I'm wondering if, at some later point in the game, Commander Kellogg will be able to earn the right to get closer to the machine and try to hit a "kill" switch and defeat it, thus keeping the world from being overrun by waffles.

  • Like 1
Link to comment
Share on other sites

I found a problem. This happened several times. If your guy is standing all the way to the bottom, the jams that come at waistish level are missing the bottom half of the jar. Did you increase the difficulty? It seems harder. Which is ok with me if you did. If not i must have forgotten how to play.

Edited by pimpmaul69
Link to comment
Share on other sites

Finally got a pic of it!

attachicon.gifimage.jpg

Looks like a priority problem due to how Color Stack mode was used when generating the machine screen (as seen earlier in the thread when a bunch of "4"s showed up. In the Show_Machine procedure there are a bunch of Print statements to ensure that there is nothing in the foreground except the blue machine, there needs to be one more at 200, might as well put one at 220.

Link to comment
Share on other sites

Found a fork/waffle. Still trying to get a pic of defective jam but there arent any waffles before the defective jam to kill myself to take a pic

attachicon.gifimage.jpg

 

I've seen this a few times. When generating a new object, you should test that the new one does not overlap any existing one. This particular combination makes the fork useless, and the biggest problem is that you will have to wait a long time for the next chance to get a new fork.

 

This adds to the player's frustration.

 

-dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

Looks like a priority problem due to how Color Stack mode was used when generating the machine screen (as seen earlier in the thread when a bunch of "4"s showed up. In the Show_Machine procedure there are a bunch of Print statements to ensure that there is nothing in the foreground except the blue machine, there needs to be one more at 200, might as well put one at 220.

 

The right solution is to use the Color Stack better. The quick-and-dirty solution would be to ensure that all MOBs have their "priority" bit set. That way, it guarantees that they show "on top" of any background, even if they are "invisible pixels."

 

-dZ.

Link to comment
Share on other sites

About the overlapping characters.

I made it so the worst case scenario is that if the power up touches a waffle, it passes right through it and ends up on the other side. I am wondering if collision detection still works with blank MOBs. Probably not, so this was my solution. Do you have a better one?

Also, I changed the bacon sprite and I changed the fork sprite to make it seem larger.

Link to comment
Share on other sites

I am wondering if collision detection still works with blank MOBs. Probably not, so this was my solution.

 

Collisions are registered if two MOBs overlap, whether they their visibility bit is set or not, and whether they are within the screen boundaries or not.

 

The way I would do this is as follows:

  • When creating a new object, select a random "Y" position
  • Convert the "Y" position into a sprite bounding box (PosY = top of sprite; PosY + 8 = bottom of sprite).
  • Compare the "Y" position of the last one or two created objects against this range.
  • If it falls within the range, discard and try again from the first step
  • Otherwise, initialize the object and end.

Ideally, you would compare the full bounding box of the new object against all other existing objects.

Edited by DZ-Jay
Link to comment
Share on other sites

Collisions are registered if two MOBs overlap, whether they their visibility bit is set or not, and whether they are within the screen boundaries or not.

Not quite. They both need their INTR bit set in each MOB's x register to interact with each other.

Link to comment
Share on other sites

Collisions are registered if two MOBs overlap, whether they their visibility bit is set or not, and whether they are within the screen boundaries or not.

 

The way I would do this is as follows:

 

  • When creating a new object, select a random "Y" position
  • Convert the "Y" position into a sprite bounding box (PosY = top of sprite; PosY + 8 = bottom of sprite).
  • Compare the "Y" position of the last one or two created objects against this range.
  • If it falls within the range, discard and try again from the first step
  • Otherwise, initialize the object and end.
Ideally, you would compare the full bounding box of the new object against all other existing objects.

That's what I said above :-)

 

The only thing is I would only test the y bounding box if the x value of the other objects is within a certain distance of the spawn point.

No point testing if object is halfway across the screen.

 

I think what we are both trying to say is...don't use collisions to determine if the power up will overlap with another object at spawn time when simple math will work quicker.

Link to comment
Share on other sites

About the overlapping characters.

I made it so the worst case scenario is that if the power up touches a waffle, it passes right through it and ends up on the other side. I am wondering if collision detection still works with blank MOBs. Probably not, so this was my solution. Do you have a better one?

Also, I changed the bacon sprite and I changed the fork sprite to make it seem larger.

You also need to fix the jam half disappearing behind the background as was suggested above with the additional print statements in the show_machine procedure.

Link to comment
Share on other sites

Not quite. They both need their INTR bit set in each MOB's x register to interact with each other.

 

 

Ah, well, sorry for taking that as an obvious requirement. I meant that the visibility of objects does not have an impact on their collision detection, only their position and the "Interaction Bit."

  • Like 1
Link to comment
Share on other sites

That's what I said above :-)

 

The only thing is I would only test the y bounding box if the x value of the other objects is within a certain distance of the spawn point.

No point testing if object is halfway across the screen.

 

I think what we are both trying to say is...don't use collisions to determine if the power up will overlap with another object at spawn time when simple math will work quicker.

 

Exactly: don't rely on the hardware collision detection for this. It's a "logical" collision: you detect it before you create the object.

 

-dZ.

Link to comment
Share on other sites

Ah, well, sorry for taking that as an obvious requirement. I meant that the visibility of objects does not have an impact on their collision detection, only their position and the "Interaction Bit."

Its an IntyBASIC project and not everybody knows the STIC as well as we do ;).

Link to comment
Share on other sites

 

 

Ah, well, sorry for taking that as an obvious requirement. I meant that the visibility of objects does not have an impact on their collision detection, only their position and the "Interaction Bit."

But I think the program makes the waffles initially "invisible" not by setting the visibility bit, but by assigning them to a blank picture. These "Blank Mobs" will not collide with anything, I think...

Link to comment
Share on other sites

Added simple Powerup Y coordinate spawn avoidance of existing waffles

If waffle is on the same row as new powerup, but is more than 20 pixels from the left of the screen and more than 50 pixels from spawn point don't bother checking.

Wont spawn on the same row of an existing waffle, gets a new Y if so.

 

 

waffle1x <120 and waffle1x>20

 

can be fiddled with for each waffle to get a feel for how close a waffle can spawn if on the same row.

 

sgwp_FixOverlapping_Powerups.bas

 

This is probably not the most effiecient way but it probably is the simplest to understand

Link to comment
Share on other sites

But I think the program makes the waffles initially "invisible" not by setting the visibility bit, but by assigning them to a blank picture. These "Blank Mobs" will not collide with anything, I think...

 

That is true, if there are no pixels on the MOB, then there is nothing for it to collide with.

 

 

 

Its an IntyBASIC project and not everybody knows the STIC as well as we do ;).

 

True again. :)

Link to comment
Share on other sites

I saw a piece of bacon over a waffle I think.

Possibly. I went back and looked and I was assuming you were using waffle1y like you were with waffle1x, instead of hard coding the SPRITE y parameter.

 

This version fixes that by adding Waffle1y etc variables and setting them to your hard coded values.

I also changed the random function that generates the PowerY so it is actually generates random number between (1 and 66) +12, instead of always in the same 4 spots. You might want to consider randomizing the waffle1y etc values.

 

I also added a technique to add some randomness to the RAND function by calling RAND each title screen loop to give more randomness.

 

sgwp.bas

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