[Godot] Wall Jump 벽 점프

Godot 2023. 10. 2. 16:53 |
반응형

벽을 타고 점프해 보자.

 

바닥, 벽, 캐릭터를 적당히 배치한다. 캐릭터에는 스크립트를 추가하자.

 

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
using Godot;
 
public partial class CharacterBody2D : Godot.CharacterBody2D
{
    public const float Speed = 300.0f;
    public const float JumpVelocity = -400.0f;
 
    public float gravity = ProjectSettings.GetSetting("physics/2d/default_gravity").AsSingle();
 
    public override void _PhysicsProcess(double delta)
    {
        Vector2 velocity = Velocity;
 
        if (!IsOnFloor())
            velocity.Y += gravity * (float)delta;
        
        if (Input.IsActionJustPressed("ui_accept"&& IsOnFloor())
            velocity.Y = JumpVelocity;
 
        if (Input.IsActionJustPressed("ui_accept"&& IsOnWallOnly())
            velocity.Y = JumpVelocity;
 
        Vector2 direction = Input.GetVector("ui_left""ui_right""ui_up""ui_down");
        if (direction != Vector2.Zero)
        {
            velocity.X = direction.X * Speed;
        }
        else
        {
            velocity.X = Mathf.MoveToward(Velocity.X, 0, Speed);
        }
 
        Velocity = velocity;
        MoveAndSlide();
    }
}
 

 

 

IsOnWallOnly() 함수를 사용한 스크립트를 작성한다. 

 

벽을 타고 wall jump가 가능하다.

 

※ 참고

CharacterBody2D

Using CharacterBody2D/3D

 

반응형
Posted by J-sean
:
반응형

캐릭터의 더블 점프를 구현해 보자.

 

CharacterBody2D 노드를 이용해 캐릭터를 만든다.

 

● CharacterBody2D - control.cs 스크립트를 추가

● Sprite2D - Texture 지정

● CollsionShape2D - Shape 속성 설정

 

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
42
43
44
45
46
47
48
49
using Godot;
 
public partial class control : CharacterBody2D
{
    public const float Speed = 300.0f;
    public const float JumpVelocity = -400.0f;
 
    // Get the gravity from the project settings to be synced with RigidBody nodes.
    public float gravity = ProjectSettings.GetSetting("physics/2d/default_gravity").AsSingle();
 
    private bool isFirstJump = false;
 
    public override void _PhysicsProcess(double delta)
    {
        Vector2 velocity = Velocity;
 
        // Add the gravity.
        if (!IsOnFloor())
            velocity.Y += gravity * (float)delta;
 
        // Handle First Jump.
        if (Input.IsActionJustPressed("ui_accept"&& IsOnFloor())
        {
            velocity.Y = JumpVelocity;
            isFirstJump = true;
        }
        // Handle Second Jump.
        else if (Input.IsActionJustPressed("ui_accept"&& isFirstJump == true)
        {
            velocity.Y = JumpVelocity;
            isFirstJump = false;
        }
 
        // Get the input direction and handle the movement/deceleration.
        // As good practice, you should replace UI actions with custom gameplay actions.
        Vector2 direction = Input.GetVector("ui_left""ui_right""ui_up""ui_down");
        if (direction != Vector2.Zero)
        {
            velocity.X = direction.X * Speed;
        }
        else
        {
            velocity.X = Mathf.MoveToward(Velocity.X, 0, Speed);
        }
 
        Velocity = velocity;
        MoveAndSlide();
    }
}
 

 

 

더블 점프 구현을 위한 control.cs 스크립트는 위와 같이 작성한다.

 

Node2D 노드를 이용해 Ground 를 만든다.

 

● StaticBody2D

● Sprite2D - Texture 지정(ground.jpg)

● CollisionShape2D - Shape 속성을 Sprite2D 땅 부분에 맞게 설정

 

gound.jpg
0.20MB

 

Node 노드를 이용해 전체 게임을 구성한다.

 

위에서 만든 캐릭터와 그라운드를 Node 노드의 자식노드로 추가한다. (Instantiate Child Scene)

 

 

배경 이외의 부분이 보이지 않도록 윈도우 사이즈를 적당히 조절한다.

 

게임을 실행하고 이중 점프를 테스트 한다.

 

※ 참고

Using CharacterBody2D/3D

CharacterBody2D

2D movement overview

 

반응형
Posted by J-sean
:
반응형

ollydbg에서 jump 명령어 실행 시 이동되는 위치는 시각적으로 명확히 표시되지 않는것이 기본 세팅 이다.



ollydbg.ini 파일에서 아래와 같은 항목들의 값을 1로 바꿔 준다.

  • Show jump path
  • Show jumpfrom path
  • Show path if jump is not taken



ollydbg를 실행해서 확인하면 아래와 같이 화살표로 jump 가 명확히 표시된다.


반응형

'Reverse Engineering' 카테고리의 다른 글

x64dbg Color Scheme 바꾸기  (0) 2019.02.19
Cheat Engine으로 Pointer 찾기  (2) 2019.02.13
Back to user mode  (4) 2019.02.10
Windows 10에서 *.hlp 파일 열기  (10) 2019.02.05
IDA Pro Skin 바꾸기  (1) 2019.02.04
Posted by J-sean
: