Hi, I'm a long time reader - first time poster. Just a couple of questions to start with:

1. When you're making a game or something, do you focus on the basics to get it playable ASAP and then work on building in the extra features or do you insert the features as you're working on the program (so the program looks good but doesn't quite work)?

2. I've got a problem with a game I'm working on. It's trying to be a clone of the Atari2600 game Beserk (top-down maze game similar to pac-man only more open and you can shoot), I don't know if you've heard of it. The problem is when I shoot down and right the bullet passes through walls and continues to the edge of the form. Every other direction works fine.
I don't know much about graphics and Delphi so I'm just using the canvas and checking pixel colour ahead of the bullet. If a pixel that the bullet will travel into next frame is not black (the floor colour) then it should stop travelling (that's all I'm up to so far).
The whole code would probably be too long to post here, but here is the section that performs the move:
[pascal]
{more code here}
Halfspeed := Person.ShotSpeed div 2;
case Person.BulletDir of
{more code here}
3: begin //down + right
Inc(Person.ShotX, Halfspeed);
Inc(Person.ShotY, Halfspeed);
if Form1.Canvas.Pixels[Person.ShotX + Halfspeed, Person.ShotY + Halfspeed] <> clBlack then Person.CanShoot := True; //stop the bullet;
end;
{more code here}
[/pascal]
That is a case of shooting direction = 3. Moving the person using the keypad changes the direction that the bullet will travel. 3 = down and right. I made the shot speed half on diagonals otherwise it travels twice as quickly as NESW.
I've been over the rest of the program with a fine tooth comb (since it didn't always work like this) and everything is the way it should be. It's exactly the same as the other directions except for the Inc and Dec of the axes.
Any suggestions would be appreciated, including other ways to do what I'm trying to do. I've tried to research it, but 90% of what I found was for far more advanced 3D programs, the other 10% just wasn't helpful.