[Godot] Character Move with Tween 캐릭터 이동(트윈)
Godot 2023. 9. 21. 13:12 |반응형
트윈을 사용해 캐릭터를 이동해 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
using Godot;
public partial class control : Sprite2D
{
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
// IsMouseButtonPressed()는 짧게 한 번 클릭해도 여러번 True를 반환 할 수 있다.
// 정확히 한 번만 호출되어야 한다면 Input.IsActionJustPressed()를 사용하자.
if (Input.IsMouseButtonPressed(MouseButton.Left))
{
Tween tween = CreateTween().SetParallel(true);
// SetParallel(true) 다음에 추가되는 트위너들은 모두 동시에 실행된다.
tween.TweenProperty(this, "rotation_degrees", 90, 3.0f).AsRelative();
// 클릭 한 번에 IsMouseButtonPressed()가 여러번 true를 반환하기 때문에
// 90도 이상 회전하는 것처럼 보일 수 있다.
// Asrelative()가 없다면 월드 좌표계 90도로 회전하고 더 이상 회전하지 않는다.
tween.TweenProperty(this, "position", GetGlobalMousePosition(),
3.0f).SetTrans(Tween.TransitionType.Elastic).SetEase(Tween.EaseType.Out);
// Godot Object 인수로 this 대신 GetNode("/root/Sprite2D") 또는
// GetNode("../Sprite2D")를 넣을 수 있다.
//tween.TweenCallback(Callable.From(()=>GD.Print("Finished."))).SetDelay(1.0f);
tween.TweenCallback(Callable.From(Lastcall)).SetDelay(3.0f);
// 임의의 함수(Lastcall)를 호출한다. SetDelay()로 트위너의 동작이 모두 끝난 후
// 호출되도록 할 수 있다.
}
}
public void Lastcall()
{
GD.Print("Finished.");
}
}
|
Tween을 사용해 이동하는 코드를 작성한다.
※ 참고
반응형
'Godot' 카테고리의 다른 글
[Godot] Hide/disable/confine Mouse Cursor 마우스 커서 숨기기 (0) | 2023.09.23 |
---|---|
[Godot] One Way Collision 한 쪽 방향으로만 충돌 체크 (0) | 2023.09.21 |
[Godot] Character Double Jump 캐릭터 이중 점프 (0) | 2023.09.20 |
[Godot] Character Move 캐릭터 이동 (0) | 2023.09.20 |
[Godot] Keyboard, Mouse Input Handling 키보드 마우스 입력 (0) | 2023.09.20 |