vspeed 속성에 대한 설명
vspeed는 모든 인스턴스가 가지는 "내장" 속성 중 하나로, 인스턴스의 수직 이동 속도(즉, y축 방향의 속도)를 정의합니다. 속도는 픽셀 단위로 단계마다 이동하는 픽셀 수를 나타냅니다.
vspeed가 3인 경우: 인스턴스는 매 단계마다 아래쪽 (+y)으로 3픽셀 이동합니다.vspeed가 -3인 경우: 인스턴스는 매 단계마다 위쪽 (-y)으로 3픽셀 이동합니다.
중요한 점
speed및direction변수를 설정하면vspeed값이 자동으로 업데이트됩니다.- 반대로,
vspeed값을 변경해도speed및direction값이 영향을 받습니다. - 게임에서
gravity,gravity_direction,friction등의 요소가 이 변수의 값을 수정할 수 있습니다.
문법
vspeed;
반환 값
- (단정도 부동소수점 값)
예제 코드
아래의 코드는 사용자가 어떤 키를 눌렀는지에 따라 수직 속도를 변경합니다.
if (keyboard_check(vk_up)) vspeed = -5;
if (keyboard_check(vk_down)) vspeed = 5;
활용 및 응용 예제
| 키보드 입력 | vspeed 값 | 설명 |
|---|---|---|
| 위쪽 화살표 | -5 | 인스턴스가 위로 이동 |
| 아래쪽 화살표 | 5 | 인스턴스가 아래로 이동 |
| 없음 | 0 | 인스턴스가 이동하지 않음 |
예제 1: 점프 기능 구현
if (keyboard_check(vk_space) && vspeed == 0) {
vspeed = -10; // 스페이스 바가 눌리면 점프
}
예제 2: 중력 효과 추가
if (vspeed < 10) {
vspeed += 1; // 중력을 통해 VSPEED 증가
}
예제 3: 벽 충돌 처리
if (place_meeting(x, y + vspeed, obj_wall)) {
while (!place_meeting(x, y + sign(vspeed), obj_wall)) {
y += sign(vspeed); // 벽에 충돌하기 전까지 이동
}
vspeed = 0; // 벽에 부딪히면 수직 속도 0
}
이와 같이 vspeed 속성은 인스턴스의 수직 이동을 제어하는 데 매우 유용합니다. 다양한 상황에 맞춰 조정하면 더 많은 기능을 구현할 수 있습니다.