Godot: KinematicBody2D ์ด๋™์€ ์ถฉ๋Œ ๋ณ€ํ™˜์„ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(_fixed_process์˜ ์ฒซ ๋ฒˆ์งธ ์ด๋™๋งŒ ์œ ํšจํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•จ).

์— ๋งŒ๋“  2017๋…„ 03์›” 16์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: godotengine/godot

์šด์˜ ์ฒด์ œ ๋˜๋Š” ์žฅ์น˜ - Godot ๋ฒ„์ „:
Windows 10 x64 - Godot 2.1.2.stable.official

๋ฌธ์ œ ์„ค๋ช…:
move()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ KinematicBody2D๋ฅผ ์ด๋™ํ•œ ํ›„ Collider ๋ณ€ํ™˜์ด ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ์ด๋™์€ ์ดˆ๊ธฐ Collider ์œ„์น˜/๋ณ€ํ™˜์œผ๋กœ๋งŒ ํ…Œ์ŠคํŠธ๋ฉ๋‹ˆ๋‹ค.

์žฌํ˜„ ๋‹จ๊ณ„:

  • ์ง์‚ฌ๊ฐํ˜• CollisionShape2D๊ฐ€ ์žˆ๋Š” 1๊ฐœ์˜ KinematicBody2D(A) ๋ฐ 1๊ฐœ์˜ StaticBody2D(B)๋กœ ์žฅ๋ฉด ์„ค์ •
  • A๋Š” B ์™ผ์ชฝ์— ๋ฐฐ์น˜๋˜๊ณ (์•ฝ๊ฐ„์˜ ๊ณต๊ฐ„ <100px๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ) A ๋ฐ B CollisionSHapes๋Š” 64px x 64px์ž…๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ A์— ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€:
func _ready():
    set_fixed_process(true)

func _fixed_process(delta):
    move(Vector2(0, 100))
    move(Vector2(100, 0))
    set_fixed_process(false)

A๋Š” ์•„๋ž˜๋กœ ์ด๋™ํ•˜์ง€๋งŒ ์˜ค๋ฅธ์ชฝ์œผ๋กœ๋Š” ์ด๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์•„๋ž˜๋กœ ์ด๋™ํ•œ ํ›„์—๋„ A๋Š” B ์•„๋ž˜์— ๋งž์Šต๋‹ˆ๋‹ค.
B ์•„๋ž˜์— ์žˆ์–ด์•ผ ํ•˜๊ณ  L์ž ๋ชจ์–‘์œผ๋กœ ์›€์ง์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ฒ˜์Œ์—๋Š” ์•„๋ž˜๋กœ, ๋‹ค์Œ์—๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ).
Move๋Š” Colliders๋ฅผ ์ƒˆ ์œ„์น˜๋กœ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅธ์ชฝ์œผ๋กœ๋งŒ ์ด๋™ํ•˜๋ฉด B์— ์˜ํ•ด ์ฐจ๋‹จ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:
_fixed_process๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ:

func _fixed_process(delta):
    move(Vector2(0, 100))
    var st = get_shape_transform(0) # get current shape transform, assuming we only have 1 shape
    st.o += get_travel() # add move translation to shape transform
    set_shape_transform(0, st) # update shape transform
    move(Vector2(100, 0))
        # you should reset the shape transform to its original state befor returing
    set_fixed_process(false)
archived

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ #7951๊ณผ ์ค‘๋ณต๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ @RandomShaper ๊ฐ€ ํ™•์ธํ•˜๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์ด๊ฒƒ์€ #7951๊ณผ ์ค‘๋ณต๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ @RandomShaper ๊ฐ€ ํ™•์ธํ•˜๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋†“์ณค๋‹ค.
๊ฐ์‚ฌ ํ•ด์š”.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰