void GUI::drawBack() { sf::Texture texture1; if (!texture1.loadFromFile("back.png")){} sf::Sprite sprite1(texture1); window->draw(sprite1); }
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; } }
/** @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); } } } } }
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); } }
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(); } }
//////////////////////////////////////////////////////////// /// 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; }