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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2006, 20:06   #11
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

Флеш,
повыставляй в цыклах application.processmessage;
Перед Sleep;
writeln('Hello Dude!!!');
-=DeS=- вне форума Ответить с цитированием
Старый 20.12.2006, 20:12   #12
Flash_
Пользователь
 
Аватар для Flash_
 
Регистрация: 19.12.2006
Сообщений: 91
По умолчанию

не работает:
[Error] game.pas(36): Undeclared identifier: 'processmessage'
Flash_ вне форума Ответить с цитированием
Старый 20.12.2006, 20:31   #13
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Цитата:
Сообщение от Flash_ Посмотреть сообщение
не работает:
[Error] game.pas(36): Undeclared identifier: 'processmessage'
Ну во-первых

Код:
application.ProcessMessages;
А во-вторых можно так:
Код:
Shape1.Repaint;
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 20.12.2006, 20:49   #14
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

Ну копипастить тоже недело!!!
Да а вообще я бы использовал таймер...
writeln('Hello Dude!!!');

Последний раз редактировалось -=DeS=-; 20.12.2006 в 20:57.
-=DeS=- вне форума Ответить с цитированием
Старый 20.12.2006, 21:03   #15
Flash_
Пользователь
 
Аватар для Flash_
 
Регистрация: 19.12.2006
Сообщений: 91
По умолчанию

Всё работает как надо! -=Des=-, AVer - респект=)
Ток трабл такой: на кнопки понажимаешь, перестаёшь - а шарик по экрану ещё катается! Гг
И ещё надо как-то его движения ограничить - чтоб нельзя было за пределы формы уезжать=)
Flash_ вне форума Ответить с цитированием
Старый 20.12.2006, 21:06   #16
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
По умолчанию

Флэш давай игру то =) поиграем вместе...
writeln('Hello Dude!!!');
-=DeS=- вне форума Ответить с цитированием
Старый 20.12.2006, 21:14   #17
Flash_
Пользователь
 
Аватар для Flash_
 
Регистрация: 19.12.2006
Сообщений: 91
По умолчанию

Дес, игры пока что нет..( Есть шарик и форма. ПОка что всё.. Но есть Кууучча идей - осталось реализовать. Чем и занимаюсь. Думаю что-то игроподобное будет уже через пару дней. Так вот.=)
Хотя если хочешь - могу шарик с формой залить.) Покатаем его вместе..хх))
Flash_ вне форума Ответить с цитированием
Старый 20.12.2006, 21:26   #18
-=DeS=-
Форумчанин
 
Аватар для -=DeS=-
 
Регистрация: 20.12.2006
Сообщений: 135
Восклицание

возможно во время плавного перемещения
обьекта тебе потребуется перерисовка других обьектов, а процедура Sleep стопорит обработку сообщений в главном потоке.
+ к этому, как я понял KeyDown обработает все клавиши нажатые даже во время Sleep, а значит если игрок быстро нажмет несколько раз клавиши, а потом перестанет нажимать то ему придется подождать пока обьект закончит перемещение...
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

const GridStep = 50;

type
TForm1 = class(TForm)
    face: TShape;
    tmrMain: TTimer;
    procedure tmrMainTimer(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
{ Private declarations  }
XStep, YStep : Integer;
  public
{ Public declarations  }
end;

Far
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.tmrMainTimer(Sender: TObject);
begin
Face.Top := Face.Top+YStep;
  Face.Left := Face.Left+XStep;

  if (Face.Top mod GridStep) = 0 then
YStep := 0;

  if (Face.Left mod GridStep) = 0 then
XStep := 0;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState)
begin
case Key of
VK_UP : YStep := -5;
    VK_DOWN : YStep := 5;
    VK_LEFT : XStep := -5;
    VK_RIGHT : XStep := 5;
  end;
end.

end.
В начальное положение face:
Top и Left должны быть кратны GridStep.

Пример простой и довольно "хреновенький" но поэксперементировать и подогнать под задачу вполне реально.
Если требуется что бы при зажатой клавише обьект всегда перемещался используй GetKeyState, тогда обрабатывать
KeyDown не требуется... В коде специально допущены ошибки, чтобы копипастить не повадно было...
writeln('Hello Dude!!!');

Последний раз редактировалось -=DeS=-; 21.12.2006 в 00:14.
-=DeS=- вне форума Ответить с цитированием
Старый 26.12.2006, 21:14   #19
Flash_
Пользователь
 
Аватар для Flash_
 
Регистрация: 19.12.2006
Сообщений: 91
По умолчанию

Спасибо, твой способ, конечно, правильней..

P.S. После нескольких дней "упорных трудов" получилось что-то отдаленно напоминающее досовскую игру Pacman. А сегодня взялся книгу по OpenGL читать и понял - чтобы что-то хоть немного стоящее сделать - надо учиться, учиться и учиться. А не задавать тупые вопросы...
Flash_ вне форума Ответить с цитированием
Старый 30.12.2006, 18:28   #20
PikeIt
НачПрог
 
Регистрация: 23.12.2006
Сообщений: 7
По умолчанию

Делаю игрушку(Ракетой надо взлететь с одного космодромчика на другой(учитывая скорость, угол, точность приземления, время, колво топлива(мож еще что дабавлю)))
У меня в ней работают 2 таймера(либо 1 либо другой)
и вот думаю мне проверку точности приземления, полета за границу уровня... вставать в каждый из таймеров или лучше создать 3 таймер который будет все это проверять? посоветуйте
program qwe;
PikeIt вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер в С# kommunist Общие вопросы .NET 3 02.06.2008 12:11
таймер Романнн Общие вопросы Delphi 19 19.12.2007 15:33
таймер darkcoder Общие вопросы Delphi 5 06.12.2007 06:14
Таймер Stanislav Общие вопросы Delphi 3 26.11.2007 06:52
Таймер Blondinko Помощь студентам 6 23.10.2007 10:35