[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Enforcer, BFG16k, coolant, nurupo 
pff.clan.su - Форум » Игра NFK » Зона разработок » Задачка на сообразительность... (ВСЕ РЕШАЕМ ЗАДАЧУ :)))
Задачка на сообразительность...
EnforcerДата: Вт, 2009-06-09, 15:10 | Сообщение # 1
Инжинер
Группа: Модераторы
Сообщений: 1161
Награды: 9
Статус: Offline
Есть рисунок:

НА Рисунке 1 - Показан объект (красная точка) который тупо движется наискосок
в передвижении такого объекта ничего сложного нет, вообщем выглядит это так:

TOX = 100;
TOY = 100;
do
OBJX := OBJX + 1;
OBJY := OBJY + 1;
until (OBJX = TOX) and (OBJY = TOY);

НА Рисунке 2 - Показан объект который уже идет не ровно наискосок а уже ближе к оси Х,
Фишка в том что вышеуказанный цикл уже тут не применишь и каким макаром это реализовать я что-то недодупляю хотя вроде элементарно...

Терь поставим задачу поконкретнее:
Есть начало координат допустим X = 0; Y = 0;
Есть конец координат допустим X = 7, Y = 1;
Есть некая точка которая должна двигаться по этой траектории равномерно
и в конце, КОГДА координата X будет равна 7, a Y = 1 - остановиться...

Построить небольшой алгоритмик выполнения данной зачдачи :D Сам чёта не допираю как... Хотя вроде просто псц...

Это даст возможность создания движущихся спрайтов/бриков :)

Прикрепления: 4388594.png(9Kb)


 
ГостьДата: Вт, 2009-06-09, 22:38 | Сообщение # 2
Группа: Гости





OBJX := 0;
OBJY := 0;
TOX := 7;

do
  OBJX := OBJX + 1;
  OBJY := OBJY + 1/7;
until OBJX >= TOX;

 
EnforcerДата: Ср, 2009-06-10, 20:18 | Сообщение # 3
Инжинер
Группа: Модераторы
Сообщений: 1161
Награды: 9
Статус: Offline
НЕ пойму чё тут не так вроде делал по примеру
а когда создаю спрайт (в точках 200 200 например) и ввожу в консоли типо moving_bgobject 1 88 88
То игра тупо зависает )) В чём бида ?

// bot_console.pas

// X1:byte;

if (par1 = 'moving_bgobject') then
begin
if (par2 <> '') and (par3 <> '') and (par4 <> '') and (XOBJX > 0) then
begin
X1:=100;
setlength(xobject, 2);
XOBJX:=strtoint(par2);

While (xobject[XOBJX]^.X >= strtoint(par3)) and (xobject[XOBJX]^.Y >= strtoint(par4)) do
begin
if (X1>0) then
begin
dec(X1);
end
else
begin
// ТУТ ДЛЯ НАЧАЛА ПРИБАВЛЯЮ ПРОСТО ЕДИНИЦЫ ЧТОБ ХОТЯБ ПРОВЕРИТЬ ПАШЕТ ИЛИ НЕТ
xobject[XOBJX]^.X := xobject[XOBJX]^.X + 1;
xobject[XOBJX]^.Y := xobject[XOBJX]^.Y + 1;
end;
end;
end;
end;


 
EnforcerДата: Ср, 2009-06-10, 22:40 | Сообщение # 4
Инжинер
Группа: Модераторы
Сообщений: 1161
Награды: 9
Статус: Offline
ПРОБЛЕМА РЕШЕНА!!!!!!

Далее буду пытатцо реализовать возможность держатся и ездить на этих движущихся платформах...
Потом попытаюсь сделать объекты которые можно будет двигать...
Ящике например или ещё чёта...


 
pff.clan.su - Форум » Игра NFK » Зона разработок » Задачка на сообразительность... (ВСЕ РЕШАЕМ ЗАДАЧУ :)))
Страница 1 из 11
Поиск: