์์ธ๋ํ๊ต ์ ๊ธฐ์ ๋ณด๊ณตํ๋ถ ์กธ์
ํ์ฌ ์คํํธ์ ์ ์ฌ์ง์ค์ธ ๊ฒ์ ๊ฐ๋ฐ์์ ๋๋ค
์ด๋ ค์ด ์ฝ๋ฉ, ์ฌ์์ง ๋๊น์ง ๋ฐ์น๊ธฐ!
cobak7@naver.com
Courses
Reviews
studyeveryday
ยท
Head-Butting Game Development with Godot Engine!! - From Basic Concepts to Real-World Game Production All at Once!Head-Butting Game Development with Godot Engine!! - From Basic Concepts to Real-World Game Production All at Once!mirae
ยท
Head-Butting Game Development with Godot Engine!! - From Basic Concepts to Real-World Game Production All at Once!Head-Butting Game Development with Godot Engine!! - From Basic Concepts to Real-World Game Production All at Once!matiz882258
ยท
Head-Butting Game Development with Godot Engine!! - From Basic Concepts to Real-World Game Production All at Once!Head-Butting Game Development with Godot Engine!! - From Basic Concepts to Real-World Game Production All at Once!birdman
ยท
Head-Butting Game Development with Godot Engine!! - From Basic Concepts to Real-World Game Production All at Once!Head-Butting Game Development with Godot Engine!! - From Basic Concepts to Real-World Game Production All at Once!
Posts
Q&A
๋ ธ๋์ ๋ด์ฅ ์๊ทธ๋ ์ด์ฉ ๊ด๋ จ ๋ฌธ์
'๊ตณ์ด' ๋ง์ต๋๋ค ใ ใ ๊ฐ์ธ ์ทจํฅ์ ๋๋ค๋ง, ์๋ฌด๋๋ ๊ฐ๋ ์ฑ๊ณผ ๋๋ฒ๊ทธ ์ฉ์ดํจ์ด ์ ์ผ ํฐ ์ด์ ๊ฐ์ต๋๋ค. ๋ ๋ค๋ฅธ ๊ฐ์ธ์ ์ธ ์ด์ ๋ก๋๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ฐํ์์ disconnect ๋ฉ์๋๋ฅผ ์ธ ์ผ์ด ์๋๋ฐ์ด๋ฅผ connect ๋ฉ์๋์ ํจ๊ป ๊ด๋ฆฌํ๋ฉด ์ผ๊ด์ฑ์ด ๋๊ปด์ ธ์๊ท์ฐฎ์๋ ์ ์ด์ ์๋ connect๋ฅผ ์ ํธํฉ๋๋ค.(๋ฌผ๋ก ์๋ํฐ์์ ์ฐ๊ฒฐํ ๊ฒฝ์ฐ์๋ disconnect๋ฅผ ํ์ฉ ๊ฐ๋ฅํฉ๋๋ค^^) ๊ฐ์ฌํฉ๋๋ค!
- 0
- 3
- 9
Q&A
46. ์์์ฌ(3) ์์ ์ง๋ฌธ
์๋ ํ์ธ์.ํ์ด์ฌ์ super()๊ณผ ๋ค๋ฅด๊ฒ, super() ๊ตฌ๋ฌธ์ด ๋ค์ด๊ฐ ํด๋น ๋ฉ์๋(๋ถ๋ชจ ํด๋์ค)๋ง ์คํ๋๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.๋ฐ๋ผ์ ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์คํํ๊ณ ์ถ์ผ๋ฉด ์ผ์ผ์ด super()๋ฅผ ์จ์ผํ๋ฉฐ,on_area_entered์์ super()์ ์ฐ์ง ์์ ๊ฒฐ๊ณผ๋ถ๋ชจ ํด๋์ค์ pass ๊ตฌ๋ฌธ ์กฐ์ฐจ ์คํ๋์ง ์๋๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.super()์ ์จ๋ดค์ pass๊ฐ ์คํ๋๋๊น ์๋ฏธ์๋ค๊ณ ๋ณด์๋ฉด ๋๊ฒ ๋ค์.ํ์ด์ฌ์์์ super(). something() ์์ผ๋ก ๋ฐ๋ก ํธ์ถ์ ํ๋ค๋ ์ ๊ณผ ์ฐจ์ด๊ฐ ์์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค!
- 0
- 2
- 20
Q&A
3. ๋ฏธ๋ ์ํฐ๊ฒ์ > ๋ ์ด์ ์ฌ ์์ global_position ๊ณผ position ์ฐจ์ด??
์๋ ํ์ธ์๊ธ๋ก๋ฒ ์ขํ๊ฐ ๋ก์ปฌ ์ขํ๋ณด๋ค ์ง๊ด์ ์ด๊ณ ์ดํดํ๊ธฐ ์ฌ์์์ฌ์ฉํ ๊ฒ์ด์ง ๋ณ๋ค๋ฅธ ์๋ฏธ๋ ์์ต๋๋ค! ^^;์ปค๋ฆฌํ๋ผ ์์ผ๋ก๋ ๋ค์ชฝ์์ ๋ก์ปฌ ์ขํ๊ณ๋ฅผ ์ค๋ช ํ๊ธฐ ๋๋ฌธ์ ๊ธ๋ก๋ฒ ํฌ์ง์ ์ ๋จผ์ ์ฌ์ฉํ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค!
- 0
- 2
- 37
Q&A
์๋๋ก์ด๋, iOS๋น๋
์๋ ํ์ธ์!์ฐ์ ๊ณ ๋ ์์ง์์ ๋ชจ๋ฐ์ผ ๊ฒ์ ์ง์์ด ์์ง ๊ทธ๋ ๊ฒ ์ข์ง๋ ์๋ค๋ ์ ์ ์๋ ค๋๋ฆฌ๊ณ ์ถ๋ค์.์ธ์ฑ ๊ฒฐ์ ๋ ์ ๋๋ชน์ ์ฐ์ค ๋ ์ด๋ณด์๊ฐ ๊ตฌํํ๊ธฐ ๋ง๋ง์น ์๊ณ ,ํนํ ios ์ชฝ์ด ์๋์ ์ผ๋ก ๋ ๋น์ฝํฉ๋๋ค. ๊ท๋ชจ๊ฐ ์์ ๋ชจ๋ฐ์ผ ๊ฒ์์ ๋ง๋ค์ด์ ์๋๋ก์ด๋์์ ์คํ๋๋ .apk๋ฅผ ๋น๋ํ๊ณ ์ถ์ผ์๋ค๋ฉดhttps://www.youtube.com/watch?v=dCLYMF32ZBE์ ๊ฐ๋จํ ์์์ ์ฐธ๊ณ ํ์๋ฉด ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.ํ์ง๋ง (๋ณดํต์ ๊ฒฝ์ฐ) ๊ด๊ณ ๋ ์ธ์ฑ ๊ฒฐ์ ๋ฅผ ์ฐ๋ํ๊ณ ๊ตฌ๊ธ ํ๋ ์ด์ ์ถ์๋ฅผ ํ๊ณ ์ถ์ผ์๋ค๋ฉดgradle์ด๋ผ๋ ๊ฒ์ ๋น๋ ํ์ฌ .aab๋ฅผ ๋น๋ํ์ฌ์ผ ํฉ๋๋ค.https://docs.godotengine.org/en/stable/tutorials/export/android_gradle_build.htmlgradle build๋ ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.(android ๋น๋ ํ ํ๋ฆฟ ์ค์น๋ฅผ ํ์๋ฉด ๋๋๋ฐ ๊ฐ์ ๋ด์ฉ๊ณผ ๊ฝค ์ ์ฌํฉ๋๋ค) ios์ ๊ฒฝ์ฐ xcode๋ฅผ ์ด์ฉํด์ ๋น๋๋ฅผ ํด์ผ ํ๋๋ฐ,https://www.youtube.com/watch?v=x_ZFAV2id3I์์ ๊ธด ์์์ macOS๋ฅผ ํตํด ๋น๋๋ถํฐ ์ฑ ์คํ ์ด ๋ฑ๋ก๊น์ง ์์ธํ ๋์ ์์ด์์ฐธ๊ณ ํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ณ ๋ ์์ง๋ ์๋ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋ค ๋ณด๋,๋ชจ๋ฐ์ผ ๊ฐ๋ฐ ์ํ๊ณ๊ฐ ์ข์์ง๋ ๋๋ก๋ชจ๋ฐ์ผ ๊ฒ์ ๊ฐ์ ์ ์๋ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค.^^๊ฐ์ฌํฉ๋๋ค!
- 0
- 1
- 69
Q&A
์ฐ์ฃผ์ ํ์
์๋ ํ์ธ์๊ฐ์ 12๋ถ ๋ถ๊ทผ์ ์ค๊ฐ ์ฝ๋๋ฅผ ๋ง์ํ์๋ ๊ฒ ๊ฐ๋ค์!ํด๋น ์ฝ๋๋ ๋๊ฐ์ ๋ฐฉํฅ(๋ฐฉํฅ ๋ฒํผ 2๊ฐ)์ ๋๋ฅธ ์๊ฐ๋ฝ์๋์์ ๋ผ์ผ ๋๊ฐ์ ์ผ๋ก ๋ฉ์ถ๊ฒ ๋๊ณ ,๋ ์๊ฐ๋ฝ์ ๋ผ๋ ๋ฐ ์กฐ๊ธ์ด๋ผ๋ ์ค์ฐจ(60๋ถ์ 1์ด ์ด์)๊ฐ ์๊ธฐ๋ฉด์กฐ๊ธ์ด๋ผ๋ ๋ฆ๊ฒ ๋ ์๊ฐ๋ฝ ๊ธฐ์ค์ผ๋ก get_vector๊ฐ ๋ฐ๋๊ธฐ ๋๋ฌธ์์ฐ์ฃผ์ ์ด ๊ทธ์ชฝ์ผ๋ก ๋ฐ๋ผ๋ณด๊ฒ ๋ฉ๋๋ค.์ด๋ ์ค๋ฅ๊ฐ ์๋ค๊ธฐ ๋ณด๋ค๋ _process ํจ์๊ฐ 1์ด์ 60๋ฒ ์ฐ๋ฆฌ ํค๋ณด๋์ ์ ๋ ฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์์๊ธฐ๋ ๋ถ๋์ดํ ํ์.. ์ด๋ผ๊ณ ์ดํด๋ฅผ ํ์๊ณ ๋์ด๊ฐ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค!
- 0
- 2
- 66
Q&A
์๊ทธ๋ - ์์์์ ๋ถ๋ชจ๋ ธ๋๋ก ์ ๊ทผ
์๋ ํ์ธ์ ์์ฃผ ๋ ์นด๋กญ๊ฒ ์ง์ ํด์ฃผ์ จ๋ค์!!์ธ๊ธํ์ ์๋ฌธ์ ์ด ๋ง๋ ๋ง์์ด์๊ณ ,๋์ ์น์ ์์๋ ์ต๋ํ ์๊ทธ๋์ ๊ฐ๋จํ๊ฒ ์๊ฐํ๊ณ ์ 1๊ฐ๋ง ๋ฌ๋ ์ธ๊ธํ๋ค๋ณด๋ํผ๋์ด ์๊ธฐ์ ๊ฒ ๊ฐ์ต๋๋ค.๋ค์ด์ด ์๊ฐํ์๋ฉด์์ ์ชฝ ์๊ทธ๋์ ๋ฐ๋์์ผ ๋ถ๋ชจ์ ํจ์๋ฅผ ํธ์ถํ๊ธฐ๋ ํ๊ณ ,๋ ๋ฆฝ์ ์ธ ์ฌ๋ผ๋ฆฌ ์๊ทธ๋๋ก ์ฐ๊ฒฐํ๋ ๋ฑ๋ค์ํ ์ฌ์ฉ๋ก๊ฐ ๋ฑ์ฅํฉ๋๋ค. "์์ ๋ ธ๋์ชฝ์์ ๋ถ๋ชจ ๋ ธ๋ ์ชฝ์ ์ ๊ทผํ ๋ ์๊ทธ๋์ ์ฌ์ฉํ๋ผ"๋ ๋ง๋ ๋ง์ด์ง๋ง,"์์ ๋ ธ๋์ชฝ์์ ๋ถ๋ชจ ๋ ธ๋ ์ชฝ์ผ๋ก ์ง์ ์ ๊ทผ(์ฐธ์กฐ)ํ์ง ๋ง๋ผ"์ ๋๋์ผ๋ก ๊ฐ์กฐ๋ฅผ ํด๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค!
- 0
- 2
- 111
Q&A
์น์ 2 ๊ท์น์ ํ์์ฑ ๋ถ๋ถ์์ Godot 4 Function Chaining ์ด๋?
get_tree().root๊ณผ get_tree().get_root()์ ๊ฒฐ๊ณผ๋ ์ ํํ ๋์ผํฉ๋๋ค.์ ์๋ root ํ๋กํผํฐ์ ์ง์ ์ ๊ทผํ๋ ๋ฐฉ์์ด๊ณ , ํ์๋ getter๋ผ๋ ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ ์ฐจ์ด์ ๋๋ค. ์ ๋ํฐ C#์์๋ ์ ๊ทผ ์ ํ์(public, private)๋ผ๋ ๊ฐ๋ ์ด ์์ด์private ๋ณ์์ ๋ํด์๋ ์ธ๋ถ์์ ๋ณ์(root)๋ก์ ์ ๊ทผ์ด ์ ์(.root)๋ก๋ ๋ถ๊ฐ๋ฅํ๊ณ , ํ์(get_root())๋ก๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค๋ ์ ์์ ์๋ฏธ์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ GDscript๋ ํ์ด์ฌ์ ๋ง์ด ๋ฒ ๊ปด์จ ์ธ์ด์ธ๋ฐ, ํ์ด์ฌ์ ๋ชจ๋ ๋ณ์๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก public์ด์ด์์ ์ ํ์์ ์ ์๋ฏธํ ์ฐจ์ด๊ฐ ์๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. ์ ๋ ์ฐจ์ด์ ์ด function chaining์ ๋ ๋ฐ์๋ ์๋ ์ค๋ฅด๋ค์. ๊ฐ์์์ var c = get_tree().get_root().get_node("Grandparent/Parent1/Child1") ํ์ค์ ์ฝ๋๋์์ปจ๋ ์๋ ์ธ ์ค์ ์ฝ๋์ ๋์ผํ ์ฝ๋์ ๋๋ค.var my_scene_tree = get_tree()var my_window = my_scene_tree.get_root()var c = my_window.get_node("Grandparent/Parent1/Child1")๋ฑ๋ด๋ ํ์ค๋ก ์ฐ๋๊ฒ ์ ์ฝํ๊ณ ํธํด ๋ณด์ ๋๋ค..^^function(๋ฉ์๋) chaining(์ด์ด๋ถ์ด๊ธฐ)์ ๊ฐ๊ฒฐํ๊ณ ๋์ ๋๋ ์ฝ๋๋ฅผ ์ธ ์ ์๊ฒ๋ ์ฐ๋ ๋ฐฉ๋ฒ์ด๊ณ ํ์ด์ฌ์์ ๊ฐ๋ฅํ ๊ฑด๋ฐ ์ด๊ฑธ GDscript๊ฐ ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค.๋ฉ์๋(ํจ์)๋ ํ๋กํผํฐ์ ๋ฌ๋ฆฌ ๋ฌด์กฐ๊ฑด ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ด ์กด์ฌ(๊ทธ๊ฒ์ด 0๊ฐ์ผ์ง๋ผ๋)ํ๋ค๋ ๊ฐ๋ ์ ์ ๋ ํ์ ์ผ ํฉ๋๋ค.๊ทธ๋์ ์ถ๋ ฅ(return)์ด ์๊ธฐ ๋๋ฌธ์ ๊ทธ ์ถ๋ ฅ์ ๋ค๋ฅธ ๋ฉ์๋.() ์ ์ด์ด๋ถ์ด๊ณ ๊ทธ ์ถ๋ ฅ์ ๋ค๋ฅธ ๋ฉ์๋.()์ ์ด์ด๋ถ์ด๊ณ ํ๋ ๊ฒ์ ๋๋ค.ํ๋กํผํฐ ์์ฒด๋ฅผ ๊ฐ์ง๊ณ ๋ function chaining์ ํ ์ ์์ต๋๋ค. ๊ด๋ จ ๊ฐ๋ ์ธ setter ํจ์๋ ์น์ 4 '๋ฌธ์ 1' ์์์์ ๊ฐ๋จํ ๋ค๋ฃจ์์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค!
- 0
- 2
- 119
Q&A
์จ์ด๋ธ ํธ๋ค๋ฌ ์น์ ์์ Custom Resource
๋ค ๋ง์ต๋๋ค ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ์ ๊ธฐ๋ฅ์ ์ผ๋ก๋ ๊ฑฐ์ ๊ฐ๋ค๊ณ ๋ณด์๋ฉด ๋๊ณ ๊ฐ์ธ์ ์ผ๋ก๋ ๊ณ ๋์ custom resource๊ฐ ํจ์ฌ ๋ ํธ๋ฆฌํ๊ณ ๊ฐ๋ ฅํ๋ค๊ณ ๋๋ผ๊ณ ์์ต๋๋ค๋ค๊ฐ์ค๋ ์ ๋ฐ์ดํธ์ custom resource๋ฅผ ์ด์ฉํ ์ ์ฅ๊ณผ ๋ก๋ ๊ตฌํํ๋ ์ปจํ ์ธ ๋ฅผ ๋ด์ ์์ ์ ๋๋ค๊ฐ์ฌํฉ๋๋ค!
- 0
- 2
- 104
Q&A
ObjectHandler ์์
(์ฌ์ง)obj.rotation = Vector2.RIGHT.angle_to(dir) ์ค์ ์ญ์ ํด๋ณด๊ณ (=์ฃผ์ ์ฒ๋ฆฌํ๊ณ ) ์ ์ฒด ๊ฒ์์ ์คํํด๋ณด๋ฉด(์ฌ์ง)๋ก์ผ๋ค์ด ํ๋ ์ด์ด ์ฐ์ฃผ์ ๋ฐฉํฅ(dir)์ ๊ด๊ณ์์ด ํญ์ ์ค๋ฅธ์ชฝ(obj.rotation = Vector2.RIGHT)์ ๋ฐ๋ผ๋ณธ ์ฑ๋ก ๋ ์๊ฐ๊ฒ ๋ฉ๋๋ค.๊ทธ๋์ ๋ฏธ์ฌ์ผ์ ๋ฐฉํฅ์ ๊บพ์ด์ฃผ๊ธฐ ์ํด obj.rotation = Vector2.RIGHT.angle_to(dir) ์ ํด์ฃผ์ด์ผ ํ๋ ๊ฒ์ ๋๋ค(๋๋จธ์ง ๋ฌด๊ธฐ 2์ข ์ ๊ณต๋ชจ์์ด์ด์ ํ์ ์ด ์๋ฏธ๊ฐ ์๊ธฐ๋ ํฉ๋๋ค)์กฐ๊ธ ๋ ๋ณด์ถฉ ์ค๋ช ํ์๋ฉดdir์ ํ๋ ์ด์ด ์ฐ์ฃผ์ ์ด ๋ฐ๋ผ๋ณด๋ ๋ฐฉํฅ์ ๊ฐ๋ฆฌํค๋ ๊ฒ์ด๋ฉฐ(์ฌ์ง)player.gd์ fire_rocketํจ์์์ ์ฐพ์ ์ ์์ต๋๋ค. (ํ๋ ๋ฐ์ค ๋ถ๋ถ์ dir๋ก emitํ๋ ๊ฒ)(์ฌ์ง)๋ฏธ์ฌ์ผ์ rotation์ ํ๋์ ํ์ดํ(dir)๋งํผ ํ์ ํด์ค ํ์๊ฐ ์๋ ๊ฒ์ ๋๋ค. ์ฝ๋๋ฅผ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๊ฑฐ๋ ๋๋ฒ๊น ํ ๋ '์ปจํธ๋กค+ํจ์ํด๋ฆญ'์ด๋ '์ปจํธ๋กค+์ฌํํธ+F'๋ก ๊ฒ์ํ๋ ๊ธฐ๋ฅ์ด ์ ์ฉํฉ๋๋ค. ์ดํด์๊ฐ์๋ ๋ถ๋ถ ์ง๋ฌธ ๋ง์ด ์ฃผ์ธ์๊ฐ์ฌํฉ๋๋ค!
- 1
- 1
- 116