영넌 개발로그

[SFML] 도형 그리기, 도형 움직이기 / 이벤트 처리 / 키보드 입력 본문

코딩/C++

[SFML] 도형 그리기, 도형 움직이기 / 이벤트 처리 / 키보드 입력

영넌 2020. 12. 3. 05:01

Color class

Black, White, Red, Green, Blue, Yellow, Magenta(분홍), Cyan(하늘), Transparent(투명)

 

CircleShape shape(radius, pointCount); 

radius : 반지름 

pointCount : 원을 그릴 때 삼각형을 여러개 모아서 원을 만든다. 그 개수를 입력 (생략 가능)

	CircleShape shape(50.0f); 
	shape.setFillColor(Color::Green);

 

CircleShape::setPosition(float x, float y)

x,y의 좌표 설정 (default : 0,0) 

원의 중앙 좌표가 아닌 좌상단의 좌표를 설정하는 것

 

	CircleShape shape(50.0f); 
	shape.setFillColor(Color::Green);
	shape.setPosition(320.0f-50, 240.0f-50);

 

RectangleShape 는 Vector2f type을 가짐

Vector2f 는 Vector2<float>를 의미함 x크기, y크기를 주면 만들어 질 수 있음

 

	RectangleShape myRect(Vector2f(30.0f, 10.0f));
	myRect.setFillColor(Color::Cyan);
	myRect.setPosition(30.0f, 30.0f);

 

 

KeyPressed

키가 눌렸는지를 판단하는 event 타입

 

isKeyPressed

어떤 키가 눌렸는지를 판단해주는 메소드

 

CircleShape::move(float offset_x, float offset_y)

x방향으로 움직이게, y방향으로 움직이는 메소드

 

공이 왼, 오로 움직이는 영상>

 

 

코드>

		Event event;
		while (window.pollEvent(event)) {

			switch (event.type) {
			case Event::Closed:
				window.close();
				break;
			case Event::KeyPressed:
				if (Keyboard::isKeyPressed(Keyboard::Left) == true)
				{
					shape.move(-10.0f, 0.0f);
				}
				else if (Keyboard::isKeyPressed(Keyboard::Right) == true) {
					shape.move(10.0f, 0.0f);
				}
				break;
			default:
				break;
			}
		}

Comments