ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 튜토리얼도 ....!!!  그래도 코드를 점점 이해하고 있다

Diseñada por Tistory.