Суббота, 20 Апреля 2024, 10:32

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Записи участника » Lightsoft [36]
Результаты поиска
LightsoftДата: Среда, 01 Мая 2013, 18:12 | Сообщение # 21 | Тема: Переменные в имени создаваемого файла
частый гость
Сейчас нет на сайте
Код
s = string(worldX) + "," + string(worldY) + ".map";
LightsoftДата: Среда, 24 Апреля 2013, 15:06 | Сообщение # 22 | Тема: Помогите в создании программы (нубам в другую сторону)
частый гость
Сейчас нет на сайте
parameter_string(1) , где 1 - номер параметра
LightsoftДата: Понедельник, 28 Января 2013, 01:02 | Сообщение # 23 | Тема: Sora Graphics Engine
частый гость
Сейчас нет на сайте
Цитата (Lord_Zeon)
Для начала что нужно реализовать:
Инициализация окна, что лучше использовать для этого? Кроссплатформенный FreeGlut как вариант, или все же писать свою обертку под winapi?
Инициализация OpenGL. Если брать глут то это отпадает.

Я считаю, что лучше написать свою обертку, так как это может облегчить жизнь если надо будет что-то изменить в инициализации окна, не придется разбираться с чужим кодом. Управление таймером, перерисовкой и другими сообщениями будет своё.

Цитата (Lord_Zeon)
Реализовать вывод текста:
Пока склоняюсь к стандартным функциям. Как можно другими способами?

Обычно шрифты делают через загрузку подготовленного изображения с символами, а текст выводят выбором символа по текстурным координатам.

Заметка по архитектуре:
Если память выделяется в процедуре, то лучше сделать освобождение памяти текстуры тоже отдельной процедурой:
Код
LoadTexture(&spr, "src_01.png", 160, 32);
LightsoftДата: Пятница, 25 Января 2013, 23:56 | Сообщение # 24 | Тема: Внедрение мультиплеера
частый гость
Сейчас нет на сайте
Цитата (Nanotech_ua)
Можно поподробнее?
Что для этого нужно изучать, чтобы сделать например простое подключение игроков?

Рассмотрим на примере SA:MP:

В gta:sa есть пул объектов класса CPed, каждый объект класса в этом пуле - бот в игре. В каждом объекте своя информация о позиции, оружие, здоровье и др. Для того чтобы сделать подключение надо залезть в движок игры и сделать так, чтобы создавались не игровые боты, а боты, которые управляются подключенными игроками (позиция, здоровье, ...). Для этого надо писать DLL библиотеку, которая будет подгружаться в процесс gtasa.exe, будет создавать в пуле объекты CPed и менять информацию в них, которая была получена от других игроков.

Т.е. подключается к серверу клиент, всем подключенным клиентам отправляется информация что нужно создать в пуле новый объект класса CPed.
Дальше игрок управляет персонажем, все данные передаются на сервер, а с сервера всем подключенным клиентам кроме своего.


Сообщение отредактировал Lightsoft - Пятница, 25 Января 2013, 23:58
LightsoftДата: Понедельник, 12 Марта 2012, 21:27 | Сообщение # 25 | Тема: Мои вопросы GML
частый гость
Сейчас нет на сайте
TheFlowOfFun, Зачем такое городить?

Можно проще сделать же:

Code
if(show_question("Question")){
  // если - да
} else {
  // если - нет
}
LightsoftДата: Понедельник, 20 Февраля 2012, 01:11 | Сообщение # 26 | Тема: Вопросы по созданию RPG
частый гость
Сейчас нет на сайте
Quote (Kto_Ya)
Это получается что надо будет на каждый уровень!?

Да. Нужно просто указывать сколько xp для следующего уровня нужно

Можешь формулу сделать:

Code

if (global.xp >= global.next_level_xp){
     global.level += 1;
     global.live = 64;
     global.money += 25;
     global.next_level_xp = global.level * 120;
}


и тогда с каждым уровнем кол-во необходимого опыта будет увеличиваться


Сообщение отредактировал Lightsoft - Понедельник, 20 Февраля 2012, 01:16
LightsoftДата: Суббота, 18 Февраля 2012, 23:34 | Сообщение # 27 | Тема: Вопросы по созданию RPG
частый гость
Сейчас нет на сайте
в Create пишешь:

Code
  global.next_level_xp = 120;


в step проверяешь

Code

if (global.xp >= global.next_level_xp){
    global.level += 1;
    global.live = 64;
    global.money += 25;
    global.next_level_xp += 120;
}



Сообщение отредактировал Lightsoft - Суббота, 18 Февраля 2012, 23:34
LightsoftДата: Суббота, 18 Февраля 2012, 17:08 | Сообщение # 28 | Тема: И снова ИИ
частый гость
Сейчас нет на сайте
Чтоб начинал стрелять, проверяй дистанцию между объектами:

Code
distance = point_distance(self.x, self.y, player.x, player.y);


Чтоб начал следовать за игроком, можешь за шаг вычитать или прибавлять координаты

пример для x координаты:

Code


// self - танк
// tank_step - шаг танка в пикселях
// distance - минимальная дистанция для начала движения танка

     if((self.x > player.x) and ((self.x - player.x) > distance)){
       self.x -= tank_step;
     } else
     if((self.x < player.x) and ((player.x - self.x) > distance)) {
       self.x += tank_step;
     } else {
       self.x = player.x;
     }



Сообщение отредактировал Lightsoft - Суббота, 18 Февраля 2012, 17:13
LightsoftДата: Суббота, 18 Февраля 2012, 16:42 | Сообщение # 29 | Тема: Очередь объектов
частый гость
Сейчас нет на сайте
Подскажите алгоритм для решения следующей задачи:
Имеется игрок. Его окружают зомби со всех сторон и строятся в очередь за другими зомби. Если ближайших зомби убить, то остальные должны занять их место, т.е. должна двигаться очередь. Я делал через события коллизиий.

Проблема:
Если срабатывало событие коллизий одного зомби с другими, то зомби не могли двигаться к игроку, и, если переместить игрока то они останутся на своем месте не сдвигаясь (из-за коллизий).
LightsoftДата: Понедельник, 17 Января 2011, 21:28 | Сообщение # 30 | Тема: Вопрос по Delphi
частый гость
Сейчас нет на сайте
Да, обращайся. Рад помочь. smile
LightsoftДата: Понедельник, 17 Января 2011, 21:22 | Сообщение # 31 | Тема: Вопрос по Delphi
частый гость
Сейчас нет на сайте
readln() - это используется пользователем для ввода с клавиатуры значения в консольном приложении. В моем коде он заполняет каждый элемент массива в цикле. Т.е. ты вводишь N-е кол-во раз число и и это число сохраняется в элементе массива. Так заполняется весь массив с клавиатуры...
writeln() - это для вывода в окно консоли в данном случае.
В твоем случае VCL приложение и тебе использовать эти функции не надо.
LightsoftДата: Понедельник, 17 Января 2011, 21:12 | Сообщение # 32 | Тема: Вопрос по Delphi
частый гость
Сейчас нет на сайте
Quote (EXP0)
я ввожу данные в стриггрид и нажимаю выполнить, т.е получается, что данные считываются с stringgrid? а полученное значение выводится в memo?

Да, именно так.
LightsoftДата: Понедельник, 17 Января 2011, 21:04 | Сообщение # 33 | Тема: Вопрос по Delphi
частый гость
Сейчас нет на сайте
Quote (EXP0)
не понял твой последний комментарий

Если я тебя правильно понял то тебе надо перед этим кодом сначала заполнить массив теми данными, что в таблице, либо прямо из таблицы их брать не используя массив и в конце уже сравнивать тем кодом, который выше. Это уже как тебе удобней.
LightsoftДата: Понедельник, 17 Января 2011, 20:56 | Сообщение # 34 | Тема: Вопрос по Delphi
частый гость
Сейчас нет на сайте
Quote (EXP0)
хорошо, а в начале программы нужно описывать сам StringGrid?

можно массив заполнить данными из StringGrid, либо переделать код чтоб он сразу значения из StringGrid брал
LightsoftДата: Понедельник, 17 Января 2011, 20:51 | Сообщение # 35 | Тема: Вопрос по Delphi
частый гость
Сейчас нет на сайте
EXP0,
Code

program Project1;

{$APPTYPE CONSOLE}

uses
   SysUtils;

const N = 6; // Кол-во элементов в массиве
var arr: array [1..N] of Integer;
var i, c: integer;
begin
   for I := 1 to N do // { В цикле заполняем массив
     readln(arr[i]);  // }
   c := 0; // Начальное кол-во элементов = 0
   for I := 2 to N do  // { Сравниваем первый элемент с остальными в цикле
     if arr[I] > arr[1] then // }
       inc(c); // Увеличиваем счетчик (+1)
   writeln(c); // Выводим кол-во элементов
   readln; // Ожидаем нажатия Enter для закрытия консоли
end.

LightsoftДата: Понедельник, 17 Января 2011, 19:53 | Сообщение # 36 | Тема: BolgenOS
частый гость
Сейчас нет на сайте
Ребят, вы это посмотрите:
раз
два
три
biggrin
Форум игроделов » Записи участника » Lightsoft [36]
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг