execute code:///๊ธฐ๋ณธ๋ณ์encountered = 0;//์์นด์ดํฐ ๋จrandomize();mob_count = irandom_range(1,global.m_rspawn); //๋ชน์ ์ต๋ ์คํฐ ์ซ์
execute code:///์์นด์ดํฐ ์ขํ ์์ฑ//๊ณ ์ ๋ณ์f_zone = ds_grid_create(8,7); //๋งต ๊ทธ๋ฆฌ๋(๋ชน ์์ฑ๋ถ๊ฐ ์ขํ ํ์ธ์ฉ)dx = noone; //X๋๋ค์ขํdy = noone; //Y๋๋ค์ขํf_able = -4;//๊ทธ๋ฆฌ๋ ์ต์ด ์ง์ for (var xx=x+16; xxfor (var yy=y+16; yy{ if position_meeting(xx,yy,WallPP) //์ค๋ธ์ ํธ ํ์(๋ชน ์์ฑ๋ถ๊ฐ ์์น) { ds_grid_set(f_zone,((xx-x)/16)-1,((yy-y)/16)-1,1); } //ํ์ฌ ์ขํ ๊ทธ๋ฆฌ๋์ 1์ค์ else//์๋๊ฒฝ์ฐ { ds_grid_set(f_zone,((xx-x)/16)-1,((yy-y)/16)-1,0); } //ํ์ฌ ์ขํ ๊ทธ๋ฆฌ๋์ 0์ค์ }
Step Event:
execute code:if global.encountered = 1{ //๋๋ค์ขํ ์ฌ์ค์ if f_able = noone //์ขํํ์ ์ํ์ผ๋ฉด { dx = irandom_range(0,7); dy = irandom_range(0,6); f_able = ds_grid_get(f_zone,dx,dy); } //๋น ์ขํ ๋๋คํ์(dx,dy)
encountered = 1;
global.mob_num = mob_count; //๋ชน ์ซ์ ์นด์ดํธ}execute code:if f_able = 0 //๋ฐฐ์น๋๋ฉด{ if mob_count > 0 //๋ชน์นด์ดํธ 0๋ณด๋ค ๋ง์ผ๋ฉด(๋ฐฐ์น์ ๋ถ์กฑํ๋ฉด) { // var mx = x+((dx+1)*16)+8 //๊ทธ๋ฆฌ๋ X์ขํ ์ถ์ถ var my = y+((dy+1)*16)+8 //๊ทธ๋ฆฌ๋ Y์ขํ ์ถ์ถ if not instance_position(mx,my,MobPP) { mob_count -= 1 mobs = instance_create(mx,my,choose(obj_Skeleton,obj_Pixy)); mobs.number = mob_count; ds_list_insert(mob_list,mob_count,mobs); instance_create(mx,my,obj_effecttester) } //๋๋ค์ขํ ์ฌ์ค์ f_able = 1 }}if f_able = 1 //๋ฐฐ์น๋ถ๊ฐ๋ฉด{ //๋๋ค์ขํ ์ฌ์ค์ dx = irandom_range(0,7); dy = irandom_range(0,6); f_able = ds_grid_get(f_zone,dx,dy);}
์์ฑ๋ ์ธ์คํดํธ ํฌ๊ธฐ๋งํผ ์ขํ ํ์ํ ๋ค์์ ๋น๊ณต๊ฐ์ ๋๋ค์ผ๋ก ๋ชน ๋ฐฐ์นํ๋ ์ฝ๋์ธ๋ฐย
์ด๊ฒ ๋ค ์ข์๋ฐ ์ ์ขํ ํ์ํ ๋๋ง๋ค ๋๋ ์ด๊ฐ ๋ง์ด ์๊น
๋ด๊ฐ ์๊ฐํ๊ธฐ์๋ ์ด ์ฝ๋๊ฐ ํ์ -> ํ์ธ -> ๋ฐฐ์น ์์๋ฅผ ๊ฑฐ์น๋๋ฐ ํ๋ฒ ํ์ธํ ์ขํ๋ฅผ ๋ค์ํ๋ฒ ํ์ธํ๋๊น ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ๋๊ฑฐ๊ฐ์
๊ทผ๋ฐ ๋ด๊ฐ ์ข ๋ ๋จน์ด๋ผ์ ํ๋ฒ ํ์๋ ์ขํ๋ฅผ ๋ฐฐ์ ์ํค๋ ๋ฐฉ๋ฒ์ ์๋ง๋ค๊ณ ํด๋ฒ๋ ธ๋๋ฐ
์ด๋ป๊ฒ ๋๋ ์ด ์ค์ด๋ ๋ฐฉ๋ฒ ์์๊น? ๊ทธ๊ฒ ์๋๋๋ผ๋ ํ๋ฒ ํ์ํ ์ขํ๋ ์ฌํ์์์ ๋นผ๋ฒ๋ฆฐ๋ค๋๊ฐ ํ๋ ๋ฐฉ๋ฒ ์๋?
๋ฆฌ์คํธ ๋ง๋ค์ด์ ๊ทธ๋ฆฌ๋ ์นธ์ ๋ค ๋๋ ค๋ฐ๊ณ ํ์ํ ์นธ์ ๋ฆฌ์คํธ์์ ๋นผ๋ฉด ๋์์