Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Движок для игр-бродилок (http://www.flasher.ru/forum/showthread.php?t=143651)

RomECH 21.08.2010 23:43

Движок для игр-бродилок
 
Вот наше поле. Вот наш человечек. Вот наши препятствия:горизонтальные (пол) которые сгруппированы в спрайт по имени "Bottom", и соответственно вертикальные (стены), сгруппированные в спрайт по имени "walls". Как пооптимальнее и покороче написать код, который будет проверять, не врезался ли player в стену или не замуровался ли он в пол, и если что ставить этого player'а на нужное место.
:quiet:

Psycho Tiger 21.08.2010 23:46

Tile`ами будет в самый раз.

RomECH 22.08.2010 19:38

не понял

OwnerOfSuccuby 22.08.2010 20:18

Ты странный вопрос задаешь =)) У меня алгоритм движения персонажа занимает более 400 строк чистого кода =) Я делал просто - взял Обьект валлс и всё туда впихнул - по циклу проверяю - если обект в зоне видимости - то по циклу проверяет все обьекты в зоне видимости на столкновение - с помощью хит теста =)

Что ты имелл ввиду я немного не понял =)

Цитата:

Tile`ами будет в самый раз.
- я так понял тут недавно выкладывали движок написанный на этом - наверное имелось ввиду там посмотреть - хотя если честно я тож нече не понял =)

MrPoma 22.08.2010 20:55

flixel.org

Psycho Tiger 22.08.2010 21:16

Tile - это ячейка. Разбиваем всё игровое поле на равные ячейки. Если игрок помещается в одну ячейку, ровно, как и одно препятствие - на столкновение нужно проверить только 8 смежных ячеек. Это один из самых оптимальных и быстрых решений. Непосредственно столкновения лучше определять математикой, например, областями Воронного.

RomECH 22.08.2010 23:13

Цитата:

Сообщение от Psycho Tiger (Сообщение 930614)
Tile - это ячейка. Разбиваем всё игровое поле на равные ячейки. Если игрок помещается в одну ячейку, ровно, как и одно препятствие - на столкновение нужно проверить только 8 смежных ячеек...

А не примитивно ли? разбивать поле на равные ячейки. Мы же не на "Сегу" пишем код ;)

MrPoma 22.08.2010 23:26

Это для оптимизации. Зачем проверять столкновения между объектами, которые находяся в разных концах сцены?

http://noregret.org/tutor/n/

Tails 23.08.2010 16:09

Цитата:

Сообщение от OwnerOfSuccuby (Сообщение 930601)
Я делал просто - взял Обьект валлс и всё туда впихнул - по циклу проверяю - если обект в зоне видимости - то по циклу проверяет все обьекты в зоне видимости на столкновение - с помощью хит теста =)

RomECH

Я тож когда-то так делал, работало. Но когда захотелось сделать в игре небольшой мего левел, все недостатки и всплыли.

Psycho Tiger
Цитата:

областями Воронного.
Ссылочку ? :)

shaman4d 23.08.2010 17:03

Цитата:

Сообщение от Tails (Сообщение 930815)
Я тож когда-то так делал, работало. Но когда захотелось сделать в игре небольшой мего левел, все недостатки и всплыли.

И какие недостатки? Можете рассказать?


Часовой пояс GMT +4, время: 00:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.