Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
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 |
#ifndef APPLICATION_HPP #define APPLICATION_HPP #include <SFML/Graphics.hpp> #include "ImageManager.hpp" #include "GameStateManager.hpp" class Application { public: bool run; sf::RenderWindow screen; sftools::ImageManager imgm; GameStateManager gsm; Application(); ~Application(); void input(); void logic(); void render(); }; |
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 |
#include "Application.hpp" #include "const.hpp" #include "enum.hpp" Application::Application() { run = true; this->screen.Create(sf::VideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP), "Bounce a ball against a wall."); } Application::~Application() { //imgm.Destroy("img/logo.png"); Lösche ich das Bild manuell erscheint die Verletzung nicht. } void Application::input() { this->gsm.currentState->input(); } void Application::logic() { this->gsm.currentState->logic(); if(this->gsm.nextState == STATE_EXIT) { run = false; } else { this->gsm.changeState(); } } void Application::render() { this->screen.Clear(); this->gsm.currentState->render(); this->screen.Display(); } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
int main() { while (app.run) { app.input(); app.logic(); app.render(); } return 0; } |
Community-Fossil
C-/C++-Quelltext |
|
1 |
//imgm.Destroy("img/logo.png"); Lösche ich das Bild manuell erscheint die Verletzung nicht.
|
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 |
#ifndef INTRO_HPP #define INTRO_HPP #include <SFML/Graphics.hpp> #include "GameState.hpp" class Intro : public GameState { private: sf::Sprite logo; sf::String copyright; public: Intro(); ~Intro(); void input(); void logic(); void render(); }; #endif |
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 |
#include "Intro.hpp" #include "const.hpp" #include "global.hpp" #include "enum.hpp" Intro::Intro() { app.imgm.Load("img/logo.png"); logo.SetImage(app.imgm["img/logo.png"]); logo.SetX(SCREEN_WIDTH/2-logo.GetSize().x/2); logo.SetY(20); copyright.SetText("Shane Grüling 2010"); copyright.SetX(SCREEN_WIDTH-copyright.GetRect().GetWidth()); copyright.SetY(SCREEN_HEIGHT-copyright.GetRect().GetHeight()); } Intro::~Intro() { } void Intro::input() { sf::Event Event; while (app.screen.GetEvent(Event)) { // Window closed if (Event.Type == sf::Event::Closed) app.gsm.nextState = STATE_EXIT; // Any key pressed if (Event.Type == sf::Event::KeyPressed) app.gsm.nextState = STATE_MENU; } } void Intro::logic() { } void Intro::render() { app.screen.Draw(logo); app.screen.Draw(copyright); } |
Community-Fossil
Zitat von »"Môr"«
Ich kann ja auch keine privaten Datenelemente gebrauchen. Und nur welche zu deklarieren um sie zu deklarieren finde ich zweckentfremdent.
Zitat
Zum this->: Angewohnheit aus PHP. Bringt allerdings keinen um wenn ich es schreib oder?
Zitat von »"NachoMan"«
Zitat von »"Môr"«
Ich kann ja auch keine privaten Datenelemente gebrauchen. Und nur welche zu deklarieren um sie zu deklarieren finde ich zweckentfremdent.
ehm... es sollten allgemein ALLE datenelemente als private deklariert werden. sogar protected ist in den meisten fällen nicht kein guter programmierstil.
Zitat von »"NachoMan"«
Zitat
Zum this->: Angewohnheit aus PHP. Bringt allerdings keinen um wenn ich es schreib oder?
nee es verwirrt nur und macht die sache etwas unübersichtlicher.
Zitat von »"NachoMan"«
ich hab mir den sourcecode von dem resourcenmanager angesehen. wenn du ncihts geänder hast und auch wirklich den verlinkten verwendest hab ich kA was sein könnte.
liegt app im globalen bereich mit als public deklarierten, nicht konstanten datenelementen? das ist ne 1a fehlerquelle
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
#ifndef GLOBAL_HPP #define GLOBAL_HPP #include "Application.hpp" extern Application app; #endif |
Zitat
BBAW.exe!std::allocator<std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,sf::Image,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,sf::Image> >,0> >::_Node>::deallocate(std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,sf::Image,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,sf::Image> >,0> >::_Node * _Ptr=0x00325108, unsigned int __formal=1) Zeile 140 + 0x9 Bytes C++
> BBAW.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,sf::Image,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,sf::Image> >,0> >::_Tidy() Zeile 1426 C++
BBAW.exe!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,sf::Image,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,sf::Image> >,0> >::~_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,sf::Image,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,sf::Image> >,0> >() Zeile 541 C++
BBAW.exe!std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,sf::Image,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,sf::Image> > >::~map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,sf::Image,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,sf::Image> > >() + 0x2b Bytes C++
BBAW.exe!sftools::ResourceManager<sf::Image,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::~ResourceManager<sf::Image,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >() Zeile 75 + 0x12 Bytes C++
BBAW.exe!sftools::ImageManager::~ImageManager() + 0x2b Bytes C++
BBAW.exe!Application::~Application() Zeile 14 + 0x20 Bytes C++
BBAW.exe!`dynamic atexit destructor for 'app''() + 0x28 Bytes C++
msvcr90d.dll!6a8bbd05()
msvcr90d.dll!6a8bb9e2()
BBAW.exe!__tmainCRTStartup() Zeile 599 C
BBAW.exe!mainCRTStartup() Zeile 403 C
Community-Fossil
Werbeanzeige