Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

icq: 563981551
По умолчанию

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

icq: 401708834
По умолчанию

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

Учить однозначно стоит, если в перспективе игры только под Windows, учи DirectX. Если больше интересует кроссплатформ, твой выбор - OpenGL.
Не хочешь вникать в детали, есть движки, к-рые многое делают за тебя. Тут правда придется учить интерфейс движка, но он обычно намного легче и более высокоуровневый чем "родной" интерфейс библиотек.
mutabor вне форума   Ответить с цитированием
Старый 04.06.2008, 16:12   #83
Beermonza
Инженер ИС
Профессионал
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
Репутация: 746
По умолчанию 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,928
Репутация: 1570

icq: 401708834
По умолчанию Шахматный интерфейс коня )))

Человек просил ход конем, выкладываю в уроках, может еще кому пригодится. Когда-то это должны были быть шашки, но теперь будут шахматы, конь уже есть )
Вложения
Тип файла: rar Knight's_move.rar (241.3 Кб, 133 просмотров)
mutabor вне форума   Ответить с цитированием
Старый 04.06.2008, 18:05   #85
anton14
Форумчанин
 
Аватар для anton14
 
Регистрация: 19.04.2008
Адрес: г.Ульяновск
Сообщений: 150
Репутация: 23
По умолчанию

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

icq: 426824418
По умолчанию

например так

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
Репутация: 615

icq: 426824418
По умолчанию Идту туда куда смотрю!!!

Дума не только мне было интересно как реализовать ходьбу человека туда куда он смотрит. Возьмем тот же 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 Кб, 149 просмотров)
Kostia вне форума   Ответить с цитированием
Старый 04.06.2008, 20:18   #88
zetrix
Delphi/C++/C#
Профессионал
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,973
Репутация: 589
По умолчанию

Цитата:
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
Репутация: 615

icq: 426824418
По умолчанию

Цитата:
Сообщение от 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,928
Репутация: 1570

icq: 401708834
По умолчанию

Цитата:
извините, но мне кажется это бред...
И я того же мнения )
Или TickCount использовать или таймер, а то получается и то и другое и можно без хлеба.
mutabor вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


13:22.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru