Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2008, 22:45   #81
L_M
Форумчанин Подтвердите свой е-майл
 
Регистрация: 25.02.2008
Сообщений: 289
По умолчанию

я еще не делал игр с движением, поэтому не знаю: стоит ли выводить на канву формы? или сразу надо учить, например опенгль. при рисовании по канве возникает мерцание... В общем что перспективнее: простота канвы или красота более профессиональных библиотек. И подскажите если стоит чего - учить, то что.
Упс...
L_M вне форума Ответить с цитированием
Старый 03.06.2008, 23:54   #82
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Не путай библиотеки с умением делать игры. Библиотека это инструмент, как у художника кисть. Если ты в принципе можешь сделать игру, не важно в чем, ты сможешь сделать ее и в OpenGL, естественно после того как научишься с ней работать. Простой пример: в справке Дельфи описаны все функции канвы, ты видел там пример игры? Вот и в мануалах к OpenGL не увидишь.
Нужно кстати поднять общий уровень программирования, не только что касается игр. А то элементарно будут технические проблемы подключения, импортирования функций и т.д.

Учить однозначно стоит, если в перспективе игры только под Windows, учи DirectX. Если больше интересует кроссплатформ, твой выбор - OpenGL.
Не хочешь вникать в детали, есть движки, к-рые многое делают за тебя. Тут правда придется учить интерфейс движка, но он обычно намного легче и более высокоуровневый чем "родной" интерфейс библиотек.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 04.06.2008, 16:12   #83
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию Canvas.Draw

Цитата:
Сообщение от L_M Посмотреть сообщение
... при рисовании по канве возникает мерцание...
Это явление нелогичной последовательности операций. Обычно мы выводим графику через Canvas.Draw когда нам вздумается, в циклах множество раз и тп. Как происходит отображение графики в OGL и DX? ...строится кадр в буфере и только самой последней командой выводится видеокартой на экран. Если делать Flip (вывод буфера на экран) когда вздумается, то будет такое же мерцание, падение fps, и нагрузка на видеокарту многократно возрастет. Так вот, применительно к играм: канвой (Canvas.Draw) нужно пользоваться только при выводе готового кадра, а построение выполнять в буфере.

Канва для игр перспективной вообще в принципе быть не может, ...это только некоторые экземпляры не требующие быстрого вывода и большого fps: типа первой Цивилизации или древней Симсити, карточных игр, простейших шахмат и пр. могут быть на ней реализованы в качестве макета, первого теста, учебного пособия, для себя от нечего делать, или как еще угодно.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 04.06.2008, 17:26   #84
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию Шахматный интерфейс коня )))

Человек просил ход конем, выкладываю в уроках, может еще кому пригодится. Когда-то это должны были быть шашки, но теперь будут шахматы, конь уже есть )
Вложения
Тип файла: rar Knight's_move.rar (241.3 Кб, 146 просмотров)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 04.06.2008, 18:05   #85
anton14
Форумчанин
 
Аватар для anton14
 
Регистрация: 19.04.2008
Сообщений: 150
По умолчанию

А можно еще вопрос? Как сделать, чтоб картинка (допустим через 5 сек) появлялась в разных местах (то там, то здесь). Представление имею как делать, но решил все же уточнить, Спасибо!
anton14 вне форума Ответить с цитированием
Старый 04.06.2008, 18:18   #86
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

например так

if GetTickCount mod 5000 = 0 then form1.Canvas.Draw(random(100),rando m(100),pic);

Хотя правильнее было бы так

Код:
var
  time: integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
  time:=GetTickCount;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if GetTickCount - time >= 5000 then
  begin
    form1.Canvas.Draw(random(form1.ClientWidth-pic.Width),
                      random(form1.ClientHeight-pic.Height),pic);
    time:=GetTickCount;
  end;
end;

Последний раз редактировалось Kostia; 04.06.2008 в 18:23.
Kostia вне форума Ответить с цитированием
Старый 04.06.2008, 18:57   #87
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию Идту туда куда смотрю!!!

Дума не только мне было интересно как реализовать ходьбу человека туда куда он смотрит. Возьмем тот же Crimsonland где человечек смотрит на мышь и идет туда по нажатию кнопки W. По этому алгоритму можно реализовать полет пули.

Вспомним тригонометрию, уравнение окружности выглядит следующим образом:

x=cos(a);
y=sin(a);

Рассмотрим x и y не как точки, а как некий прирост по оси x и оси y.
Допустим что a=pi/4, то sin(pi/4)=sqrt(2)/2 и cos(pi/4)=sqrt(2)/2, это значит, что нам нужно из начала координат (0,0) сдвинуться по оси x и y на sqrt(2)/2 и поставить там точку.

А теперь задача с человечком. Допустим, что угол его взора равен a и нам необходимо изменить его координаты x и y так чтобы он пошел вперед.

x:=x+cos(a);
y:=y+sin(a);

чтобы он пошол назад

x:=x-cos(a);
y:=y-sin(a);

вот и все
Вложения
Тип файла: rar move.rar (6.7 Кб, 160 просмотров)
Kostia вне форума Ответить с цитированием
Старый 04.06.2008, 20:18   #88
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
var
time: integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
time:=GetTickCount;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if GetTickCount - time >= 5000 then
begin
form1.Canvas.Draw(random(form1.Clie ntWidth-pic.Width),
random(form1.ClientHeight-pic.Height),pic);
time:=GetTickCount;
end;
end;
извините, но мне кажется это бред...
чем оно отличается от этого:
Код:
//интервал таймера выставить в 5000

procedure TForm1.Timer1Timer(Sender: TObject);   
begin  
form1.Canvas.Draw(random(form1.ClientWidth-pic.Width), random(form1.ClientHeight-pic.Height),pic);   
end;
zetrix вне форума Ответить с цитированием
Старый 04.06.2008, 20:43   #89
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Цитата:
Сообщение от zetrix Посмотреть сообщение
извините, но мне кажется это бред...
чем оно отличается от этого:
Код:
//интервал таймера выставить в 5000

procedure TForm1.Timer1Timer(Sender: TObject);   
begin  
form1.Canvas.Draw(random(form1.ClientWidth-pic.Width), random(form1.ClientHeight-pic.Height),pic);   
end;
Отличие лишь в одном, ваш пример для конкретного случая, а мой для общего. Так уж меня научили, делать не одноразовые вещи, а универсальные.
Kostia вне форума Ответить с цитированием
Старый 05.06.2008, 12:47   #90
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
извините, но мне кажется это бред...
И я того же мнения )
Или TickCount использовать или таймер, а то получается и то и другое и можно без хлеба.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хорошие уроки Render Общие вопросы Delphi 9 15.09.2012 07:13
Акцесс вопросы новичков Yaga Помощь студентам 4 02.06.2008 00:16
Учебники для новичков в програмировании Рар Общие вопросы Delphi 6 08.01.2007 08:07