๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ Development Study/๐Ÿ’ป Win32API

Object Delete

by eazuooz 2022. 10. 12.

์˜ˆ์ œ :)

https://github.com/eazuooz/WindowAPI/commit/9e43c633680e9d236f996f29c2a7d8df23e51132

 

Object Delete, animator · eazuooz/WindowAPI@9e43c63

Show file tree Showing 26 changed files with 562 additions and 95 deletions.

github.com

 

๊ฒŒ์ž„์—์„œ ํ• ๋‹น๋œ ๊ฐ์ฒด๋“ค์ด ์‚ฌ๋ผ์งˆ๋•Œ ๋ณดํŽธ์ ์œผ๋กœ๋Š” ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œ ๋˜์–ด์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. 

 

Tick์™€ Render๊ฐ€ ์ง„ํ–‰์ค‘์ผ๋•Œ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ํ•ด์ œ ๋œ๋‹ค๋ฉด

ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๊ณณ๊ณณ์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ํ™•๋ฅ ์ด ๋†’๋‹ค.

 

๊ทธ๋ž˜์„œ ํ•œํ”„๋ ˆ์ž„ Tick Render๊นŒ์ง€ ๋๋‚˜๊ณ  ๋‚˜์„œ ์˜ค๋ธŒ์ ํŠธ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ๋ ค ํ•œ๋‹ค.

static __forceinline void Destroy(Object* object)
{
	object->Death();
}

static __forceinline void Release()
{
	Scene* scene = SceneManager::GetPlayScene();
	SceneObjects& objects = scene->GetObjects();

	std::vector<Object*> deleteObjects;
	for (size_t y = 0; y < _COLLIDER_LAYER; y++)
	{
		for (LayerObjectsIter iter = objects[y].begin()
			; iter != objects[y].end();)
		{
			if ((*iter)->IsDead() == true)
			{
				deleteObjects.push_back(*iter);
				iter = objects[y].erase(iter);
				continue;
			}
			
			++iter;
		}
	}

	for (Object* object : deleteObjects)
	{
		delete object;
		object = nullptr;
	}
}

Object๊ฐ€ ์ฃฝ์—ˆ๋Š”์ง€ ์‚ด์•˜๋Š”์ง€๋ฅผ ์ฒดํฌํ•ด์ค„ bool๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜๋‘๊ณ 

์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ๋ฐ”๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Destroy ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ์˜ค๋ธŒ์ ํŠธ์˜ ์ „์›๋งŒ ๊บผ์ฃผ๊ฒ ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด Tick๊ณผ Render๋ฅผ ๋ชจ๋‘ ์ง„ํ–‰ํ•œํ›„ ๋‹ค์Œ ํ”„๋ ˆ์ž„์œผ๋กœ ๋„˜์–ด๊ฐˆ๋•Œ ๋งˆ์ง€๋ง‰์—

๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๊ฒŒ์ž„ ์‹คํ–‰์ค‘์— ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊บผ์ฃผ๋”๋ผ๋„ ๋‚˜๋จธ์ง€๋ถ€๋ถ„์—์„œ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค.

'๐Ÿ“ Development Study > ๐Ÿ’ป Win32API' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

API Math  (0) 2022.10.20
Animator  (1) 2022.10.13
Alphablend, Camera Effect  (0) 2022.10.05
Camera  (1) 2022.10.04
Collider Manager  (1) 2022.09.30

๋Œ“๊ธ€