forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Проблема с 2d пулями (http://forum.boolean.name/showthread.php?t=8875)

Illidan 11.08.2009 15:17

Re: Проблема с 2d пулями
 
в двад все равно все обьекты надо заного перерисовывать да и в трид тоже если присмтреться

NitE 11.08.2009 20:49

Ответ: Проблема с 2d пулями
 
ага, а если ещё лупу взять то ваще атас !

омгомг, что может быть непонятно - надо просто создать пулю там где игрок а потом не привязывать её к игроку... какие могут быть сложности ?

ABTOMAT 11.08.2009 22:15

Ответ: Проблема с 2d пулями
 
Вообще, можно сделать и 2Д-движок с энтитями, как в Блице (1 раз создал - оно само рендерится, можно привязывать, отвязывать и прочая хрень), и 3Д-движок с рендером вручную каждого объекта (хотя последнее нахрен никому не сдалось)

Randomize 11.08.2009 23:11

Ответ: Проблема с 2d пулями
 
Может

x=x+sin(ang)*speed
y=y+cos(ang)*speed

Где x,y - координаты пули
ang - угол пули
speed - множитель скорости

А вобще нука сорец в студию!

Цитата:

Сообщение от ABTOMAT (Сообщение 113871)
Вообще, можно сделать и 2Д-движок с энтитями, как в Блице (1 раз создал - оно само рендерится, можно привязывать, отвязывать и прочая хрень), и 3Д-движок с рендером вручную каждого объекта (хотя последнее нахрен никому не сдалось)

К слову я в BlitzMax так и делаю.
У каждого обьекта есть Draw() и Update()

А в игре есть:
UpdateGame()
DrawGame()
Где происходят все работы с графикой и логикой.

jimon 11.08.2009 23:37

Ответ: Проблема с 2d пулями
 
народ, вы с скролингом уже совсем поехали не туда, все обьекты в мире должны иметь мировые координаты, плюс в мире должна быть камера
вот при рендере просто учитываем координаты камеры и всё, не важно даже 2д или 3д игра

не представляю как надо извращатся чтобы писать игру без абстракции камеры

Illidan 11.08.2009 23:41

Re: Проблема с 2d пулями
 
У автора топика как раз виртуальная камера задана,так что все пучком. А обьекты так или иначе всеравно перерисовываются... такова жисть

Spiderman 12.08.2009 11:45

Ответ: Проблема с 2d пулями
 
А так через типы я обрабатываю пули у себя в проекте:

Код:

; Update Shots
        For shot.shot = Each shot
                DrawImage shoot,shot\x+LevelX,shot\y+LevelY
                shot\sx = sin(shot\ang)
                shot\sy = cos(shot\ang)
                shot\x = shot\x + shot\sx*shot\speed
                shot\y = shot\y + shot\sy*shot\speed

        shot\life=shot\life-1
        If shot\life<1 Then
          ;{тут я создаю микровзрыв пули}
          Delete shot : Return
          EndIf
       
        ; проверка столкновения с объектами типа Блок               
        For Bblock.block = Each block
        coll =  RectsOverlap(shot\x,shot\y,3,3,Bblock\x,Bblock\y,Bblock\w,Bblock\h)
                If coll = True Then
                      ;{тут я создаю микровзрыв пули}
                      Delete shot : Delete Bbloc : Return
                EndIf         
    Next

Next

где:
LevelX, LevelY - глобальные координаты мира

Randomize 12.08.2009 17:46

Ответ: Проблема с 2d пулями
 
Ммм... а в аттач сорец можешь закинуть.
Просто маловато кода, если ты говоришь что у тебя пули движутся вместе с игроком, то надо на этого игрока тоже посмотреть.

Ошибка скорее всего в зависимости LevelX LevelY и PlayerX PlayerY.
У самого такое бывало :/

Nex 13.08.2009 05:59

Ответ: Проблема с 2d пулями
 
Вложений: 1
В общем попытался в 3D, но че то уже не то получается даже не интересно стало делать. Вот код. Если поможете сделать пули, то буду дальше в 2D делать. :)
З.Ы. Временно использую картинки ABTOMAT'а, попозже свои нарисую. :)
З.ЫЫ. Если архив не будет открываться, то переиминуйте в .rar

Illidan 13.08.2009 07:53

Re: Проблема с 2d пулями
 
Вложений: 1
карочь как я говорил нужно просто к координатам пули прибавлять сдвиг....
и просто необходимо написать свое подобие локальных координат )))
в атаче исправленная версия

Nex 13.08.2009 08:04

Ответ: Проблема с 2d пулями
 
Illidan, у меня камера это координа игрока, а именно "p\x","p\y". CameraX и CameraY это и есть эти координаты. Я их отнимал от координат пули, но они летели вместе с игроком и пробовал еще пару способов, но нифига не получилось и я забил на это дело и начал в 3D делать, а в 3D мне это дела не понравилось и я забил на игру, но теперь ее (игру) доделаю! :-D В общем спасибо большое! :)
Кстати, как проверять пули и остальные объекты на столкновение с картинками стены (картинка находятся в массиве)? :)

Illidan 13.08.2009 09:11

Re: Проблема с 2d пулями
 
в фастимедже есть например testrect его за глаза хватит
точка = координата пули
квадрат - тайл со стеной. только оптимизировать не забывай, чтоб не все стены со всеми пулями перепроверялись сразу

Nex 13.08.2009 16:36

Ответ: Проблема с 2d пулями
 
Попробую сделать, как ты говоришь, но я еще плохо кодю поэтому может и не получиться. :)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot