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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2007, 16:42   #41
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,692
По умолчанию

Цитата:
Сообщение от Simply-Art Посмотреть сообщение
Подскажите как обрабатывать сразу несколько клавишь, вот например в аркаде, надо одновременно жать W и D (вперёд и вправо). Как это реализовать?
Код:
var
  Key: tkeyboardstate;
  i: integer;
begin
  form1.Caption:='';
  windows.GetKeyboardState(key);
  for i:=0 to 255 do
    if (key[i]=128)or(key[i]=129)then
      form1.Caption:=form1.Caption+' '+inttostr(i);
end;
Попробуй в таймере.
Kostia вне форума Ответить с цитированием
Старый 03.12.2007, 21:28   #42
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Pfent, вот примерчик. Все грубо, установи смещение на картинку и будет идти туда куда ткнул мышью.
Вложения
Тип файла: rar 11.rar (166.7 Кб, 326 просмотров)
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 04.12.2007, 09:39   #43
Pfent
Пользователь
 
Аватар для Pfent
 
Регистрация: 02.12.2007
Сообщений: 22
По умолчанию

Огромное спасибо за пример
Pfent вне форума Ответить с цитированием
Старый 05.12.2007, 14:35   #44
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Пользоваться таймером. там прописать что то типа если координата х больше левфт то лефт=лефт+1.... то же самое с у, кроме того может быть такое что добавлять надо не единицу... можно попробовать реализовать это через уравнение прямой...
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 07.12.2007, 00:30   #45
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Вот вам в качестве урока по созданию логических игр (это не РПГ =).
Исходник игры кликомания (коллапс) на Дельфи.
http://www.programmersforum.ru/attac...4&d=1196863119
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 вне форума Ответить с цитированием
Старый 26.12.2007, 08:55   #46
BBagi
Пользователь
 
Аватар для BBagi
 
Регистрация: 25.12.2007
Сообщений: 11
По умолчанию

Всем приветик=) Помогите произошел клинический ступор=) Гляньте свежим взглядом....=) Cуть задачи такова: кнопка при нажатии двигается вправо до ходя до края формы а после ползет в лево.

Procedure TForm1. для нажатия...
begin
if Button1.Left>600 then Button1.left:=Button1.left-5 else
if Button1.left<600 then Button1.left:=Button1.left+5 else
Button1.left:=Button1.left+5
end; end.

Сама вижу что даю условие до 600 она доползает и начинает дергаться то +5 то _5. Тут как-то может нужно вести переменную и менять ей знак?
BBagi вне форума Ответить с цитированием
Старый 27.12.2007, 17:32   #47
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Просто введи переменную булевского типа заначение фалз, если достигнут предел движени вправо изменить на тру если значение тру двигать влево при достижени крайнего левого пложение опять изминить значение на фалз...
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 01.01.2008, 18:47   #48
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Еще можешь сделать переменную Speed: integer; определяющую скорость, т.е. на сколько пикселей за раз перемещается кнопка.
При достижении стенок меняешь знак скорости +/-
if (Button1.Left>600)or(Button1.left<0 ) then Speed:=0-Speed;
Потом в любом случае прибавляешь эту скорость
Button1.left:=Button1.left+Speed;
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.02.2008, 20:44   #49
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Тут уже рассматривался пример движения оъекта при нажатии на кнопки с клавиатуры, а если одновременно нажаты влево и вверх?
или пользователь пользуется "перекатом"(не отпуская жмет на другую кнопку. а потом первую отпускает)
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 04.02.2008, 21:17   #50
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Еще один вопрос.Как клонировать обьект
Допустим стратегия. Нужно построить дом. Допустим это Image.
Как сделать так чтоб создавался image в определенной области формы (любое количество, сколько вздумается пользователю) с соответствующим изображением здания
И к этому image относились бы все процедуры заранее оговоренные для данного типа сооружения
Например при двойном нажатии активировлась какая-то панель или что-то вроде этого.
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Ответ


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



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