08:54 Создание игры | |
Настало время и самим немного развлечься :) В этой статье я расскажу, как создать не сложную игру. Суть её в следующем: для запуска вам нужно нажать любую кнопку, она начнет вибрировать, при последующем нажатии на нею она перестанет вибрировать и начнет двигаться другая кнопка. Наверняка вы в такое играли. Теперь попробуйте сделать это своими руками. Запускаем C++ Builder и сохраняем проект. Размещаем компоненты на форме 10 кнопок типа Button и компонентыActionList и MainMenu с вкладки Standart (разместить можно по любому): ![]() Добавим пункты в меню дважды щелкнув по нему и переименовываем кнопки: ![]() ![]() Прописываем код для пункта меню "Выход": void __fastcall TForm1::N1Click(TObject *Sender) { Close(); } Теперь дважды щелкаем по компоненту ActionList появится окно: ![]() В поле Actions щелкаем правой кнопкой и в появившемся контекстном меню выбираем New Action. И повторяем это ещё раз, так как нам надо два Action. ![]() Не закрываем это в окно. В конструктор формы прописываем следующий код: __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { //Присваиваем элементам массива наши кнопки Buttons[1]=Button1; Buttons[2]=Button2; Buttons[3]=Button3; Buttons[4]=Button4; Buttons[5]=Button5; Buttons[6]=Button6; Buttons[7]=Button7; Buttons[8]=Button8; Buttons[9]=Button9; Buttons[0]=Button10; } Перед ним дописываем следующий код: TButton *Buttons[10];// массив из десяти кнопок //вспомогательные переменные unsigned short bt; bool flag; Так же подключаем библиотеку: #include <cstdio.h>//нужна для работы рандомайзера В окне ActionList выбираем Action1 и на вкладке Object Inspector выбираем событие onUpdate, прописываем следующий код: void __fastcall TForm1::ActionList1Update(TBasicAction *Action, bool &Handled) { if(flag){ Buttons[bt]->Top=(Buttons[bt]->Top)+5; Buttons[bt]->Top=(Buttons[bt]->Top)-5; } } Теперь дважды щелкаем по Action1 и пишем: void __fastcall TForm1::Action1Execute(TObject *Sender) { flag=1; if(flag){ Buttons[bt]->Top=(Buttons[bt]->Top)+5; Buttons[bt]->Top=(Buttons[bt]->Top)-5; } if(Button1->Focused()) bt=1; if(Button2->Focused()) bt=2; if(Button3->Focused()) bt=3; if(Button4->Focused()) bt=4; if(Button5->Focused()) bt=5; if(Button6->Focused()) bt=6; if(Button7->Focused()) bt=7; if(Button8->Focused()) bt=8; if(Button9->Focused()) bt=9; if(Button10->Focused()) bt=0; for(int i=0;i<10;i++){ Buttons[i]->OnClick=Action2Execute; // Buttons[i]->Action=Action2; } } А для Action2: void __fastcall TForm1::Action2Execute(TObject *Sender) { // Buttons[bt]->Caption=random(256); bt=random(10); } Теперь для пункта меню "Рестарт" пишем: void __fastcall TForm1::N2Click(TObject *Sender) { flag=0; bt=random(10); for (int i=0;i<10;i++){ Buttons[i]->Caption=IntToStr(i); Buttons[i]->OnClick=Action1Execute; } } Теперь выделяем все кнопки и в Object Inspector для свойства Action выбираем Action1 (После этого придется переписать свойства Caption заново). ![]() Теперь при нажатии на любую кнопку запущенного приложения, она начнет вибрировать. Если все сделано правильно, то при нажатии ещё раз начнет вибрировать другая кнопка. В общем играю на реакцию и внимание. Попробуйте передвинуть кнопки по своему или заменить их компонентами Image с подгруженными картинками. Можете скачать готовую программу здесь. http://h-l-l.ru/files/Game.exe
| |
|
Всего комментариев: 0 | |