Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lenarano
1 / 1 / 0
Регистрация: 12.04.2014
Сообщений: 84
#1

Создание класса "Меню" в игре - C++

28.10.2015, 14:01. Просмотров 196. Ответов 0
Метки нет (Все метки)

Хочу убрать часть кода из main. Создала класс игра и 2 конструктора в нем.
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
#ifndef MENU_H
#define MENU_H
 
 
#include <SFML/Graphics.hpp>
 
class Menu{
public:
 
sf::String File;
sf::Texture texture;
sf::Sprite sprite;
 
Menu(sf::String F){
 File = F;//имя файла+расширение
 texture.loadFromFile("images/" + File);
 sprite.setTexture(texture);//заливаем спрайт текстурой
 
 }
 
Menu(sf::String F,int x,int y){
 File = F;//имя файла+расширение
 texture.loadFromFile("images/" + File);
 sprite.setTexture(texture);//заливаем спрайт текстурой
 sprite.setPosition(x,y);
 
 }
 
 
 
};
#endif MENU_H


Все еще осталось много текста в main. Не совсем понимаю что делать дальше, как создать функции и что им передать, чтобы они были перенесены в мой класс. Как их вызывать в main. Помогите.
Вот, что у меня сейчас и main
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
////////////////////Меню/////////////////////
    Menu mainmenu("mainmenu.jpg");
    Menu saver("saver.jpeg");
    Menu manual("manual.png");
    Menu new_game("new_game.png",100,30);
    Menu about_the_program("about_the_program.png",100,90);
    Menu output("output.png",100,150);
    Menu tips("tips.png",300,30);
    bool Menu=1;
    int MenuNum=0;
    
    sf::Music menu;//создаем объект музыки
    menu.openFromFile("sounds/music_menu.ogg");//загружаем файл
    menu.play();
 
    while(Menu)
    {     
        new_game.sprite.setColor(sf::Color::Green);
        about_the_program.sprite.setColor(sf::Color::Green);
        output.sprite.setColor(sf::Color::Green);
        tips.sprite.setColor(sf::Color::Green);
        window.draw(mainmenu.sprite);
        if (sf::IntRect(100,30,200,50).contains(sf::Mouse::getPosition(window))) {new_game.sprite.setColor(sf::Color::Yellow); MenuNum=1;}
        if (sf::IntRect(100,90,300,50).contains(sf::Mouse::getPosition(window))) {about_the_program.sprite.setColor(sf::Color::Yellow); MenuNum=2;}
        if (sf::IntRect(100,150,300,50).contains(sf::Mouse::getPosition(window))) {output.sprite.setColor(sf::Color::Yellow); MenuNum=3;}
        if (sf::IntRect(300,30,130,50).contains(sf::Mouse::getPosition(window))) {tips.sprite.setColor(sf::Color::Yellow); MenuNum=4;}
 
        if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
        {
            if (MenuNum==1) Menu=false;
            if (MenuNum==2) {window.draw(saver.sprite); window.display(); while(!sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)) ;}
            if (MenuNum==3)  {window.close();Menu=false;return 0;}
            if (MenuNum==4) {window.draw(manual.sprite); window.display(); while(!sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)) ;}
        }
 
 
        window.draw(new_game.sprite);
        window.draw(about_the_program.sprite);
        window.draw(output.sprite);
        window.draw(tips.sprite);   
 
        window.display();
    }
    ////////////////
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2015, 14:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание класса "Меню" в игре (C++):

Создание объекта класса сразу после его описания (между "}" и ";") - C++
Пишу проект с дюжиной хедеров и десятком cpp-шников. Мне нужны пара объектов класса А, которые должны существовать на протяжении всей...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере - C++
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном из cpp файлов(их несколько). Можно ли, как-то, использовать...

Реализация класса "Студент" и наследование от него класса "Аспирант" - C++
Помогите, пожалуйста! Создать абстрактный базовый класс Person, описывающий обычного человека. Создайте производный класс Student,...

Создание меню в консоли для работы с классом "Дробь" - C++
очень нужна помощь,как надо описать сложение вычитание умножение и деление дробей в меню ,хотя бы один пункт остальные по примеру сделаю ...

Создание меню ресторана, ошибка "No such file or directory" - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2015, 14:01
Привет! Вот еще темы с ответами:

Переопределение операторов, создание класса "Матрица" - C++
Здравствуйте, нужна помощь, уже очень долго не могу понять в чём проблема. Создал класс матрица, не работает простой код. Проблема в...

Создание динамических массивов внутри класса: Нарушение прав доступа при чтении "0xbf800000" - C++
столкнулся с непонятной для меня бедой. Если код написать внутри главной функции то всё работает. Но если попытаться перенести работу в...

Создание класса "Комплексные числа" - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; class Complex { private: double real; double image; public: Complex(double r,...

Создание и использование класса "Аквариум" - C++
Помогите с реализацией . Класс создан , а дальше немного непонятно . Класс Аквариум Скрытые поля: • Номер по порядку (назначается...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru