10/16(복습)

강kang·2024년 10월 16일

소스코드
디버그: 개발중
릴리즈: 최적화된 것

dll
동적라이브러리
런타임에 동작
유연하다

lib
정적라이브러리
컴파일빌드타임 동작
단점:라이브러리만 업데이트될 때 빌드를 새로해야 됨.

RenderWindow
윈도우 생성

isOpen
윈도우, 알트등 누르면 자동바꿈

Event
os가 어플리케이션에게 알려준다. 키를 눌렀다.
마우스를 드래그했다.
윈도우 단위로 이벤트를 받아니까 쌓여있다가 됨.

pollEvent
가져오는 메소드 레퍼런스로 넘겨가지고 구조체에 어떤 메세지가 일어나는지 정보를 알려주는 것이고, 다른 모든 이벤트들은 처리하지않음.

draw
메모리에 그린다.

display
화면에 출력한다.

GUI
메세지 루프
업데이트 루프- 관리하는거 업데이트

월드좌표계
가상 하나를 해서 좌표축에 맞춰서 이러한 방향이다 표현하는 것 절대값이라고 생각하면 된다.

스크린좌표계
윈도우에 그릴 것, 윈도우의 각 픽셀들의 위치를 생각할 수 있는데, 좌상단점이 0.0으로 세팅된다.

월드 좌표계랑 스크린좌표계 중 어떤 좌표를 기준으로 했는지 알고 있어야한다.
이미지 기준 좌표계
각 픽셀들을 표현할 거라고 각 이미지들의 원점에 해당하는 좌상단점이 00이 세팅된다.

피보점, 오리진

그리기 오브젝트마다 피보점이 존재하는데, 어떤 벡터값을 사용할 떄는 어떤 좌표를 썼는지 파악을 해야한다.

실시간으로 처리하는 프로그램을 처음만드는데 메인루프를 돌면서 이걸 실시간으로 처음만들어서 시간의 개념을 알아야한다. 오브젝트를 이동시키든 애니메이션을 하든, 물리에 연산을 하든 시간의 데이터가 중요하다. 속도도 시간에 의해서 영향을 받는 것이고, 시간의 개념을 알고 응용해서 오브젝트를 움직여야한다.
C/GPU가 느끼는 시간과 우리가 느끼는 시간은 갭이 있다. 우리는 컴퓨터와 스마트폰을 할 때 코어, 예를들어 10개의 프로그램이 진행되면 이거하다 멈추고 다른거를 빠르게 하는 것이다. 실시간으로 모두 돌아가는 걸로 느끼는거고, 원래는 단절되서 돌아가는 것이다.
프레임퍼세컨드의 의미
업데이트와 드로우의 호출이다.
이번 업데이트시간과 이전번의 업데이트 시간의 차이를 인식하는게 중요하다.

float의 부정확도는 물리적으로 해결되지 않는다,

업데이트간의 시간간격을 알려면 업데이트한 타이밍에 시간을 정하고 현재 타이밍에 시간과의 차이를 계산하면 된다. 이것의 오브젝트 시간을 한다.
속도는 단위시간당 이동변이, 변이를 구할려면 속도에 시간을 곱하면 나온다.
이것의 델타 타임을 이용하게 된다.

프레임은 단절되어있고, 시간과 속도를 이용하면 얼마만큼의 이동량을 가질지 알 수 있다.

배율스케일을 -1을 하면 x로 반전되고 y도 마찬가지고 오리진을 기준으로 반전된다.

난수는 c와 c++방법 2개가 있다.
c에서 사용하는 난수는 가사난수라고 난순데 난수가 아니다. 씨드를 설정한다.(테이블 선택)난수가 순서대로 한개씩 넘어온다. 난수의 퀼리티가 좋지않을 수 있고 씨드가 같으면 동일한 수가 나열된다.

profile
코딩

0개의 댓글