01/10/2018, 00:40
Cách load hình ảnh trong SFML
Đang tìm hiểu về SFML mọi người ơi, e muốn load một cái background lên mà không biết cách nào để nó hiện lên toàn màn hình cả. Ai có kinh nghiệm làm về SFML giúp em với
đây là code của e:
#include "stdafx.h"
#include <SFML/Graphics.hpp>
using namespace sf;
int main()
{
// Create a video mode object
VideoMode vm(1920, 1080);
// Create and open a window for the game
RenderWindow window(vm, "Timber!!!");
// Create a Texture tp hold a graphic on the GPU
Texture textureBackground;
// Load a graphic into the texture
textureBackground.loadFromFile("Graphics/graphics/background.png");
// Create a sprite
Sprite spriteBackground;
// Attach the texture to the sprite
spriteBackground.setTexture(textureBackground);
// Set the spriteBackground to cover the screen
spriteBackground.setPosition(0, 0);
while (window.isOpen())
{
if (Keyboard::isKeyPressed(Keyboard::Escape))
{
window.close();
}
// Clear everything from the last run frame
window.clear();
// Draw our game scence here
window.draw(spriteBackground);
// Show everything we just drew
window.display();
}
return 0;
}
khi chạy nó chỉ lên nht thôi ạ:
trong khi cái background của e là vầy:
Bài liên quan
ảnh của em có kích cỡ bao nhiêu? Cái window em tạo có kích cỡ 1920x1080 cái ảnh có đúng kích cỡ vậy ko?
cái sprite của em có lẽ tâm của nó là ở trung tâm của texture? Cái này hơi lạ vì đáng lẽ tâm nó phải là góc trên bên trái…
em thử code này coi có đúng ko
Được rồi anh ơi, cảm ơn a nhiều lắm, tại e mới mò nên còn gà mờ quá
mà mình có cách nào để kéo hình ra như đúng kích cỡ của window tạo ra ko a. Thường mình tạo window trước rồi mới tới tạo texture với Sprite chứ a
em xài phương thức
setScale
củasf::Sprite
để thay đổi kích cỡ cho cái sprite cho đúng với kích cỡ màn hình.nhưng nếu ko đúng tỉ lệ thì nó xấu lắm. Vd ảnh nền có tỉ lệ 4:3 mà em bung ra toàn màn hình tỉ lệ 16:9 thì nó scale mất cân đối.