티스토리 뷰

* 인프런에 있는 "홍정모의 게임 만들기 연습 문제 패키지" 강의를 바탕으로 작성된 글입니다.

 

1. 마우스 왼쪽 클릭을 하면 커서 위치에 삼각형이, 오른쪽 클릭을 하면 원이 생기도록 해보기.

#include "Game2D.h"
#include "RandomNumberGenerator.h"
#include "GeometricObject.h"
#include <vector>
#include <memory>

namespace shyplants
{
	class Example : public Game2D
	{
	public:
		RandomNumberGenerator rnd;
		RGB random_color;
		vec2 mouse_pos;
		float random_size;

		std::vector<GeometricObject*> my_objs;
		
		Example() : Game2D()
		{
		}

		~Example()
		{
			for (const auto& obj : my_objs) {
				delete obj;
			}
		}

		void update() override
		{
			mouse_pos = getCursorPos(true);

			if (isMouseButtonPressedAndReleased(GLFW_MOUSE_BUTTON_1)) {
				random_color = RGB(rnd.getFloat(0.0f, 1.0f), rnd.getFloat(0.0f, 1.0f), rnd.getFloat(0.0f, 1.0f));
				random_size = rnd.getFloat(0.2f, 0.5f);

				my_objs.push_back(GeometricObject::makeTriangle(random_color, mouse_pos, random_size));
			}
			else if (isMouseButtonPressedAndReleased(GLFW_MOUSE_BUTTON_2)) {
				random_color = RGB(rnd.getFloat(0.0f, 1.0f), rnd.getFloat(0.0f, 1.0f), rnd.getFloat(0.0f, 1.0f));
				random_size = rnd.getFloat(0.1f, 0.5f);

				my_objs.push_back(GeometricObject::makeCircle(random_color, mouse_pos, random_size));
			}

			for(const auto& obj : my_objs) {
				obj->draw();
			}

		}
	};
}

댓글