아이템을_스폰시키는_에이전트_만들기
아이템을 스폰시키는 에이전트 만들기
문서의 이전 판입니다!
스타팅 파일
- 포인터를 이용하여 최적화하기에서 이어지는 아티클이다.
- 포인터를 이용하여 최적화하기파일을 다운 받아서 작성해 보자
목적
기존에는 Game클래스 내에서 Obstacle들을 배열로 만들어서 구현했다.
이번에는 별도로 에이전트를 만들어서 그 에이전트 내에서 각종 게임상에 출몰하는 아이템들을 만들려고 한다.
아이템 에이전트 만들기
1. items.h
여러가지 아이템들을 스폰시키는 items라는 클래스를 만들 것이다. 선언부는 다음과 같다.
- items.h
#pragma once #ifndef __items__ #define __items__ #include "raylib.h" #include "coin.h" #include <vector> #include "bird.h" class Items { private: Items() {} static Items* instance; public: static Items* GetInstance() { if (instance != nullptr) { return instance; }else { instance = new Items(); return instance; } } public: void Init(); void Update(Bird* _player); void Draw(); ~Items(); void SetTimer(); private: // 텍스처 로드하기 // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Texture2D CoinSprite; // Texture loading; std::vector<Coin> coins; Sound fxCoin; // Load WAV audio file bool canSpawn; int timer; }; #endif
아이템 에이전트는 싱글톤으로 만들었다. 굳이 싱글톤으로 만들 필요가 있는지 의문이긴하나, 혹시 나중에 코드가 커졌을 떄에 아이템 에이전트가 2개가 되면 안되니 싱글톤으로 만들었다.
앞으로 사용할 코인스프라이트등의 텍스쳐나, 사운드는 아이템 에이전트(Items 클래스)에 저장한 후, 여기에서 불러올 것이다. 그리고 포인터로 리소스를 불러오면 리소스의 중복을 막을 수 있을 것이다.
2. items.cpp
아이템을_스폰시키는_에이전트_만들기.1697902083.txt.gz · 마지막으로 수정됨: 2023/10/22 00:28 (바깥 편집)
로그인