본문 바로가기
워드프레스

고도엔진 케릭터 움직이기 기초강의

by 몽크K 2018. 5. 29.
728x90

안녕하세요 고도엔진 케릭터 움직이는 부분을 알려드릴게요.

(저도 배워가는 입장이라 내용이 부실할수 있어요)

 

 

씬 부분에서 +를 클릭하여 Area2D 노드를 추가 합니다.

Area2D 노트가 추가되면 Area2D를 오른쪽 마우스를 클릭하여

AnimatedSprite,CollisionShape2D 자식 노드로 추가 합니다.

 

 

노드를 다 추가하셨으면 AnimatedSprite 노드를 클릭합니다 그러면 하단 익스펙터 창에 프레임 오른쪽 부분을 클릭하면 애니메이션 추가할수 있는 창이 뜹니다.

 

 

 

상하좌우 움직이는것만 확인할것므로 아무 그림이나 추가하셔도 되니 그림을 애니메이션 프레임창으로 드래그엔드랍으로 옮깁니다.

 

 

옮기셨으면 씬에서 Area2D 마우스 오른쪽을 클릭 합니다.

 

스크립트 붙이기를 눌러주세요

 

 

C#으로 할거기 때문에 C#을 선택해 줍니다.

 

public class Player : Area2D
{
    [Export]  //엑스포트 선언을 해주면 인스펙터 창에서 선안한 변수 조정이가능 합니다
    public int Speed = 10;

    private Vector2 _screenSize;
}

public override void _Ready()//케릭터가 화면에 들어가면 작동 합니다(유니티로 따지면 Start
{
    _screenSize = GetViewport().GetSize(); //스크린해상도를 스크린사이즈 변수에 저장합니다
}

public override void _Process(float delta)
{
    var velocity = new Vector2(); // x,y좌표를 넣을 변수를 선언합니다
    if (Input.IsActionPressed("ui_right")) {

//프로젝트 -> 포로젝트설정 -> 입력에 보면 ui_right 이미선언되어 있고 사용자가 변경이 가능 합니다
        velocity.x += 1;  // right 버튼이 누르면 x 좌표갑을 +1 더합니다
    }

    if (Input.IsActionPressed("ui_left")) {
        velocity.x -= 1;
    }

    if (Input.IsActionPressed("ui_down")) {
        velocity.y += 1;
    }

    if (Input.IsActionPressed("ui_up")) {
        velocity.y -= 1;
    }

 

Position += velocity; // 입력된 좌표값을 Position 넣습니다 이 부분이 실제로 케릭터를 움직입니다.
Position = new Vector2(
    Mathf.Clamp(Position.x, 0, _screenSize.x),
    Mathf.Clamp(Position.y, 0, _screenSize.y)

//케릭터가 화면안에서 움직이도록 제한을 겁니다.

}

 

다 입력하셨으면 F5를 눌러 실행을 해보세요

 

방향키 좌우로 상하 눌러보시면 케릭터가 누르신 방향키대로 움직이는것을 확인하실수 있습니다.

 

 

 

https://www.youtube.com/watch?v=wRNFpuMqJlk&t=1s  <<프로젝트 생성부터 헬로우 월드 출력 강의영상

 

 

 

 

728x90

댓글