Hallo!
Bin erst seit kurzem mit SFML am arbeiten und insgesamt 2 1/2 Monate mit Programmieren überhaupt am arbeiten.
Bin jetzt mit SFML soweit das ich ein Text habe der aufblinkt bzw farbe ändert wenn maus drüber ist , Hintergrundbild angezeigt wird und eine Backround Musik spielt, ich möchte jetzt das durch ein Klicken auf den Text Spiel beenden sich das Fenster schließt und das bei Spiel starten , das Fenster mit Scree.Clear(); "sauber" gemacht wird soweit erstaml und hier der Code(siehe Anhang).
Habe jetzt wirklich lange gerübelt und oft das tutorial auf der HP durchgelesen iwie steh ich immer noch aufm Schlauch.
Danke für die Antworten im Vorfeld.
MfG Marcel.
|
C-/C++-Quelltext
|
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/Audio.hpp>
int main()
{
sf::RenderWindow Screen(sf::VideoMode::GetDesktopMode(), "Versuch1", sf::Style::None);
//Titel Settings
sf::String Titel;
Titel.SetText("Ein kleines Spiel");
Titel.SetPosition(300, 8);
Titel.SetSize(90);
Titel.SetColor(sf::Color::Black);
//Menü Array mit Position größe ist unten!
sf::String menu[2];
menu[0].SetText("Spiel starten");
menu[1].SetText("Spiel beenden");
for (int i=0; i<2; i++)
{
menu[0].SetPosition(300,200);
menu[1].SetPosition(300,400);
}
//Event für Schleife
sf::Event Screen1;
//Bild wird geladen//
sf::Image Bild1;
if (!Bild1.LoadFromFile("Unbenannt.jpg"));
sf::Sprite Bild;
Bild.SetImage(Bild1);
Bild.SetPosition(0, 0);
//Spielt Musik ab
sf::Music Lied(96000);
if (!Lied.OpenFromFile("lol12.wav"))
return EXIT_FAILURE;
Lied.Play();
Lied.SetLoop(true);
//Schleife startet.
while (Screen.IsOpened())
{
while (Screen.GetEvent(Screen1))
{
if ((Screen1.Type == sf::Event::KeyPressed)&& (Screen1.Key.Code == sf::Key::Escape))
Screen.Close();
if (Screen1.Type == sf::Event::Closed)
Screen.Close();
}
Screen.Clear();
//Zeichnet Bild bzw das Bild im Sprite
Screen.Draw(Bild);
//Menü settings
for(int i=0; i<2; i++)
{
sf::FloatRect TextRect = menu[i].GetRect();
sf::Vector2f MousePosition(Screen.GetInput().GetMouseX(), Screen.GetInput().GetMouseY());
if (TextRect.Contains(MousePosition.x,MousePosition.y))
{
menu[i].SetColor(sf::Color::Red);
}
else
{
menu[i].SetColor(sf::Color::Black);
}
//Menü grße + die zeichnungen
menu[i].SetSize(65);
Screen.Draw(menu[i]);
Screen.Draw(Titel);
}
//Bildschirm zeigt alles.
Screen.Display();
}
// ENDE! :D
return EXIT_SUCCESS;
}
|
EDIT:Problem gelöst.