목록일상/개발일상 (36)
[게임개발자] 레드핑
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ql096/btsx1RqfZbo/Mtp5mhcU974AUyKjhcW1d1/img.png)
이전 포스팅 https://allggame.tistory.com/24 Godot Attack 만드는법 https://www.youtube.com/watch?v=74y6zWZfQKk&t=1s&ab_channel=Bitlytic 상속보다 Component 를 제작해서 재사용성 높이기 와... 이강의를 보고 드디어 SOLID 원칙의 S 를 깨닫게 되었다. 왜 굳이 Single Responsibility 를 해야 allggame.tistory.com 에서 영상을 보아하니 , Attack.gd 가 필요했다. 참고자료는 https://www.youtube.com/watch?v=y3faMdIb2II&ab_channel=Bitlytic 영상에서 참고할 수 있다. 코드는 2줄로 줄여보았다. Godot docs 에 찾아보..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/NdTdg/btsx2rLwH4d/qkM7FLjZw7X1Ts9mRKw92k/img.png)
https://www.youtube.com/watch?v=74y6zWZfQKk&t=1s&ab_channel=Bitlytic 상속보다 Component 를 제작해서 재사용성 높이기 와... 이강의를 보고 드디어 SOLID 원칙의 S 를 깨닫게 되었다. 왜 굳이 Single Responsibility 를 해야 재사용성이 높아지는지 깨달았다. (한클래스에 공통기능들을 여러개 묶어서 상속으로 만들면, 원하지 않는 기능을 있을때 재사용이 불편한데, 원하지 않는 기능을 추가하지 않아도 되는 부분을 해결하기 위해 각 기능별로 , 각각의 Component 를 만들어준다는 이야기인데, 이렇게 함으로서 원하는 기능만 공통적으로 뽑아서 사용할 수 있게 된다.) 정말 직관적이게 설명을 잘하였다. 사진의 경우처럼 Tree 오브..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kw1Cr/btsxrky8UeB/PeelH1vwz6Av51kX14CKu1/img.png)
TImer 를 통해서 쿨타임을 만들어주어 player 를 쫓아가게 만들었다. 주의점은 Start 이후에는 특정 (본인이 원하는 )시점에서 Stop을 해주는게 좋다. 본인은 5초간 쫓고 3초간 멈추는 방법을 선택했다.
Collision Layer 과 Coliision Mask 의 차이 Layer 는 존재를 의의 Mask 는 충돌판정 의의 Layer 는 해당 layer 가 어디에 존재하는지 설정하는것 Player.Collsion.Layer =1 이면, Player 가 1에 존재한다. Mask 는 실질적으로 충돌이 발생하는 층 Player.Collision.Mask 가 2에 존재한다면. Player 는 1에 존재하지만 2의 존재들과 충돌한다는 뜻
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b4zKlZ/btsw7vujBtx/wmNV5PLTpYTi4eJMStF9j0/img.png)
1. Area 2D -2. AniamtedSprite 2D -3 .CollisionShape2D 1. 영역 2. 애니메이션 3. 충돌모양 라는 방법도있는데... Docs 를 살펴보니 또다른 방법이 있었다. 이런식으로 ChracterBody2D 자체를 사용하는 방법이다. extends CharacterBody2D 를 하게되면 내장된 velocity 와 move_and_slide() 함수를 통해 코드량을 상당히 줄일수있다. 콜리전 shape를 추가해주고, 형태는 Rectangle 인 사각형으로해준다. 요롷고롬 크기도 수정.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/etQeMC/btsw6ZvDole/8uXXW3AnnJlXF1ij2860d1/img.png)
Godot Player를 만들때 Node 나 Sprite 를 바로 선택하는것이 아닌 Area 2D 를 추가 Why? Area 2D 는 Collision object 가 들어왔다 나갔다를 체크할수잇는 영역 노드입니다. Player 를 만들때 충돌판정을 쉽게 하기위해 Area 2D 로 만들어준것 같다. (Godot 공식 튜토리얼) Node 란? 모든 씬들의 Base class 왜굳이 node 컨셉을 잡았냐고 궁금했는데 , 조금 찾아보니 무의식 중에서라도, tree 구조와 객체지향의 reuseable 의 개념을 강조하려했다는 생각에 Node 라는 개념을 도입한것 같다. 사진첨부 : 참고자료 :https://docs.godotengine.org/en/stable/getting_started/first_2d_ga..