Jump to content

The Southsider

  • entries
    81
  • comments
    767
  • views
    135,904

Star Castle Improvements

cd-w

1,661 views

I have made a little more progress on my 2600 Star Castle demo:

  • Ship rotation is slower.
  • Ring colours now match the arcade version.
  • Player bounces off the rings.
  • Centre gun tracks the player position.

The main issue now is collision detection between the bullets and the rings. I haven't yet worked out an efficient way to detect when a ring sector is hit by a bullet, and the code is starting to get tight for cycles.

 

blogentry-6563-0-74930200-1326233056.png

 

Let me know what you think?

 

Chris

 

starkernel4.bin

starkernel4.zip



6 Comments


Recommended Comments

If we're looking to get as close to the arcade as possible you're still gonna need to slow down the ship rotation even more. I count about 57-60 RPM on the arcade version. It's prolly 60, i just missed a count here and there.

 

This 2600 version is running about 2x or 3x that rate. Too fast to watch the clock and count rpms at the same time.

 

But this is looking real nice so far!

Share this comment


Link to comment

I haven't studied the code yet, but I presume that you are using collision flags between the ship and the rings? And that doesn't work for bullets because they are too small?

 

Since you are not using the playfield, perhaps you could use the ball to make a black shadow that follows the bullet and is larger?

Share this comment


Link to comment

Zach - thanks for the suggestions. The real problem is determining which segment of the rings has been hit by the bullet. Each ring has 12 segments that can be individually removed.

 

I think I have now worked out a scheme using bounding boxes - it isn't pixel perfect but it should be close enough and fit in the available cycles.

 

I'm actually using the distance formula already to bounce the ship off the rings. The ship will bounce if x^2 + y^2 <= z^2, where x and y are the distance of the ship from the ring centre, and z is the radius of the outer ring. I'm planing to use this technique to determine which ring to test, then using bounding boxes around each segment.

Share this comment


Link to comment

So multiplying all the possibles values for the distance formula is more managable than I thought, eh? I'll need to look at your code sometime.

Share this comment


Link to comment
Guest
Add a comment...

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