Or if you like spoilers maybe somebuddy has some Python code you can rip, like this guy:
http://code.google.com/p/gummworld2/source/browse/branches/tiled2/gamelib/gummworld2/geometry.py Specifically, functions line_intersects_line and point_in_poly. Gumm On Mon, Feb 20, 2012 at 3:33 PM, Miriam English <m...@miriam-english.org>wrote: > You could use the point of intersection between two lines. > > One line is the bullet trajectory. > The other line is the target trajectory. > You have to take into account the time of the intersection too. > If the intersection falls inside the target at the right time for both > projectile and target then it is a hit. > > Paul Bourke gives a simple explanation with C code examples at: > http://paulbourke.net/**geometry/lineline2d/<http://paulbourke.net/geometry/lineline2d/> > That's for 2D. The 3D solution would be more complex, but not too much. > > It could be simplified by making bullets travel instantaneously if > distance is negligible. In fact if that's the case there may be an even > simpler way of solving whether a line intersects a volume. > > Cheers, > > - Miriam > > > Julian Marchant wrote: > >> Hi, I tried searching the internet for an answer, but didn't find >> anything, so I'll ask here. >> >> One problem with normal collision detection I'm sure we're all aware of >> is the problem that objects moving too fast can pass through other objects >> without a collision happening. I'm experiencing this problem with a >> scrolling shooter I'm working on because both bullets and enemies move >> pretty fast, one enemy is very small, and the frame rate is usually >> somewhat low (maybe 30 FPS) on the machine I'm targeting. >> >> Now, obviously, I intend to make other changes which will help, e.g. >> making these tiny enemies bigger, but I'd like to tackle the problem >> directly. There are two ways I can think of: The first way, which I easily >> could implement and would be most effective, is to move the bullets in >> steps and do collision detection each step. I have done something like this >> in a previous game and it worked well, but it seems like overkill in this >> game (the bullet subrect is only 5x5 pixels) and it isn't perfect anyway. >> >> The second way, which I would prefer, is to detect collision with a line >> from the bullet's new position to the bullet's previous position. I've seen >> this discussed on the Game Maker Community. The problem with this is I have >> no idea of how this could be done in a remotely efficient manner. The only >> method I can think of is to check every individual pixel one at a time, >> which is obviously not a good idea. Bullets can move diagonally, so just >> checking the x or y position won't work. >> >> So, in a nutshell, my question is: how could I do "line collision" >> detection like this in a relatively efficient way? >> >> >> > > -- > If you don't have any failures then you're not trying hard enough. > - Dr. Charles Elachi, director of NASA's Jet Propulsion Laboratory > ----- > Website: http://miriam-english.org > Blogs: http://miriam-e.dreamwidth.org > http://miriam-e.livejournal.**com<http://miriam-e.livejournal.com> >