-
SFML / 기본윈도우활동 기록 😵💫/SFML 테트리스 2023. 2. 4. 16:11
기본윈도우 출력하기
RenderWindow는 그래픽 모듈의 메인클래스이다.
부모클래스는 Window , RenderTarget 클래스
최상위 클래스는 GIResource , NonCopyable클래스
Window 클래스와 같이 RenderWindow클래스도 OpenGL항목을 렌더링 할수 있다.-> OpenGL이 그래픽디자인 사용됨
디폴트 생성자 --> RenderWindow를 생성하려면 디폴트로 이것들을 입력해야한다는것 !
sf::RenderWindow::RenderWindow(VideoMode mode, const String& title, Uint32 style = Style::Default, const ContextSettings& settings = ContextSettings())
기존 컨트롤에 SFML 렌더링을 원할 경우 사용되는 생성자
sf::RenderWindow::RenderWindow(WindowHandle handle, const ContextSettings& settings = ContextSettings())
Graphics.hpp(기본윈도우출력) 와 namespace (코드의 간결함과 편의)
#include <SFML/Graphics.hpp> using namespace sf;
기본적인코드골격 1. 새로운 RenderWindow 생성 2. 메인루프 (while(window.isOpen()) <- 이벤트처리, 그래픽개체그리기,오디오, 마우스 및 키보드 입력 처리등의 모든 코드 메인루프내에 포함
#include <SFML/Graphics.hpp> #include <iostream> using namespace std; using namespace sf; int main() { RectangleShape rectangle(Vector2f(200, 200)); // 밑에서 사각형을 그리려고 여기서 사이즈를 선언해줌(테트리스 만들때 도형사이즈 여기서 선언하면 될것 같다) rectangle.setFillColor(Color::White); cout << "세상은 네몬데" << endl; //window 화면 크기, 캡션이름 설정 RenderWindow cherry(VideoMode(504, 504), "https://cherrycode.tistory.com/"); //링크는 왜 거는걸까 cherry.setFramerateLimit(60); // 프레임 비율 설정 (화면크기랑 뭐가 다르지) //SFML 메인루프 !! 윈도우 닫힐때까지 반복 while (cherry.isOpen()) { Event event; //이벤트처리 ?? while (cherry.pollEvent(event)) { if (event.type == Event::EventType::Closed) { cherry.close(); cout << "왜 유선이 볼은 동그라미" << endl; } } //window 배경화면 cherry.clear(Color::Magenta); //사각형 그리기 (그리고 싶은것이 있으면 .display(); 앞에 draw로 그린다! (이전에는 텍스트로 글을 썼다) cherry.draw(rectangle); //프레임을 스크린에 출력 cherry.display(); } return 0; }
유선이볼은왜동그라미 1. 링크는 윈도우 창의 주소였다. !
2. 이벤트 튜토리얼 정리 필요 !!
3. video mode에서 정의하는 사이즈는 타이틀바나 borders를 제외한 내부 사이즈
-> 윈도우 열고 관리하기 다시 정리 ㅠㅠ
+ OpenGL 튜토리얼도 ....!!! 그래도 코드를 점점 이해하고 있다
'활동 기록 😵💫 > SFML 테트리스' 카테고리의 다른 글
SFML/ 키보드 (4) 2023.02.05 SFML / 윈도우 관리, 이벤트 튜토리얼 (3) 2023.02.05 SFML/ 사용자 데이터 스트림 (5) 2023.02.04 SFML 튜토리얼(시간, 스레드) (4) 2023.01.23 SFML / 텍스트그리기(폰트) (4) 2023.01.19