SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Загрузка игры из главного меню
В этой теме 1 ответ, 2 участника, последнее обновление BunDem 4 года/лет, 5 мес. назад.
Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
-
АвторСообщения
-
Здравствуйте, как реализовать открытие уровней игры при нажатии на “новая игра” (menuNum=1) . Помогите пожалуйста =)
C++12345678910111213141516#include <SFML/Graphics.hpp>#include "menu.h"using namespace sf;int main(){RenderWindow window(VideoMode(640, 480), "Game!",Style::Titlebar);menu(window);return 0;}C++12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576#pragma once#include <SFML/Graphics.hpp>#include <Windows.h>using namespace sf;void menu(RenderWindow& window){Texture menuTexture1, menuTexture2, menuTexture3, aboutTexture, menuBackground, exitTo;menuTexture1.loadFromFile("images/111.png");menuTexture2.loadFromFile("images/222.png");menuTexture3.loadFromFile("images/333.png");aboutTexture.loadFromFile("images/background.jpg");menuBackground.loadFromFile("images/main3.jpg");Sprite menu1(menuTexture1), menu2(menuTexture2), menu3(menuTexture3), about(aboutTexture), menuBg(menuBackground);bool isMenu = 1;int menuNum = 0;RectangleShape rec;rec.setSize(Vector2f(320, 240));rec.setFillColor(Color(184, 134, 11, 200));rec.setPosition(160, 120);Font font;font.loadFromFile("18157.ttf");Text text("", font, 20);text.setFillColor(Color::Black);text.setPosition(200, 170);menu1.setColor(Color::Red);menu1.setPosition(380, 130);menu2.setPosition(420, 200);menu3.setPosition(420, 270);while (window.isOpen()){Event event;while (window.pollEvent(event)){if (event.type == Event::Closed){window.close();}}menu1.setColor(Color::White);menu2.setColor(Color::White);menu3.setColor(Color::White);menuNum = 0;if (IntRect(380, 130, 300, 50).contains(Mouse::getPosition(window))) { menu1.setColor(Color::Blue); menuNum = 1; }if (IntRect(420, 200, 300, 50).contains(Mouse::getPosition(window))) { menu2.setColor(Color::Blue); menuNum = 2; }if (IntRect(420, 270, 300, 50).contains(Mouse::getPosition(window))) { menu3.setColor(Color::Blue); menuNum = 3; }if (Mouse::isButtonPressed(Mouse::Left)){if (menuNum == 1) { }if (menuNum == 2) { window.draw(about); window.draw(rec); text.setString(L"\nЭто моя игра"); window.draw(text); window.display(); while (!Keyboard::isKeyPressed(Keyboard::Escape)); }if (menuNum == 3) { window.close(); isMenu = false; }if (menuNum == 4) { window.close(); }}window.draw(about);window.draw(menuBg);window.draw(menu1);window.draw(menu2);window.draw(menu3);window.display();}}Вложения:
You must be logged in to view attached files.нужно поместить логику игры в отдельный класс. После нажатия кнопки “новая игра”, запускать игровой цикл.
-
АвторСообщения
Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
Для ответа в этой теме необходимо авторизоваться.