![]() |
Ответ: Vivo
Кажется понял почему есть проблемы. Оказывается я до сих пор ничего не знал о банках, а они как оказалось полезны.
|
Ответ: Vivo
Код:
Global rc=CountGfxModes() |
Ответ: Vivo
Вы это, бросайте там перемножать =) зачем эти коды выкладывать, у тебя массив в минуса уходит =))
Код:
For i=0 To Int((R1/2-cx+R1/2+32)/32) |
Ответ: Vivo
Код:
Global rc=CountGfxModes() |
Ответ: Vivo
В тайловой карте вычислять индексы по координатам нет надобности; вот если наоборот то можно.
Всем объектам карты задай индексы cellX, cellX. Игроку конечно тоже. При перемещении игрока изменяй индексы, пошел вверх - сделал cellY = cellY-1 и т.д. Сейчас ты проходишь по всему массиву, как делал в for each, но можно только ближние к игроку клетки брать Local startX% = player\cellX-viewCountX If(startX < 0) startX = 0 Local endX% = player\cellX+viewCountX If(endX >= fieldDimX) endX = fieldDimX-1 Local startY% = player\cellY-viewCountY If(startY < 0) startY = 0 Local endY% = player\cellY+viewCountY If(endY >= fieldDimY) endY = fieldDimY-1 Local xx%, yy% For xx=startX to endX For yy=startY to endY ; здесь только ближние к игроку Next Next |
Ответ: Vivo
только viewcount_x и viewcount_y еще на два поделить нужно. Большое спасибо!
|
Ответ: Vivo
Вложений: 1
Сейчас со мной произошла довольно странная вещь. Решив ещё потренироваться в работе с камерой, решил сделать 2D платформер с скроллингом. Возникли трудности, но когда я написал код, я ВНЕЗАПНО задумался, а почему он работает?:) Это повергло меня в шок: я не понял как работает мой же код. Когда я его писал, всё выходило машинально и я даже не думал что я делаю, просто делал и всё.
Код:
Function UpdWorld() |
Ответ: Vivo
Используй TAB, Люк!
|
Ответ: Vivo
Игрок рисуется в центре экрана; пол рисуется в cx,cy; нижний кубик в px,py.
Названия переменных "человеческие" сделай, и яснее станет что и как у тебя. |
Ответ: Vivo
я знаю где что рисуется и что эти переменные значат( cx - camera_x, px - player_x), но я не знаю почему так происходит, что квадрат в рх ру быстрее игрока:(
|
Ответ: Vivo
Rect R1/2-(200),R2/2+(200),10,10,1 ne? =)) вот а так Rect px/5,py/2,10,10,1=) ) медленнее :ok: а что нужно получить:dontknow:
|
Ответ: Vivo
ничего получать не нужно, все хорошо работает, но я не понимаю как:)
|
Ответ: Vivo
Ну так дело не в квадрате, а в плеере, который привязан к курсору то есть стоящему в середине экрана DrawImage player_image,R1/2,R2/2 =) ) DrawImage player_image,R1/2+px,R2/2+py/3
|
Ответ: Vivo
Я не понимаю почему px,py двигается быстрее чем игрок( если можно так выразится).
|
Ответ: Vivo
Пока моделлер работает, заняться мне нечем, поэтому решил-ка я позаниматься этим проектам. По-сколько кроме быдлокода я ничего в исходниках не нашёл, решил писать всё заново, отказавшись от экранов. Они были удобны, но многие говорили что это убивает геймлей. В общем, помогите с выбором:
1). Делать 9 чанков размером с экран, чтобы они окружали текущий экран. 2). Делать уйму маленьких чанков. 3). Послать всех и оставить экраны:) P.S. в первых двух случаях игрок находится всегда в центре экрана. И ещё, вдруг у кого завалялась инфа по данной теме, поделитесь, буду признателен( тоже к двум первым случаям относится). |
Часовой пояс GMT +4, время: 08:27. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot