Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
☆ Форумчанин(FSC)☆
 Аватар для 2ima
911 / 292 / 27
Регистрация: 28.04.2013
Сообщений: 2,466
Записей в блоге: 10

Как сделать простейшую систему управления обьектом на форме

16.07.2013, 21:40. Показов 1389. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я делаю игру в котором летит вертолет(в 2d), но летает он у меня только по заданным параметрам(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
        POINT p;
        GetCursorPos(&p);
 
        POINT pp;
        pp.x = Label1->Left;
        pp.y = Label1->Top;
        ::ClientToScreen(Handle, &pp);
 
        int iSpeed = 1;
 
        if ( pp.x < p.x ) Label1->Left += iSpeed;
        else if ( pp.x > p.x ) Label1->Left -= iSpeed;
        if ( pp.y < p.y ) Label1->Top += iSpeed;
        else if ( pp.y > p.y ) Label1->Top -= iSpeed;}
Мой вопрос таков, как сделать простейшую систему управления вертолетом(ми-24), чтобы с помощью стрелочек на клавиатуре он летал вниз, вверх, вперед, назад соответственно(тоесть для этого нам необходимо считать у пользователя нажатие клавишu с помощью key_bd и и отправить ее функции управления полетов вертолетом)...Может кто видел то похожее или когда-то сам такое делал....Ах да, чуть не забыл, как сделать чтоб вертолет не вылетал за форму???????
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2013, 21:40
Ответы с готовыми решениями:

Как сделать статическое положение элементов управления на форме?
есть форма с фоном из картинки и на не элементы управления. они расположены на нужный местах картинки поэтому небольшой сдвиг портит...

Реализовать простейшую систему инвентаризации
Помогите сделать ДЗ. &gt;&gt;Написать Простейшую систему инвентаризации позволяющую вводить, удалять, просматривать данные и выходить....

Как организовать систему управления контентом?
Как организовать систему управления контентом? Предполагается использовать на локальном компьютере. Состав системы. Рубрикатор...

1
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
16.07.2013, 23:37
если правильно понял то вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int positionX, positionY;
int size = 20;
Graphics::TBitmap*background;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
clearScreen();
 onMove();
 background->Canvas->Rectangle(positionX, positionY,positionX+size, positionY+size) ;
 Form1->Canvas->Draw(0,0,background);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
positionX = 100;
positionY = 300;
background = new Graphics::TBitmap(); //Çàäíèé áóôôåð
background->Width=Form1->Width;
background->Height=Form1->Height;
}
//---------------------------------------------------------------------------
void TForm1::gravity(){
        positionY+=5;
}
 
bool up,down,right,left;
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if(Key == 'W')up=true;
if(Key == 'S')down=true;
if(Key == 'D')right=true;
if(Key == 'A')left=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if(Key == 'W')up=false;
if(Key == 'S')down=false;
if(Key == 'D')right=false;
if(Key == 'A')left=false;
}
//---------------------------------------------------------------------------
void TForm1::onMove(){
if(!up)gravity();
if(up && positionY>5)positionY-=5;
if(down && positionY + size < Form1->Height - size )positionY+=5;
if(right && positionX + size < Form1->Width - size)positionX+=5;
if(left && positionX>5)positionX-=5;
}
void TForm1::clearScreen(){
background->Canvas->Brush->Color=clWhite;
background->Canvas->Rectangle(0,0,Form1->Width,Form1->Height);
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.07.2013, 23:37
Помогаю со студенческими работами здесь

Как мне сделать чтобы m отображалось в форме как t, и увеличение происходило в такой же форме?
Доброго времени суток. помогите решить проблему. в приведенном ниже коде происходит добавление времени. как мне сделать чтобы m...

Как сделать чтобы панели элементов управления находились "элементы управления" нужного формата?
По умолчанию формат &quot;элемента управления&quot; &quot;Поле&quot;: высота - 0,556 см; ширина - 3,0 см; шрифт - 11. Как сделать чтобы по...

Как запретить наследование элементов управления на форме
Добрый день, вот столкнулся с такой проблемой. У меня, при нажатии на кнопку, появляется еще одна форма, новая форма наследуется от...

Я решил Задачу на Произвольную Пространственную Систему Сил, решил систему из 5 неизвестных, КАК СДЕЛАТЬ ПРОВЕРКУ РЕШЕНИЯ ?
КАК СДЕЛАТЬ ПРОВЕРКУ РЕШЕНИЯ ?? ПРОВЕРКУ НЕ СИСТЕМЫ, А САМОГО РЕШЕНИЯ, то есть сумму моментов всех сил относительно каких точек...

Как сделать фильтр в подчиненной форме по диапазону дат введенной в главной форме?
Всем доброго дня! Такая проблема: Есть подчин/форма и и в ней поле DataZayavki. Из главной формы вводится диапазон от Dz до Dz1. Вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru