forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на MidletPascal (http://forum.boolean.name/forumdisplay.php?f=88)
-   -   La Nuit Tombe (изометрический движок) (http://forum.boolean.name/showthread.php?t=12699)

NetBuilding 10.08.2010 14:23

Ответ: La Nuit Tombe (изометрический движок)
 
хотелось бы взглянуть на движок изнутри в учебно справочных целях.

cherepets 10.08.2010 14:35

Ответ: La Nuit Tombe (изометрический движок)
 
могу скинуть в личку ключевые моменты (весь исходник игры не буду скидывать, потому что ты только запутаешься в итоге)

Rock2roll 10.08.2010 15:21

Ответ: La Nuit Tombe (изометрический движок)
 
Не скидать. А продавать! Ты трудился над двигом и не должен роспостранять. Хотя можешь.
ЗЫ. Это мой совет если не хочешь чтобы в итоге по форуму пробежалась волна игр на твоём движке но без твоего авторства с коментами: "Сделал сам, ещё и без либ!" =)
Улыбно, но правда

cherepets 10.08.2010 15:26

Ответ: La Nuit Tombe (изометрический движок)
 
думаю даже если я выложу полный исходник - такого не произойдет.
исходник Stille Nacht'a лежит же на форуме, а единственная игра на нем - мой же дум стори.

правда там двиг в очень странном виде и с ним тяжело разобраться, может в этом и все дело...

Nuprahtor 10.08.2010 15:31

Ответ: La Nuit Tombe (изометрический движок)
 

Stille Nacht, La Nuit Tombe
Творческий подход к названию движков, так держать!:)

Rock2roll 10.08.2010 15:55

Ответ: La Nuit Tombe (изометрический движок)
 
Как сказано на форуме МОТОфан.ру: "Твоя жизнь, твой выбор". Твой исходник- его судьба в твох руках =). Всё выше сказанное мной было написано с добрыми намереньями))( #48 )

cherepets 11.08.2010 17:46

Ответ: La Nuit Tombe (изометрический движок)
 
блиииин...
для новой игры старый алгоритм сортировки не пойдет (он сортировал только врагов, количество которых известно заранее) и делил все остальное на 2 группы (перед игроком и за игроком).

в новой же игре есть стены и количество стен и врагов заранее не известно.
вопрос: как это все отсортировать? желательно с примером...

подробнее о том что есть:

var object:array[1..400,1..2] of integer;
quan:integer;

400 - максимальное колиство объектов.
quan - реальное количество объектов.
1я строка в массиве - координата x.
2я строка в массиве - координата y.
объекты в массиве должны идти по возрастанию суммы x и y.

_Nox_ 11.08.2010 18:44

Ответ: La Nuit Tombe (изометрический движок)
 
Код:

for i:=1 to quan do
 begin
  p:=false;
  for j:=1 to quan-1 do
  if object [j,1]+object [j,2] >  object [j+1,1]+object [j+1,2] then
    begin
    cc:=object [j,1];
    object [j,1]:=object [j+1,1];
    object [j+1,1]:=cc;
    cc:=object [j,2];
    object [j,2]:=object [j+1,2];
    object [j+1,2]:=cc;
    p:=true;
    end;
  if not p then break;
  end;

Походу так, самый простой вариант

cherepets 11.08.2010 19:00

Ответ: La Nuit Tombe (изометрический движок)
 
ты по-видимому опечатался, for j:=1 to quan
а вообще спасибо)) не знаю почему меня ввел в ступор вроде простой вопрос...

cherepets 12.08.2010 14:32

Ответ: La Nuit Tombe (изометрический движок)
 
_Nox_, а зачем нужно p:boolean?
у меня когда я его использую графика подглючивает (видимо сортировка не до конца проходит)

cherepets 26.10.2010 12:18

Ответ: La Nuit Tombe (изометрический движок)
 
Вложений: 1
Решил вместо пузырьковой использовать быструю сортировку и был слегка шокирован результатом:


Отсортировать надо по возрастанию суммы 1го и 2го "столбца".
Вот исходник, может посмотрите как такое может быть?

_Nox_ 26.10.2010 17:44

Ответ: La Nuit Tombe (изометрический движок)
 
Цитата:

Сообщение от cherepets (Сообщение 158013)
ты по-видимому опечатался, for j:=1 to quan
а вообще спасибо)) не знаю почему меня ввел в ступор вроде простой вопрос...

Нет я не опечатался, можно даже for j:=1 to quan-i do

Цитата:

Сообщение от cherepets (Сообщение 158082)
_Nox_, а зачем нужно p:boolean?
у меня когда я его использую графика подглючивает (видимо сортировка не до конца проходит)

Этот булин служит как флаг для того, что-бы когда в цикле после прохода ничего не изменилось просто выходить, например если у нас 1000 элементов, и на каком-то шаге например 257 массив уже отсортирован, то зачем гонять сортировку, можно просто выйти

Лучше поздно чем никогда:)

Может криво из-за рекурсии, я не знаю. можно сортировать кучей, тоже за O(n log n) работает, там рекурсия не нада. Если надо могу написать сортировку

cherepets 26.10.2010 17:59

Ответ: La Nuit Tombe (изометрический движок)
 
Новые элементы всегда добавляются в конец, так что первые 257 у меня могут идти правильно, а дальше - нет.

Если можешь - напиши, пожалуйста.

_Nox_ 26.10.2010 18:00

Ответ: La Nuit Tombe (изометрический движок)
 
Объясни подробней как тебе сортировать надо, а то ты меня что-то запутал

cherepets 26.10.2010 18:13

Ответ: La Nuit Tombe (изометрический движок)
 
так же как и в примере.
если object[i,1]+object[i,2]>object[j,1]+object[j,2], то меняем их местами так:
object[i,1] = object[j,1]
object[i,2] = object[j,2]
и наоборот


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

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