GameMaker의 phy_bullet 변수 설명
개요
phy_bullet
변수는 인스턴스가 매우 빠르게 움직이는지를 정의합니다. 예를 들어, 총알과 같은 객체가 이에 해당합니다. 기본값은 false
이며, true
로 설정하면 GameMaker는 해당 인스턴스가 매우 높은 속도로 이동하고 있음을 인식하여 더 복잡한 충돌 감지를 수행하게 됩니다. 이는 다른 인스턴스와의 충돌을 감지하지 못하고 통과하는 것을 방지하기 위함입니다.
문법
phy_bullet;
반환값
true
또는false
(인스턴스가 물리학이 활성화되지 않은 경우undefined
)
예제
다음 코드는 새로운 인스턴스를 생성하고, 이를 물리학 세계에서 "총알"로 정의한 후, y축을 따라 큰 임펄스를 적용하는 예제입니다.
with (instance_create_layer(x, y, "Bullets", obj_Shoot)) {
phy_bullet = true;
physics_apply_local_impulse(0, 10, 0, 200);
}
활용 예제
1. 총알 발사기
if (mouse_check_button_pressed(mb_left)) {
var bullet = instance_create_layer(x, y, "Bullets", obj_Shoot);
bullet.phy_bullet = true;
physics_apply_local_impulse(0, -10, 0, 300);
}
2. 적의 총알
if (enemy_shoot) {
var enemy_bullet = instance_create_layer(x, y, "Bullets", obj_EnemyBullet);
enemy_bullet.phy_bullet = true;
physics_apply_local_impulse(0, -5, 0, 150);
}
3. 빠른 이동하는 캐릭터
if (keyboard_check(vk_right)) {
x += 10; // 오른쪽으로 빠르게 이동
phy_bullet = true; // 빠른 이동으로 설정
}
표: 변수 및 속성
변수 이름 | 설명 | 기본값 |
---|---|---|
phy_bullet | 인스턴스가 빠르게 움직이는지 여부 | false |
phy_speed | 인스턴스의 속도 | 0 |
phy_mass | 인스턴스의 질량 | 1 |
phy_friction | 인스턴스의 마찰 계수 | 0.5 |
phy_restitution | 인스턴스의 복원력 | 0.5 |
phy_gravity | 인스턴스에 적용되는 중력 | 1 |
phy_linear_damping | 선형 감쇠 | 0 |
phy_angular_damping | 각 감쇠 | 0 |
phy_sleeping | 인스턴스가 잠자는지 여부 | false |
phy_enabled | 물리학이 활성화되어 있는지 여부 | true |