◈오브젝트(object)와 인스턴스(instance)
⊙오브젝트(object)
오브젝트는 게임메이커의 리소스에 해당합니다.
(▲ 오브젝트)
게임에서 사운드와 음악을 재생하고, 다양한 캐릭터의 모습을 설정할 수 있고, 그리고 이동하기등 여러가지
이벤트를 이 곳에서 설정하게 됩니다.
⊙인스턴스(instance)
인스턴스는 게임상에 오브젝트를 생성했을 때의 객체를 말합니다.
(▲ 인스턴스)
게임상에서 인스턴스는 고유의 ID번호(숫자로 100000이상)를 부여하게 되는데, 이것을 이용해 해당 인스턴스의
변수나 여러가지 설정들을 게임상에서 재설정을 할 수가 있지요.
이 ID를 얻는것은 상황에 따라 다릅니다.
게임상에서 2개 이상의 인스턴스가 충돌시 얻는 방법이 있습니다.
//충돌 오브젝트(obj_enemy)의 방향을 랜덤으로 지정해주고,
|
이것은 instance_place 함수를 통해 현재 오브젝트와 obj_enemy 오브젝트가 충돌 하면, 충돌한 obj_enemy
오브젝트중 하나의 id를 inst라는 임시 변수에 할당을 합니다. 그러면 inst라는 변수에 얻은 id로 충돌한
상대 인스턴스(obj_enemy)의 정보를 변경할 수 있도록 하는 것이지요.
상대 인스턴스의 정보를 제어하는 것은,
(인스턴스 id).변수=설정값
또는,
with(인스턴스 id){변수=변수값}
이와 같이 하면 제어할 수 있습니다.
그리고 오브젝트를 검색하여 적절한 id를 찾는 방법도 있습니다.
//obj_enemy를 검색해서 인스턴스와 충돌한 오브젝트의 hp가 10보다 크면 -10을 감소시키고,10이하이면 hp를 0으로 만듭니다. n=instance_number(obj_enemy); for(i=0;i<n;i+=1;) { inst=instance_find(obj_enemy,i); if place_meeting(x,y,inst){ if inst.hp>10{inst.hp-=10;}else{inst.hp=0;} } } |
인스턴스의 생성은 instance_create(x,y,오브젝트)의 함수로 생성할 수 있습니다.
또한 인스턴스가 생성되었을 때 그 인스턴스의 id를 변수에 할당하여 정보를 변경할 수도 있습니다.
예를 들면,
inst=instance_create(x,y,obj_explo); inst.alarm[0]=180; |
이와 같이, inst 라는 임의의 변수에, 생성된 인스턴스의 ID값을 할당하고, 생성할 때 얻은 id를 통해 해당 인스턴스의
변수값을 변경할 수도 있습니다.
이처럼 인스턴스는 오브젝트를 룸에 생성 했을 때의 객체로, 기존의 오브젝트에 설정한 정보를 해당 인스턴스의 id를
통해 정보를 다시 갱신하거나 재설정할 수 있습니다.
'GameMaker강좌[GM8] > 기초강좌' 카테고리의 다른 글
[게임메이커강좌-기초]글로벌변수와 로컬변수 (2) | 2013.04.13 |
---|---|
[게임메이커강좌-기초]스프라이트(sprite)및 마스크(mask) (4) | 2013.04.13 |
[게임메이커강좌-기초]기본 이동대하여 (10) | 2013.02.08 |
[게임메이커강좌-기초]좌표와 방향 (3) | 2013.02.06 |
[게임메이커강좌-기초]리소스 구성 (1) | 2013.02.04 |
댓글