[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/mysqli.php on line 264: mysqli_fetch_assoc(): Couldn't fetch mysqli_result
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/mysqli.php on line 326: mysqli_free_result(): Couldn't fetch mysqli_result
Pete's QBASIC Site Discuss QBasic, Freebasic, QB64 and more 2009-06-08T21:24:47-05:00 http://petesqbsite.com/phpBB3/app.php/feed/topic/2978 2009-06-08T21:24:47-05:00 2009-06-08T21:24:47-05:00 http://petesqbsite.com/phpBB3/viewtopic.php?p=19296#p19296 <![CDATA[Aha!]]>
Here is my updated code:

Code:

for a = 0 to columns-1    for b = 0 to rows-1      if spritemode(map(a,b)) = 1 then       cmin = (a*16)-15: cmax = (a*16)+15       rmin = (b*16)-15: rmax = (b*16)+15       if r >= rmin and r <rmax>= cmin and c <= cmax then         if r = rmin then r = r -1        if r = rmax then r = r +1        if c = cmin then c = c -1        if c = cmax then c = c +1        end if      end if    next bnext a
This deals with each row and column collision as it occurs.

Sorry that I didn't try out your idea fully.

BTW, remember the pseudo-code post (the <rmax> wasn't part of the original code)

Statistics: Posted by BluescreenODeff — Mon Jun 08, 2009 9:24 pm


]]>
2009-06-08T20:54:07-05:00 2009-06-08T20:54:07-05:00 http://petesqbsite.com/phpBB3/viewtopic.php?p=19295#p19295 <![CDATA[Collision Detection in FB Game]]> I'll explain it in pseudo-code:

if r is greater than or equal to rmin and r is less than or equal to rmax and c is greater than or equal to cmin and c is less than or equal to cmax then

r and c is my way of saying y and x. It's easier for me to think "row, column".

Anyway, thanks for the idea; I'll try it.

Statistics: Posted by BluescreenODeff — Mon Jun 08, 2009 8:54 pm


]]>
2009-06-08T20:39:42-05:00 2009-06-08T20:39:42-05:00 http://petesqbsite.com/phpBB3/viewtopic.php?p=19293#p19293 <![CDATA[Collision Detection in FB Game]]> r <rmax>= cmin and c <= cmax then " do?).

What about moving a copy of coordinates, then check collision detection? If no collision, then update the original coordinates with the updated copy, otherwise ignore the copy. I found that to help me out sometimes when weird things happen.

Statistics: Posted by Mentat — Mon Jun 08, 2009 8:39 pm


]]>
2009-06-08T19:54:34-05:00 2009-06-08T19:54:34-05:00 http://petesqbsite.com/phpBB3/viewtopic.php?p=19292#p19292 <![CDATA[Collision Detection in FB Game]]>

Code:

for a = 0 to columns-1    for b = 0 to rows-1      if spritemode(map(a,b)) = 1 then       cmin = (a*16)-15: cmax = (a*16)+15       rmin = (b*16)-15: rmax = (b*16)+15       if r >= rmin and r <rmax>= cmin and c <= cmax then        if MULTIKEY(&h48) then r = r + 1       if MULTIKEY(&h4D) then c = c - 1       if MULTIKEY(&h50) then r = r - 1       if MULTIKEY(&h4B) then c = c + 1               end if      end if    next bnext a
columns and rows are the number of columns and rows in the current map.
spritemode is the status of each tile (whether or not you can go through them)
map(a,b) is the map, of course.
the cmin, cmax, rmin, and rmax es specify the boundaries the character has to cross before any collision action is taken.

If there is a collision, the game will move the character in the opposite direction 1 pixel, according to what button was pushed.

Any suggestions? Thanks and God Bless!

Statistics: Posted by BluescreenODeff — Mon Jun 08, 2009 7:54 pm


]]>