Главная
Регистрация
Вход
Вторник
19.03.2024
16:59
Приветствую Вас, Гость | RSS

Меню сайта

Друзья сайта

Категории раздела
Программы с GUI [8]
Создание программ с графическим интерфейсом пользователя

Форма входа

Наш опрос
Как вам новый дизайн сайта?
Всего ответов: 463

Пользователи

Онлайн всего: 1
Гостей: 1
Пользователей: 0

 Каталог статей 
Главная » Статьи » C++ Builder 6 - GUI » Программы с GUI

PDA-версия страницы

Создание игры

  Настало время и самим немного развлечься :) В этой статье я расскажу, как создать не сложную игру. Суть её в следующем: для запуска вам нужно нажать любую кнопку, она начнет вибрировать, при последующем нажатии на нею она перестанет вибрировать и начнет двигаться другая кнопка. Наверняка вы в такое играли. Теперь попробуйте сделать это своими руками.
  Запускаем 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 с подгруженными картинками.

Можете скачать готовую программу здесь.
Категория: Программы с GUI | Добавил: Admin (09.02.2012)
Просмотров: 13264 | Рейтинг: 5.0/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Помочь сайту!
рублей WMR
WebMoney на кошелек R407507742179

Партнёры сайта

Закладки

Поиск по сайту

Copyright H-L-L.RU © 2024
Сделать бесплатный сайт с uCoz