1. 전체적인 구조
src > engine > Obstacle

2. Obstacle 클래스
게임에서 장애물을 표현하는 데사용됨
생성자는 장애물의 위치와 크기, 색상을 받아 해당 속성을 설정한다.
3. 변수
| double m_width | 장애물의 너비 |
| double m_height | 장애물의 높이 |
| Color m_color | 장애물의 색상 |
| RotatedRectangle m_collision_box | 장애물의 충돌박스 |
4. 메서드
| public Obstacle(double x, double y, double width, double height, Color c) | 생성자 매서드 장애물의 초기 상태 |
| public void update(Game game, double delta_t) | 게임 업데이트 처리 (장애물의 움직임에 관련) |
| public void draw(Graphics2D g) | 장애물을 화면에 그림 지정된 위치와 크기에 따라 사각형 모양의 장애물을 그린다 |
| public RotatedRectangle getCollisionBox() | 장애물의 충돌 박스를 반환 충돌 감지에 사용됨 |
- 전체 코드
더보기
package engine;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
/**
*
* @author santi
*/
public class Obstacle extends GameObject {
double m_width, m_height;
Color m_color;
RotatedRectangle m_collision_box;
public Obstacle(double x, double y, double width, double height, Color c) {
m_x = x+width/2;
m_y = y+height/2;
m_width = width;
m_height = height;
m_color = c;
m_collision_box = new RotatedRectangle(m_x, m_y, m_width/2, m_height/2, 0);
}
public void update(Game game, double delta_t) {
}
public void draw(Graphics2D g) {
g.setColor(m_color);
g.fillRect((int)(m_x-m_width/2), (int)(m_y-m_height/2), (int)m_width, (int)m_height);
}
public RotatedRectangle getCollisionBox() {
return m_collision_box;
}
}
'Game AI & Unity > Java Steering game' 카테고리의 다른 글
| [Game AI][Steering Behavior] 15 KeyboardExample.java (0) | 2024.03.20 |
|---|---|
| [Game AI][Steering Behavior] 14 engine.RotatedRectangle (0) | 2024.03.20 |
| [Game AI][Steering Behavior] 12. 렌더링 (Rendering) (0) | 2024.03.20 |
| [Game AI][Steering Behavior] 11. 원 모양의 마커 (0) | 2024.03.20 |
| [Game AI][Steering Behavior] 10. engine.Marker (0) | 2024.03.20 |