플레이어 ID와 객체 정의
rollback_define_player()
함수를 사용하여 플레이어 객체를 정의하면, 시스템은 각 플레이어에 대한 객체 인스턴스를 자동으로 생성합니다. 각 객체 인스턴스는 player_id
변수를 가지며, 이 변수는 해당 플레이어의 ID를 저장합니다. 이 ID는 0부터 시작하며, 처음에는 호스트 자신을 나타냅니다. 1 이상의 플레이어는 게임에 참여한 "피어"입니다.
rollback_define_player()
를 사용하지 않으면, 이 변수는 어떤 객체에도 생성되지 않습니다. 이 경우, 플레이어 인스턴스와 그 ID는 수동으로 관리해야 합니다.
문법
player_id;
- 반환값: 실수
예제
// 생성 이벤트
if (player_id == 0) {
x = 300;
} else if (player_id == 1) {
x = 500;
}
위 코드는 플레이어 인스턴스의 ID에 따라 X 위치를 변경합니다.
또한 이 ID를 배열 인덱스로 사용할 수 있습니다. 예를 들어, 모든 플레이어의 점수를 저장하는 데 사용할 수 있습니다.
// 스텝 이벤트
var _coin = instance_place(x, y, obj_coin);
if (_coin != noone) {
obj_game.scores[player_id]++;
instance_destroy(_coin);
}
// 드로우 이벤트
var _my_score = obj_game.scores[player_id];
draw_text(x, y, _my_score);
위의 스텝 이벤트 코드는 플레이어가 동전과 충돌할 때 obj_game
의 배열에서 플레이어의 점수를 증가시킵니다. 그 동전 인스턴스는 이후 파괴됩니다.
드로우 이벤트 코드는 같은 배열에서 플레이어의 점수를 가져와서 그 값을 화면에 그립니다.
활용 예제
예제 번호 | 설명 |
---|---|
1 | 플레이어의 위치를 ID에 따라 다르게 설정하기 |
2 | 플레이어가 아이템을 수집할 때 점수 증가시키기 |
3 | 각 플레이어의 점수를 화면에 표시하기 |
4 | 특정 조건에서 플레이어의 상태 변경하기 |
5 | 플레이어의 ID를 사용하여 특정 기능 활성화하기 |
이와 같은 방식으로 player_id
를 활용하여 다양한 게임 로직을 구현할 수 있습니다.