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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2009, 15:11   #51
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Ну так к примеру машина у вас это ImageCar, тогда для того, чтобы машина поехала вправо, нужно вписать такой код по событию таймера:
Код:
  if KeyPressed (37) then
   // Двигать машину влево ImageCar.Left := ImageCar.Left - 2;
  if KeyPressed (39) then
   // Двигать машину вправо ImageCar.Left := ImageCar.Left + 2;
Манжосов Денис :) вне форума Ответить с цитированием
Старый 27.03.2009, 15:16   #52
Соколов Дмитрий
Пользователь
 
Аватар для Соколов Дмитрий
 
Регистрация: 26.03.2009
Сообщений: 55
По умолчанию

Вот я вот так написал
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if KeyPressed (37) then
// Äâèãàòü ìàøèíó âëåâî Image3.Left := Image3.Left - 2;
if KeyPressed (39) then
// Äâèãàòü ìàøèíó âïðàâî Image3.Left := Image3.Left + 2;
Но 2 кнопки враз не работают, т.е. вперёд и влево например
Sokol
Соколов Дмитрий вне форума Ответить с цитированием
Старый 27.03.2009, 15:20   #53
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

А какой интервал у таймера?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 27.03.2009, 15:21   #54
Соколов Дмитрий
Пользователь
 
Аватар для Соколов Дмитрий
 
Регистрация: 26.03.2009
Сообщений: 55
По умолчанию

У таймера100
Sokol
Соколов Дмитрий вне форума Ответить с цитированием
Старый 27.03.2009, 15:22   #55
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Уберите весь код из процедуры OnKeyDown Form'ы и тогда ничего не будет конфликторовать. Лучше приведите полный код вашей программы.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 27.03.2009, 15:24   #56
Соколов Дмитрий
Пользователь
 
Аватар для Соколов Дмитрий
 
Регистрация: 26.03.2009
Сообщений: 55
По умолчанию

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Timer1: TTimer;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

function keypressed(key: byte): boolean;
var
keys: TKeyboardState;
begin
result:=false;
GetKeyboardState(keys);
if(keys[key]=128)or(keys[key]=129)then result:=true;
end;


{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_UP then image3.Top:=image3.Top-2;
if key=VK_LEFT then image3.Left:=image3.Left-2;
if key=VK_DOWN then image3.Top:=image3.Top+2;
if key=VK_RIGHT then image3.Left:=image3.Left+2;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if KeyPressed (37) then
// Двигать машину влево Image3.Left := Image3.Left - 2;
if KeyPressed (39) then
// Двигать машину вправо Image3.Left := Image3.Left + 2;

end;

end.
Sokol
Соколов Дмитрий вне форума Ответить с цитированием
Старый 27.03.2009, 15:25   #57
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Код:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function keypressed(key: byte): boolean;
var
keys: TKeyboardState;
begin
result:=false;
GetKeyboardState(keys);
if(keys[key]=128)or(keys[key]=129)then result:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if KeyPressed (37) then
// Двигать машину влево Image3.Left := Image3.Left - 2;
if KeyPressed (39) then
// Двигать машину вправо Image3.Left := Image3.Left + 2;
if KeyPressed(38) then
  Image3.Top := Image3.Top - 2;
if KeyPressed(40) then
  Image3.Top := Image3.Top + 2;
end;

end.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 27.03.2009, 15:26   #58
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

из FormKeyDown убери код, и все будет нормально!
Shadow_1329 вне форума Ответить с цитированием
Старый 27.03.2009, 15:26   #59
Соколов Дмитрий
Пользователь
 
Аватар для Соколов Дмитрий
 
Регистрация: 26.03.2009
Сообщений: 55
По умолчанию

конфликтов нет,просто хочу, чтобы поворот нормальный был, с поворотом картинки, и ее смещением в нужную сторону, ну как положено при повороте тачки
Sokol
Соколов Дмитрий вне форума Ответить с цитированием
Старый 27.03.2009, 15:28   #60
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

http://www.google.ru/search?hl=ru&q=...e&lr=&aq=f&oq=
Манжосов Денис :) вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание 3d игры на C++ Wakatsusiro Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 26.11.2011 01:45
Создание 2d RPG игры VTR Gamedev - cоздание игр: Unity, OpenGL, DirectX 29 19.05.2009 16:34
Создание игры РПГ (RPG) vzov Qt и кроссплатформенное программирование С/С++ 18 13.05.2009 03:12
Создание игры Revival001 Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 24.01.2009 19:54
Создание игры Packman AngelOfDeath Gamedev - cоздание игр: Unity, OpenGL, DirectX 17 27.08.2008 13:15