https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=160235&search_head=40&page=1
(ํด๊ฒฐ๋จ) ๊ณ ๋ ์์ง / ์ถ๊ฒฉํ๋ ์ ai ์๋๋ก ๊ฐ๋ฉด ๋ฌ๋ผ๋ถ๋ ํ์์๋ ์ํ ๋ฐฉํฅ์์ ๋ฟ์ผ๋ฉด ๊ด์ฐฎ์๋ฐ, ์๋๋ก๋ง ๊ฐ๋ฉด ๋ฑ ๋ฌ๋ผ๋ถ์ด์ ๋ฒฝ ๊ตฌ์ ๊ฐ์ ๋ฌผ์ฒด๋ก ๋ผ์ด๋ด์ง ์์ผ๋ฉด ๋จ์ด์ง์ง ์์ต๋๋ค.์ด๊ฒ ์์์๋ ๋ถ์์ผ๋ฉด ๋ฌธ์ ์ ์ ํ์ ํ ์ ์์ ๊ฑฐ ๊ฐ๊ธด ํ๋ฐ ์๋์์๋ง ๋ถ์ผ๋๊น ๋์ ํ ๊ฐ๋gall.dcinside.comํด๋น ์ง๋ฌธ์์ ์ฌ๋ผ์์ด ํ๋ ์ด์ด์๊ฒ ๋ฑ ๋ฌ๋ผ๋ถ๋ ํ์์ ๊ณ ์ณค๋๋ฐ, ์ด๋ฒ์๋ ์์ํ์ง๋ง ์ ๊ฒฝ ์ฐ์ด๋ ํ์์ด ์๊ฒผ์ต๋๋ค.
์ / ์ผ์ชฝ&์ค๋ฅธ์ชฝ์ ๊ฒฝ์ฐ ๋ฐ๋ ค๋ Idle ์ ๋๋ฉ์ด์
์ด ์ฌ์๋๋๋ฐ, ์๋์ชฝ์ผ๋ก ๋ฐ๋ฆด ๋๋ง Walk ์ ๋๋ฉ์ด์
์ด ์ฌ์๋๋ค์.
๋ค์์ ํ๋ ์ด์ด ์ฝ๋์ ๋๋ค.
extends CharacterBody2D
var enemy_inattack_range = false
var enemy_attack_cooldown = true
var health = 100
var speed : int = 125
func _ready():
print("test start")
func get_input():
var input_dir = Input.get_vector("move_left", "move_right", "move_up", "move_down")
velocity = input_dir * speed
func _physics_process(delta):
var mouse_position = get_global_mouse_position()
if velocity.length() != 0:
$AnimatedSprite2D.play("Walk")
else:
$AnimatedSprite2D.play("Idle")
if mouse_position.x > position.x:
$AnimatedSprite2D.flip_h = false
else:
$AnimatedSprite2D.flip_h = true
get_input()
move_and_slide()
==================================================================================================
์ฝ๋์์ฒด๊ฐ ์ข ๋ฑ์ ๊ฐ์๋ฐ 1. velocity์ ๋ฐ๋ผ ๋์ํ๋๊ฑธ ์์๋ค ์์ฑํ๊ณ velocity๊ฐ์ ์ ์ ์๋์์๋๋ฐ ๋ง์? 2. velocity.length != 0 ์์ print(velocity) ์จ์ ๊ฐ ํ์ธํด๋ณด์ 3. ๋ณดํต์ ์ ๋ ๊ฒ ์ฝ๋ ์์ ์ ๋๋ฉ์ด์ ์๋์ animation tree ๋ ธ๋๋ก ๊ด๋ฆฌํจ
์ด๊ฑด ์์ํ๊ฑฐ์ง๋ง.. get input์ด๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง ํจ์์์ velocity๊ฐ ์ง์ ํ๋๊ฑฐ๋ ์ด์ํจ, ํจ์ return๊ฐ์ผ๋ก velocity = get input์ผ๋ก ํ๋๊ฐ ๋ ๊ทธ๋ด๊ฑฐ๋ฉด ํ์ค์ง๋ฆฌ ํจ์๋ฅผ ์ฌ์ฌ์ฉํ๋๊ฒ๋์๋๊ณ ๊ทธ๋ฅ ํจ์์ฝ๋ง ์ธ๋ฐ์์ด ๋๋ฆฌ๋๊ฑฐ๋๊น ํจ์๋ก ์ฐ์ง๋ง๊ณ ๋ฐ๋ก process์ ์ฝ๋๋ก ์ฐ์
์ข์ ํผ๋๋ฐฑ ๊ฐ์ฌํฉ๋๋ค. ์ฐธ๊ณ ํ ๊ฒ์!!
๊ทธ๋ฆฌ๊ณ ํผ๋๋ฐฑ ๋๋ก get input ํจ์ ๋ด์ฉ์ process๋ก ์ฎ๊ฒผ๋๋ ๋๋๊ฒ๋ ๋ฒ๊ทธ๊ฐ ์ฌ๋ผ์ก๋ค์ ใทใท ์ ๋ง ๊ฐ์ฌํฉ๋๋ค