Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - rowntrees

Pages: [1]
1
General / Re: White Screen when game is Launched.
« on: March 25, 2014, 09:36:28 am »
I did the small change you suggested which prompted an error. The error was that the files for my menu and loadinscreen couldn't be opened so i rectified this by placing them in the correct directory. Upon re-launching however I still get  the white screen. I've since been reading the official tutorials and trying to compare to see where I might be going wrong.

2
General / Re: White Screen when game is Launched.
« on: March 24, 2014, 10:37:01 pm »
Hi Jesper thanks for you time. Regarding the issues you mentioned, i'm following the tutorial and trying to do everything like the original author did. The tutorial is done in parts that why the code doesn't seem structured as it should as the classes are supposed to be edited as the tutorial  goes on. I should be seeing a red screen but I keep getting a white screen and therefore cant proceed to test any of my other screens. At this moment I just want to be able to see the red screen.

3
General / White Screen when game is Launched.
« on: March 24, 2014, 09:05:56 pm »
I've been following the pang tutorial from http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition.aspx.My code has no error apart from a few warnings which i've read that I should ignore. However when i launch the program  I just see a blank white screen, instead of my logo, and menu screens. My code is as below.




game.cpp
#include "stdafx.h"
#include "Game.h"
#include "LoadScreen.h"
#include "MainMenu.h"


void Game::Start (void)
{
        Game game;
if(_gameState != Unlaunched)
        return;
game._mainWindow.create(sf::VideoMode(1024,768,32),"Code Matrix");
_gameState = Game::LogoScreen;

while (!Exists())
{
        GameLoop();
}
game._mainWindow.close();
}

bool Game::Exists()
{
        if(_gameState == Game::Exiting)
                return true;
        else
                return false;
}

void Game::GameLoop()
{
        Game game;
        sf::Event currentEvent;
        while (game._mainWindow.pollEvent(currentEvent))
        {
                switch (_gameState)
                {
                case Game::MenuWindow:
                        {
                                ShowMenu();
                                break;
                        }
                case Game::LogoScreen:
                        {
                                ShowLogoScreen();
                                break;
                        }
               
                case Game::Playing:
                        {
                                sf::Event currentEvent;
                                while (game._mainWindow.pollEvent(currentEvent))
                                {
                                game._mainWindow.clear(sf::Color(255,0,0));
                                game._mainWindow.display();

                                if(currentEvent.type == sf::Event::Closed)
                                        _gameState = Game::Exiting;
                                if(currentEvent.type == sf::Event::KeyPressed)
                                {
                                        if(currentEvent.key.code == sf::Keyboard::Escape) ShowMenu();
                                }
                                }
                                break;
                        }
                }
        }
}

void Game::ShowLogoScreen()
{
        Game game;
        LoadScreen loadScreen;
        loadScreen.Show(game._mainWindow);
        _gameState = Game::MenuWindow;
}

void Game::ShowMenu()
{
Game game;
MainMenu mainMenu;
MainMenu::MenuOption option = mainMenu.show(game._mainWindow);
switch(option)
{
case MainMenu::Exit:
        _gameState = Game::Exiting;
        break;
case MainMenu::Play:
        _gameState = Game::Playing;
        break;
}
}
Game::GameState Game::_gameState = Unlaunched;

LoadScreen.cpp
#include "stdafx.h"
#include "LoadScreen.h"

void LoadScreen::Show(sf::RenderWindow & renderWindow)
{
        sf::Texture image;
        if (image.loadFromFile("images/LoadingScreen.png") !=true)
        {
                return;
        }

        sf::Sprite sprite (image);

        renderWindow.draw(sprite);
        renderWindow.display();

        sf::Event event;
        while (true)
        {
                while (renderWindow.pollEvent(event))
                {
                        if(event.type == sf::Event::EventType::KeyPressed
                                ||event.type == sf::Event::EventType::MouseButtonPressed
                                || event.type == sf::Event::EventType::Closed)
                        {
                                return;
                }
        }
}
}
 

MainMenu.cpp

 #include "stdafx.h"
  #include "MainMenu.h"
 
 
  MainMenu::MenuOption MainMenu::show(sf::RenderWindow& window)
  {
 
    //Load menu image from file
    sf::Texture image;
   image.loadFromFile("images/MainMenu.png");
   sf::Sprite sprite(image);
 
   //Setup clickable regions
   //Play menu item coordinates
   MenuItem playButton;
   playButton.rect.top= 319;
   playButton.rect.height = 626;
   playButton.rect.left = 189;
   playButton.rect.width = 329;
   playButton.action = Play;
 
   //Options menu item coordinates
   MenuItem optionButton;
   optionButton.rect.left = 356;
   optionButton.rect.height = 596;
   optionButton.rect.top = 287;
   optionButton.rect.width = 483;
   optionButton.action = Options;
   
   //Exit menu item coordinates
   MenuItem exitButton;
   exitButton.rect.left = 554;
   exitButton.rect.height = 580;
   exitButton.rect.top = 318;
   exitButton.rect.width = 687;
   exitButton.action = Exit;


 
   _menuItems.push_back(playButton);
   _menuItems.push_back(exitButton);
 
   window.draw(sprite);
   window.display();
 
   return GetMenuAction(window);
 }
 
 MainMenu::MenuOption MainMenu::HandleClick(int x, int y)
 {
   std::list<MenuItem>::iterator it;
 
   for ( it = _menuItems.begin(); it != _menuItems.end(); it++)
   {
     sf::Rect<int> menuItemRect = (*it).rect;
         if( menuItemRect.height > y
       && menuItemRect.top < y
           && menuItemRect.left < x
           && menuItemRect.width > x)
       {
         return (*it).action;
       }
   }
 
   return null;
 }
 MainMenu::MenuOption  MainMenu::GetMenuAction(sf::RenderWindow& window)
 {
   sf::Event menuEvent;
 
   while(true)
   {
 
     while(window.pollEvent(menuEvent))
     {
                 if(menuEvent.type == sf::Event::MouseButtonPressed)
       {
                   return HandleClick(menuEvent.mouseButton.x,menuEvent.mouseButton.y);
       }
       if(menuEvent.type == sf::Event::Closed)
       {
         return Exit;
       }
     }
   }
 }


I've checked to see if I am missing a .display() somewhere but I can't see. Please help thanks.

Pages: [1]