Game AI & Unity/Java Steering game

[Game AI][Steering Behavior] 13. engine.Obstacle

bay07 2024. 3. 20. 14:25

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;
    }
    
        
}