0
#include<SFML/Window.hpp>
#include<SFML/Graphics.hpp>
#include<cstdint>
#include<iostream>
const int width = 500;
const int height = 500;
int main(){
sf::RenderWindow window(sf::VideoMode(width, height), "Window", sf::Style::Close);
window.setVerticalSyncEnabled(true);
sf::Event event;
uint8_t *pixels = new uint8_t[height *width *4];
for(int i = 0; i < height * width; i+= 4){
pixels[i] = 00; //r
pixels[i + 1] = 00;//g
pixels[i + 2] = 00;//b
pixels[i + 3] = 255;//a
}
sf::Texture texture;
texture.create(width, height);
sf::Sprite sprite;
while(window.isOpen()){
while(window.pollEvent(event)){
if(event.type == sf::Event::Closed){
window.close();
}
}
window.clear(sf::Color::White);
texture.update(pixels);
sprite.setTexture(texture);
window.draw(sprite);
window.display();
}
delete pixels;
return 0;
}
出力は次のとおりです。ウィンドウの一部だけが実際に描かれている理由 私のスプライトがSFMLのウィンドウ全体に描画されないのはなぜですか?私は、次のプログラムのために取得しています
私は理解していません。プログラムは非常に小さいので、高さと幅の変数を切り替えることによって問題が生成されることは通常のように推測されますが、両方が等しいのでここではそうではありません。
SFMLドキュメントでは、明示的にテクスチャのサイズをsprite.setTexture()
に設定していないと、テクスチャのサイズがデフォルトになります。
なぜこの奇妙な動作ですか?何か不足していますか?
また、私は4ではなく1をインクリメントしています。 – user45914123
@ 123:はい。私はそれを観た。それは正しいです。 –
質問を削除する必要がありますか?これは小さな問題だったので。 – user45914123