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

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

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


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

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

Ответ
 
Опции темы
Старый 22.08.2010, 17:34   #501
Alexan-Dwer
Форумчанин
 
Аватар для Alexan-Dwer
 
Регистрация: 20.04.2009
Адрес: Россия
Сообщений: 136
Репутация: 38
По умолчанию

Цитата:
В каком смысле выглядит не эффектно?
Не знаю, возможно, это я уже придираюсь. Так же не понятно поведение формы при Alt+Tab: Во всех играх при полноэкранном режиме выкидывает на рабочий стол, а у меня форма как бы отходит на задний план и видно лишь диспетчер задач.
Хорошо, пусть будет так. Если я правильно понимаю, то особой разницы между теми примерами, которые я привел, нет. Поэтому я выбрал:
Код:

Form1.BorderStyle:=bsNone;
Form1.Top:=0; Form1.Left:=0;
Form1.Width:=Screen.Width; Form1.Height:=Screen.Height;

Вопрос в том, всегда ли компонент Screen правильно возвращает размер?
Alexan-Dwer вне форума   Ответить с цитированием
Старый 09.09.2010, 23:36   #502
DomiNick
Студент, не
Профессионал
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Адрес: Россия-Матушка, ул.«Эльфов 80-го уровня», спросить "сáмого Эльфа"...
Сообщений: 2,067
Репутация: 440
По умолчанию

Цитата:
Вопрос в том, всегда ли компонент Screen правильно возвращает размер?
А проверить?
Если есть сомнения - используйте WinAPI...
Цитата:
Не знаю, возможно, это я уже придираюсь. Так же не понятно поведение формы при Alt+Tab: Во всех играх при полноэкранном режиме выкидывает на рабочий стол, а у меня форма как бы отходит на задний план и видно лишь диспетчер задач.
Окно во весь экран и полноэкранный режим - это не одно и то же...
Цитата:
при Alt+Tab
Ну можно попробовать запретить Alt+Tab...
__________________
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума   Ответить с цитированием
Старый 17.10.2010, 15:58   #503
DenTiSt
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 19
Репутация: 10
По умолчанию

Вот мне тоже интересно: как включить полноэкранный режим в Delphi? Просто форма на весь экран - выглядит не очень, т.к. она просто будет закрывать собой рабочий стол и панель задач (хотя у меня не закрывает панель задач), и окна с более высоким приоритетом (типа диспетчера задач) будут вылазить на верх. Другое дело, как сделать так, чтобы только моя программа была на экране? Например, в Pascal при нажатии alt+enter или в консольном приложении Delphi окно разворачивается в полноэкранный режим, как в современных 3D-играх. Как сделать такой же эффект в "обычном" приложении на Delphi?
DenTiSt вне форума   Ответить с цитированием
Старый 17.10.2010, 16:27   #504
Selestis
Участник клуба
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Адрес: Самара
Сообщений: 719
Репутация: 268
По умолчанию

Ну, можете заюзать directX/openGL и создать полноэкранный контекст. Ну или FormStyle:=fsStayOnTop...
__________________
Изобретатель велосипедов
Selestis вне форума   Ответить с цитированием
Старый 24.11.2010, 00:07   #505
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 10.12.2009
Сообщений: 29
Репутация: 10

icq: 200668019
skype: like_cloud
По умолчанию

ребят,есть вопрос:

есть несколько элементов в графике через канву. они двигаються друг за другом гуськом. Т.е. типа как в змейке. Уже несколько часов ломаю голову над алгоритмом. Подскажите? можно без кода,просто словестно (хочется все-таки до конца додумать уже самому)
like_cloud вне форума   Ответить с цитированием
Старый 24.11.2010, 00:21   #506
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Адрес: Туапсе
Сообщений: 279
Репутация: 196
По умолчанию

Цитата:
Сообщение от like_cloud Посмотреть сообщение
ребят,есть вопрос:

есть несколько элементов в графике через канву. они двигаються друг за другом гуськом. Т.е. типа как в змейке. Уже несколько часов ломаю голову над алгоритмом. Подскажите? можно без кода,просто словестно (хочется все-таки до конца додумать уже самому)
Если конкретно змейка, то все просто. Удаляешь один элемент в конце и добавляешь один вначале. Если нужно что бы змейка росла, то добавляешь не удаляя.
__________________
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума   Ответить с цитированием
Старый 24.11.2010, 00:39   #507
Beermonza
Инженер ИС
Профессионал
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
Репутация: 746
По умолчанию

"Змейка" - это одномерный массив. Каждая ячейка - звено змейки. Каждое звено имеет X и Y координату клетки в которой находится. "Перемещение" начинается с хвоста. Каждое звено берет себе координаты вышестоящего, и в финале головное звено перемещается в нужном направлении от текущего положения. Далее отрисовка змейки в нужном положении по массиву.

При смещении головного звена выполняется проверка всего массива, на предмет столкновения с самим собой (координаты головы равны координатам одного из звеньев). Рост змейки - это когда массив увеличивается на 1 ячейку, головное звено становится вторым, а новое - головным. Все координаты остаются прежними, просто добавляется еще одно звено, с координатами в зависимости от направления движения.
__________________
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума   Ответить с цитированием
Старый 07.12.2010, 17:49   #508
Enlightened
Пользователь
 
Регистрация: 15.08.2010
Сообщений: 24
Репутация: 12
По умолчанию

Kostia, в посте №125 вы выложили игру, спасибо за исходники, я стал разбираться и не все понял. Не могли бы вы мне разъяснить эти 2 куска кода - столкновения по Х и У координатам:
Код:

function CollisionX(c:byte): boolean;
begin
  Result:=False;
  if (map[round(xp+sx+4)div 16,round(yp+sy+4)div 16]=c)or
     (map[round(xp+sx+4)div 16,round(yp+sy+11)div 16]=c)or
     (map[round(xp+sx+11)div 16,round(yp+sy+4)div 16]=c)or
     (map[round(xp+sx+11)div 16,round(yp+sy+11)div 16]=c)then
     Result:=True;
end;

function CollisionY(c:byte): boolean;
begin
  Result:=False;
  if (map[round(xp+4)div 16,round((yp+sy+4))div 16]=c)or
     (map[round(xp+11)div 16,round((yp+sy+4))div 16]=c)then
     Result:=true;
end;

Откуда взялись цифры 4 и 11? 0_о
Я пишу арканоид, так же, на канве, массив храниться отдельно, считывается, рисуется со смещением на игровое поле, как мне организовать подобные функции?
Подскажите плз
Enlightened вне форума   Ответить с цитированием
Старый 19.12.2010, 23:50   #509
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Адрес: Воронеж
Сообщений: 140
Репутация: 26
По умолчанию

В одном посте приводился следующий код, который проверяет нажата ли определённая клавиша:
Код:

function IsKeyDown(Key: byte): boolean;
begin
  Result := false;
  if (Keys[Key] = 128) or (Keys[Key] = 129) then Result := true;
end;

А можно ли как-нибудь наоборот: получить код нажатой клавиши и вообще определить, нажата хоть какая-нибудь клавиша или нет. Подразумевается, что события формы OnKeyDown, OnKeyPress и OnKeyUp не используются.
Asker13 вне форума   Ответить с цитированием
Старый 20.12.2010, 00:44   #510
Гром
Профессионал
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
Репутация: 473

icq: 482-373-277
По умолчанию

Кажется, оно:
GetKeyState
GetKeyboardState
__________________
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума   Ответить с цитированием
Ответ

Опции темы

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

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


06:16.


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

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