motion_set 함수 설명 및 활용 예제
함수 설명
motion_set
함수는 코드가 실행되는 인스턴스의 새로운 이동 방향과 속도를 설정합니다. 이 함수는 현재 속도와 방향에 추가하지 않고, 새로운 설정으로 강제로 변경합니다. 현재 속도에 추가하고 싶다면 motion_add()
함수를 사용해야 합니다.
문법
motion_set(dir, speed);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
dir | 숫자 | 새로운 방향 (0~360도) |
speed | 숫자 | 새로운 속도 |
반환값
- 없음
예제
if (irandom(9) = 1) {
motion_set(random(360), 1 + random(3));
}
위 코드는 인스턴스가 무작위 간격으로 속도와 방향을 변경하도록 합니다.
활용 예제
예제 1: 랜덤 방향으로 이동
if (keyboard_check(vk_space)) {
motion_set(random(360), 5);
}
- 스페이스 키를 누르면 인스턴스가 무작위 방향으로 속도 5로 이동합니다.
예제 2: 특정 조건에서 방향 변경
||
|---|
motion_set(180, 3); // 벽에 부딪히면 반대 방향으로 이동
}
- 인스턴스가 방의 경계를 넘어가면 반대 방향으로 속도 3으로 이동합니다.
예제 3: 목표 지점으로 이동
if (distance_to_point(target_x, target_y) < 50) {
motion_set(point_direction(x, y, target_x, target_y), 4);
}
- 목표 지점과의 거리가 50 이하일 때, 그 지점으로 향하는 방향으로 속도 4로 이동합니다.
예제 4: 시간에 따른 속도 변화
if (current_time > 100) {
motion_set(90, 2); // 100시간이 지나면 90도 방향으로 속도 2로 이동
}
- 특정 시간이 지나면 인스턴스가 90도 방향으로 속도 2로 이동합니다.
예제 5: 충돌 시 방향 변경
if (place_meeting(x, y, obj_wall)) {
motion_set(random(360), 3); // 벽과 충돌 시 무작위 방향으로 속도 3으로 이동
}
- 인스턴스가 벽과 충돌하면 무작위 방향으로 속도 3으로 이동합니다.