для простых объектов (допустим кубики 16х16) рассчёт столкновения (как у Джонатана) на-бейсике выглядит так
IF ABS (x1-x2) < l then collision
А к чему эта картинка? В примере программы из гайда же маска не используется.
=======================================
Мой профиль на Pixeljoint: http://pixeljoint.com/p/35576.htm
=======================================
Мой профиль на ZXArt.ee: http://zxart.ee/rus/avtory/h/helcril/
=======================================
ZX Spectrum +2, ZX Evolution Rev. C
Видимо, какое-то недопонимание происходит. Как выглядит столкновение не квадратных спрайтов мне понятно.
Непонятно как работает вот это:
Т.е. формула в конце алгоритма такая:Код:; Check (l, h) for collision with (c, b), cutting corners. colc16 ld a,l ; x coord. sub c ; subtract x. jr nc,colc1a ; result is positive. neg ; make negative positive. colc1a cp 16 ; within x range? ret nc ; no - they've missed. ld e,a ; store difference. ld a,h ; y coord. sub b ; subtract y. jr nc,colc1b ; result is positive. neg ; make negative positive. colc1b cp 16 ; within y range? ret nc ; no - they've missed. add a,e ; add x difference. cp 26 ; only 5 corner pixels touching? ret ; carry set if there's a collision.
|(x1-x2)+(y1-y2)|<=25 то столкновение считается, если больше, то нет.
Мне не код непонятен, а именно геометрический (?) принцип лежащий в основе него. Я так понимаю, что манипулируя вот этим числом (в данном случае 25) можно изменять размер отсекаемых углов. Поправьте меня, если я что-то не так понял.
=======================================
Мой профиль на Pixeljoint: http://pixeljoint.com/p/35576.htm
=======================================
Мой профиль на ZXArt.ee: http://zxart.ee/rus/avtory/h/helcril/
=======================================
ZX Spectrum +2, ZX Evolution Rev. C
как в анекдоте "1/2+0.5=? нутром чую что литр, а доказать немогу"
специально по-пути домой купил тетрадку в-клеточку.
формула работает, осталось доказать зависимость суммы разницы координат
=======================================
Мой профиль на Pixeljoint: http://pixeljoint.com/p/35576.htm
=======================================
Мой профиль на ZXArt.ee: http://zxart.ee/rus/avtory/h/helcril/
=======================================
ZX Spectrum +2, ZX Evolution Rev. C
Только сейчас вспомнил, что давеча скачивал эту книгу - было переведено 4 главы - до "Случайных чисел" включительно. С английским оригиналом точность не сравнивал - каюсь, слабо и долго читаю английский текст, сноровка не велика - но ваша версия читается и воспринимается прекрасно. Спасибо.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)