Beispiel #1
0
 void GUI::drawBack()
  {
	  sf::Texture texture1;
      if (!texture1.loadFromFile("back.png")){}
      sf::Sprite sprite1(texture1);
      window->draw(sprite1);
  }
Beispiel #2
0
int showWelcome(RenderWindow *window){
	Texture texBack,
		texWelcome,
		texSprite1,
		texSprite2,
		texSprite3,
		texSprite4,
		texSprite5,
		texSprite6;


	if (!texBack.loadFromFile("../data/background.png")
		|| !texWelcome.loadFromFile("../data/welcome.png")
		|| !texSprite1.loadFromFile("../data/sprite1.png")
		|| !texSprite2.loadFromFile("../data/sprite2.png")
		|| !texSprite3.loadFromFile("../data/sprite3.png")
		|| !texSprite4.loadFromFile("../data/sprite4.png")
		|| !texSprite5.loadFromFile("../data/sprite5.png")
		|| !texSprite6.loadFromFile("../data/sprite6.png"))
	{
		return EXIT_FAILURE;
	}

	Sprite spriteWelcome(texWelcome),
		sprite1(texSprite1),
		sprite2(texSprite2),
		sprite3(texSprite3),
		sprite4(texSprite4),
		sprite5(texSprite5),
		sprite6(texSprite6),
		spriteBack(texBack);

	float y = 0;

	Clock clk;
	clk.restart();
	Time tme = clk.getElapsedTime();
	while (tme.asSeconds() < 5)
	{
		window->clear();
		window->draw(spriteBack);
		sprite1.setPosition(100.0, 1.5*y + 50.0);
		sprite2.setPosition(300.0, 0.5*y + 400.0);
		sprite3.setPosition(500.0, y + 200.0);
		sprite4.setPosition(700.0, 2 * y + 700.0);
		sprite5.setPosition(900.0, y + 100.0);
		sprite6.setPosition(1100.0, 1.75*y + 750);
		window->draw(sprite1);
		window->draw(sprite2);
		window->draw(sprite3);
		window->draw(sprite4);
		window->draw(sprite5);
		window->draw(sprite6);
		window->draw(spriteWelcome);
		window->display();
		tme = clk.getElapsedTime();
		y -= 1;
	}
}
Beispiel #3
0
/**
@SYMTestCaseID		GRAPHICS-WSERV-00-0001

@SYMDEF  			PDEF117721

@SYMTestCaseDesc    Test Screenrotation does not cause panic by sprite with NULL bitmap and NULL maskbitmap

@SYMTestPriority    High

@SYMTestStatus      Implemented

@SYMTestActions     Defines two sprites and one with Null iBitmap and Null iMaskBitmap, then rotate the screen to 90 degrees

@SYMTestExpectedResults the screen rotation will not cause wserv a panic
*/
void CTTSprite::RotateNullSpriteL()
	{
	if (TheClient->iScreen->NumScreenModes() < 2)
		{
		LOG_MESSAGE(_L("WARNING: Unable to rotate screen"));
		return;
		}
// Sprite Members		
	TSpriteMember spriteMember1,spriteMember2;
	SetUpMember(spriteMember1);
	SetUpMember(spriteMember2);
	spriteMember2.iBitmap = NULL;
	
// Create windows
	RWindowGroup group(TheClient->iWs);
	User::LeaveIfError(group.Construct(ENullWsHandle,EFalse));	//Creates a Group Window
	CleanupClosePushL(group);
	RBlankWindow win(TheClient->iWs);
	User::LeaveIfError(win.Construct(group,ENullWsHandle));	//Creates a Blank Window
	CleanupClosePushL(win);
	win.SetVisible(ETrue);
	win.SetColor(TRgb::Gray4(2));
	win.Activate();
	TheClient->Flush();
	
// Create Sprites
	RWsSprite sprite1(TheClient->iWs);
	CleanupClosePushL(sprite1);
	SetUpSpriteL(sprite1, win,TPoint(20,70),spriteMember1,0);
	RWsSprite sprite2(TheClient->iWs);
	CleanupClosePushL(sprite2);
	SetUpSpriteL(sprite2, win,TPoint(80,130),spriteMember2,0);
	RWsSprite sprite3(TheClient->iWs);
	CleanupClosePushL(sprite3);
	SetUpSpriteL(sprite3, win,TPoint(2800,2130),spriteMember1,0);
	TheClient->Flush();

// Get the original screen mode	
	CWsScreenDevice* device = TheClient->iScreen;
	TInt originalScreenMode = device->CurrentScreenMode();
	TPixelsTwipsAndRotation originalModeSettings;
	device->GetScreenModeSizeAndRotation(originalScreenMode,originalModeSettings);

// Rotate screens	
	TPixelsAndRotation pixelsAndRotation;
	device->SetScreenMode( 1 );
	device->GetDefaultScreenSizeAndRotation(pixelsAndRotation);
	device->SetCurrentRotations(1,pixelsAndRotation.iRotation);
	device->SetScreenSizeAndRotation(pixelsAndRotation);
	User::After(1000000);
	
	CleanupStack::PopAndDestroy(5,&group);
//	Restore the original screen mode	
	device->SetScreenMode(originalScreenMode);
	device->SetCurrentRotations(originalScreenMode,originalModeSettings.iRotation);
	device->SetScreenSizeAndRotation(originalModeSettings);
	TheClient->Flush();
	}
MainMenu::MenuResult  MainMenu::GetChoosePlayer(sf::RenderWindow& window)
{
		window.clear();
		sf::Texture texture;

		texture.loadFromFile("images/MainMenu.png");
		sf::Sprite sprite(texture);
		window.draw(sprite);

		texture.loadFromFile("images/dragoncopy.png");
		sf::Sprite sprite1(texture);
		sprite1.setPosition(100, 200);
		window.draw(sprite1);

		texture.loadFromFile("images/AIFire.png");
		sf::Sprite sprite2(texture);
		sprite2.setPosition(500, 250);
		window.draw(sprite2);
		
		texture.loadFromFile("images/HumanvsAI.png");
		sf::Sprite sprite4(texture);
		sprite4.setPosition(430, 450);
		window.draw(sprite4);
			
		window.display();
		//minta input user, waktu diklik nge return
		sf::Event event;
		while (true) {
			while (window.pollEvent(event)) {
				if (event.type == sf::Event::MouseButtonPressed) {
					if (event.mouseButton.x >= 500 && event.mouseButton.x <= 700 &&
						event.mouseButton.y >= 250 && event.mouseButton.y <= 350) {
							int greedytype = 1;
							return ChooseGreedy(window, greedytype);
					} else if (event.mouseButton.x >= 430 && event.mouseButton.x <= 780 &&
						event.mouseButton.y >= 450 && event.mouseButton.y <= 550) {
							int greedytype = 2;
							return ChooseGreedy(window, greedytype);
					}
				}
			}
		}
}
Beispiel #5
0
int main() {
    try {
        std::string mediaPath = UTILS::GetMediaFolder();
        std::string fontPath = mediaPath + "Fonts/courier.ttf";

        RenderContextSetup setup;
        setup.Width = 640;
        setup.Height = 480;
        RenderContext renderContext(setup);
        //LayoutManager layout(&renderContext);

        // Sprite setup
        Sprite sprite0(&renderContext);
        Sprite sprite1(&renderContext);
        Sprite sprite2(&renderContext);
        Sprite sprite3(&renderContext);
        
        sprite0.SetSize(SPRITE_SIZE, SPRITE_SIZE);
        sprite1.SetSize(SPRITE_SIZE, SPRITE_SIZE);
        sprite2.SetSize(SPRITE_SIZE, SPRITE_SIZE);
        sprite3.SetSize(SPRITE_SIZE, SPRITE_SIZE);
        
        sprite0.SetPosition(0, 0);
        sprite1.SetPosition(renderContext.GetWindowWidth() - SPRITE_SIZE, 0);
        sprite2.SetPosition(0, renderContext.GetWindowHeight() - SPRITE_SIZE);
        sprite3.SetPosition(renderContext.GetWindowWidth() - SPRITE_SIZE, renderContext.GetWindowHeight() - SPRITE_SIZE);

        sprite0.SetTexture(mediaPath + "Textures/Smile.png");
        sprite1.SetTexture(mediaPath + "Textures/Smile.png");
        sprite2.SetTexture(mediaPath + "Textures/Smile.png");
        sprite3.SetTexture(mediaPath + "Textures/Smile.png");
        //Console console(&renderContext);
        // Text setup
        Text text(&renderContext, fontPath);
        text << Text::set_size(32) << "Font rendering is guano!";
        float opacity = 1.0f;
        bool direction = true;
        while (renderContext.ProcessMessage()) {
            renderContext.Clear();
            if (direction) {
                opacity -= 0.01f;
                sprite0.SetPosition(sprite0.GetX() + 1, sprite0.GetY() + 1);
                sprite3.SetPosition(sprite3.GetX() - 1, sprite3.GetY() - 1);
                if (opacity <= 0.0f) {
                    direction = false;
                }
            }
            else {
                opacity += 0.01f;
                sprite0.SetPosition(sprite0.GetX() - 1, sprite0.GetY() - 1);
                sprite3.SetPosition(sprite3.GetX() + 1, sprite3.GetY() + 1);
                if (opacity >= 1.0f) {
                    direction = true;
                }
            }
            sprite0.SetOpacity(opacity);
            sprite3.SetOpacity(opacity);

            sprite0.Render();
            sprite1.Render();
            sprite2.Render();
            sprite3.Render();
            
            //console.Render();
            text.Render();
            renderContext.Present();
        }
        return 0;
    }
    catch (std::exception& ex) {
        ::MessageBoxA(NULL, ex.what(), NULL, NULL); 
    }
}
Beispiel #6
0
int main()
{
	// Create resource cache for both sf::Texture and sf::SoundBuffer
	thor::MultiResourceCache cache;

	// Create sf::Image to load texture from
	sf::Image image;
	image.create(529, 100, sf::Color(130, 70, 0));

	// Create keys to load resources
	thor::ResourceKey<sf::Texture>		textureKey1 = thor::Resources::fromImage<sf::Texture>(image);
	thor::ResourceKey<sf::Texture>		textureKey2 = thor::Resources::fromFile<sf::Texture>("Media/image.jpg");
	thor::ResourceKey<sf::SoundBuffer>	soundKey	= thor::Resources::fromFile<sf::SoundBuffer>("Media/click.wav");
	thor::ResourceKey<sf::Font>			fontKey		= thor::Resources::fromFile<sf::Font>("Media/sansation.ttf");

	// Create resource pointers to access the resources
	std::shared_ptr<sf::Texture>		texture1, texture2;
	std::shared_ptr<sf::SoundBuffer>	soundBuffer;
	std::shared_ptr<sf::Font>			font;

	// Actually load resources, store them in resource pointers and react to loading errors
	try
	{
		texture1    = cache.acquire(textureKey1);
		texture2    = cache.acquire(textureKey2);
		soundBuffer = cache.acquire(soundKey);
		font        = cache.acquire(fontKey);
	}
	catch (thor::ResourceLoadingException& e)
	{
		std::cout << e.what() << std::endl;
		return 1;
	}

	// Create instances that use the resources
	sf::Sprite sprite1(*texture1);
	sf::Sprite sprite2(*texture2);
	sf::Sound sound(*soundBuffer);
	sf::Text instructions("Press return to play sound, escape to quit", *font, 12);

	// Move second sprite so that the sprites don't overlap
	sprite2.move( 0.f, static_cast<float>(texture1->getSize().y) );

	// Create render window
	sf::RenderWindow window(sf::VideoMode(800, 600), "Thor Resources");
	window.setVerticalSyncEnabled(true);

	for (;;)
	{
		// Handle events
		sf::Event event;
		while (window.pollEvent(event))
		{
			if (event.type == sf::Event::Closed)
			{
				return 0;
			}
			else if (event.type == sf::Event::KeyPressed)
			{
				switch (event.key.code)
				{
					case sf::Keyboard::Escape:
						return 0;

					case sf::Keyboard::Return:
						sound.play();
						break;
				}
			}
		}

		// Draw sprites of the loaded textures
		window.clear();
		window.draw(sprite1);
		window.draw(sprite2);
		window.draw(instructions);
		window.display();
	}
}
void MainMenu::ShowBeliBarang(sf::RenderWindow& window,int &modal, int &toolsmerah, int &toolskuning, int &toolshijau) {
	while (true) {
		window.clear();
		//Load menu image from file
		sf::Texture texture;
		texture.loadFromFile("images/MainMenu.png");
		sf::Sprite sprite(texture);
		window.draw(sprite);

		//gambar tools
		sf::Texture texture1;
		texture1.loadFromFile("images/toolsmerah.png");
		sf::Sprite sprite1(texture1);
		sprite1.setPosition(100, 330);
		window.draw(sprite1);

		texture1.loadFromFile("images/toolskuning.png");
		sprite1.setPosition(400, 330);
		window.draw(sprite1);

		texture1.loadFromFile("images/toolshijau.png");
		sprite1.setPosition(700, 330);
		window.draw(sprite1);

		//angka
		sf::Font font1;
		font1.loadFromFile("fonts/BACHELOR.TTF");
		sf::Text text1;
		text1.setFont(font1);
		text1.setColor(sf::Color::Black);
		text1.setCharacterSize(50);
		text1.setStyle(sf::Text::Bold);
		text1.setPosition(230, 360);
		string Tempstr = to_string(toolsmerah);
		text1.setString(Tempstr);
		window.draw(text1);

		//angka
		sf::Text text2;
		text2.setFont(font1);
		text2.setColor(sf::Color::Black);
		text2.setCharacterSize(50);
		text2.setStyle(sf::Text::Bold);
		text2.setPosition(530, 360);
		string Tempstr1 = to_string(toolskuning);
		text2.setString(Tempstr1);
		window.draw(text2);

		sf::Text text3;
		text3.setFont(font1);
		text3.setColor(sf::Color::Black);
		text3.setCharacterSize(50);
		text3.setStyle(sf::Text::Bold);
		text3.setPosition(830, 360);
		string Tempstr2 = to_string(toolshijau);
		text3.setString(Tempstr2);
		window.draw(text3);

		//modal
		texture.loadFromFile("images/Modal.png");
		sf::Sprite sprite3(texture);
		sprite3.setPosition(50, 550);
		window.draw(sprite3);

		sf::Text text4;
		text4.setFont(font1);
		text4.setColor(sf::Color::Red);
		text4.setCharacterSize(70);
		text4.setStyle(sf::Text::Bold);
		//text4.setStyle(sf::Text::Italic);
		text4.setPosition(350, 550);
		string Tempstr3 = to_string(modal);
		text4.setString(Tempstr3);
		window.draw(text4);

		//plus button
		MenuItem PlusButton;
		PlusButton.texture.loadFromFile("images/PlusButton.png");
		PlusButton.sprite.setTexture(PlusButton.texture);
		PlusButton.sprite.setPosition(200, 210);

		window.draw(PlusButton.sprite);
		PlusButton.sprite.setPosition(500, 210);
		window.draw(PlusButton.sprite);
		PlusButton.sprite.setPosition(800, 210);
		window.draw(PlusButton.sprite);


		//minus button
		MenuItem MinusButton;
		MinusButton.texture.loadFromFile("images/MinusButton.png");
		MinusButton.sprite.setTexture(MinusButton.texture);
		MinusButton.sprite.setPosition(200, 460);
		window.draw(MinusButton.sprite);
		MinusButton.sprite.setPosition(500, 460);
		window.draw(MinusButton.sprite);
		MinusButton.sprite.setPosition(800, 460);
		window.draw(MinusButton.sprite);

		//ready button
		texture.loadFromFile("images/Ready.png");
		sf::Sprite sprite2(texture);
		sprite2.setPosition(900, 580);
		window.draw(sprite2);


		//Setup clickable regions
		sf::Event event;
			while(window.pollEvent (event))
			{
				if(event.type == sf::Event::MouseButtonPressed)
				{
					if(event.mouseButton.x < 300 && event.mouseButton.x > 200 && event.mouseButton.y < 290 && event.mouseButton.y > 210 && modal>=3) {
						toolsmerah++;
						modal-=3;
					}
					if(event.mouseButton.x < 600 && event.mouseButton.x > 500 && event.mouseButton.y < 290 && event.mouseButton.y > 210 && modal>=2) {
						toolskuning++;
						modal-=2;
					}
					if(event.mouseButton.x < 900 && event.mouseButton.x > 800 && event.mouseButton.y < 290 && event.mouseButton.y > 210 && modal>=1) {
						toolshijau++;
						modal--;
					}
					if(event.mouseButton.x < 300 && event.mouseButton.x > 200 && event.mouseButton.y < 540 && event.mouseButton.y > 460) {
						if(toolsmerah>0) {
							toolsmerah--;
							modal+=3;
						}
					}
					if(event.mouseButton.x < 600 && event.mouseButton.x > 500 && event.mouseButton.y < 540 && event.mouseButton.y > 460) {
						if(toolskuning>0) {
							toolskuning--;
							modal+=2;
						}
					}
					if(event.mouseButton.x < 900 && event.mouseButton.x > 800 && event.mouseButton.y < 540 && event.mouseButton.y > 460) {
						if(toolshijau>0) {
							toolshijau--;
							modal++;
						}
					}
					if(event.mouseButton.x < 1000 && event.mouseButton.x > 900 && event.mouseButton.y <746 && event.mouseButton.y > 600) {
						return;
					}
				}
			}
		window.display();
	}
}
Beispiel #8
0
////////////////////////////////////////////////////////////
/// Entry point of application
///
/// \param Instance : Instance of the application
///
/// \return Error code
///
////////////////////////////////////////////////////////////
INT WINAPI WinMain(HINSTANCE instance, HINSTANCE, LPSTR, INT)
{
    // Define a class for our main window
    WNDCLASS windowClass;
    windowClass.style         = 0;
    windowClass.lpfnWndProc   = &OnEvent;
    windowClass.cbClsExtra    = 0;
    windowClass.cbWndExtra    = 0;
    windowClass.hInstance     = instance;
    windowClass.hIcon         = NULL;
    windowClass.hCursor       = 0;
    windowClass.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_BACKGROUND);
    windowClass.lpszMenuName  = NULL;
    windowClass.lpszClassName = TEXT("SFML App");
    RegisterClass(&windowClass);

    // Let's create the main window
    HWND window = CreateWindow(TEXT("SFML App"), TEXT("SFML Win32"), WS_SYSMENU | WS_VISIBLE, 200, 200, 660, 520, NULL, NULL, instance, NULL);

    // Add a button for exiting
    button = CreateWindow(TEXT("BUTTON"), TEXT("Quit"), WS_CHILD | WS_VISIBLE, 560, 440, 80, 40, window, NULL, instance, NULL);

    // Let's create two SFML views
    HWND view1 = CreateWindow(TEXT("STATIC"), NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, 20,  20, 300, 400, window, NULL, instance, NULL);
    HWND view2 = CreateWindow(TEXT("STATIC"), NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, 340, 20, 300, 400, window, NULL, instance, NULL);
    sf::RenderWindow SFMLView1(view1);
    sf::RenderWindow SFMLView2(view2);

    // Load some textures to display
    sf::Texture texture1, texture2;
    if (!texture1.LoadFromFile("resources/image1.jpg") || !texture2.LoadFromFile("resources/image2.jpg"))
        return EXIT_FAILURE;
    sf::Sprite sprite1(texture1);
    sf::Sprite sprite2(texture2);
    sprite1.SetOrigin(texture1.GetWidth() / 2.f, texture1.GetHeight() / 2.f);
    sprite1.SetPosition(sprite1.GetOrigin());

    // Create a clock for measuring elapsed time
    sf::Clock clock;

    // Loop until a WM_QUIT message is received
    MSG message;
    message.message = static_cast<UINT>(~WM_QUIT);
    while (message.message != WM_QUIT)
    {
        if (PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
        {
            // If a message was waiting in the message queue, process it
            TranslateMessage(&message);
            DispatchMessage(&message);
        }
        else
        {
            float time = clock.GetElapsedTime().AsSeconds();

            // Clear views
            SFMLView1.Clear();
            SFMLView2.Clear();

            // Draw sprite 1 on view 1
            sprite1.SetRotation(time * 100);
            SFMLView1.Draw(sprite1);

            // Draw sprite 2 on view 2
            sprite2.SetPosition(std::cos(time) * 100.f, 0.f);
            SFMLView2.Draw(sprite2);

            // Display each view on screen
            SFMLView1.Display();
            SFMLView2.Display();
        }
    }

    // Destroy the main window (all its child controls will be destroyed)
    DestroyWindow(window);

    // Don't forget to unregister the window class
    UnregisterClass(TEXT("SFML App"), instance);

    return EXIT_SUCCESS;
}