Game AI & Unity/Java Steering game 36

[Game AI][Steering Behavior] 5. engine.Car.java

2. 생성자 public Car(String graphicsFileName, double x, double y, double alpha, Controller c) throws Exception { m_img = ImageIO.read(new File(graphicsFileName)); m_x = x; m_y = y; m_alpha = alpha; m_controller = c; m_collision_box = new RotatedRectangle(m_x, m_y, m_img.getWidth()/2, m_img.getHeight()/2, m_alpha); } Car 클래스의 생성자 그래픽 파일의 경로, 초기 위치(x, y), 초기 회전 각도(alpha), 컨트롤러 객체를 매개변수로 받는다 ImageIO.r..

[Game AI][Steering Behavior] 4. engine.Car.java

1. 대략적인 그림 살펴보기 일단 폴더를 보면 src > engine > Car.java 파일이다. 2. package와 class 살펴보기 package engine; import controllers.Controller; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; package engine; 현재 파일은 engine 패키지에 속한다 import controllers.Controller; 게임 객체를 제어하기 위한 인터페이스 제공 (위에서 만든 파일) import java.awt.Graphics2D; 그래픽 객체를 그리는데 사용되는 클래스 ..

[Game AI][Steering Behavior] 3. controllers

src 폴더 controllers Controller 자동차의 방향, 속도, 브레이크를 조절할 수 있도록 하고 있다. 각각 변수를 만든 뒤에 숫자값을 하나씩 주고 있다. VARIABLE_STEERING = 0; VARIABLE_THROTTLE = 1; VARIABLE_BRAKE = 2; EmptyController EmptyController는 Controller의 상속을 받고 있는데, controlVariables[] 라는 배열을 새로 만들었다. 그리고 controlVariables [VARIABLE_STEERING] = 0; controlVariables[VARIABLE_THROTTLE] = 0; controlVariables[VARIABLE_BRAKE] = 0; KeyboardController 찐..

[Game AI][Steering Behavior] 2. 대략적인 그림 살펴보기

JRE System Library 이 프로그램을 실행하는데 필요한 함수와 라이브러리들이 들어있다. 엄청 많다 src 폴더 > controllers controller에는 키보드 이벤트를 처리하기 위한 코드들이 들어있다. ↑ 를 누르면 앞으로 가고, ↓를 누르면 break (사실 뒤로 가는 거지만 ←를 누르면 왼쪽으로 →를 누르면 오른쪽으로 가도록 처리가 되어있다. src 폴더 > engine engine에서는 게임 창을 그리는 코드가 있다. 게임 오브젝트를 불러와서 표현하고, 자동차의 움직이는 위치를 좌표값으로 나타낸다 또, 자동차가 충돌했을 때, 어떤 이벤트가 발생할지 처리할 수 있다. src 폴더 > test 게임 배경, 자동차, 충돌, 키보드 이벤트 등등을 미리 만들어두고 필요할 때마다 하나씩 불러..

[Game AI][Steering Behavior] 1. 코드 실행해보기

1. 창이 잘 설정되었는지 테스트해보기 test.KeyboardExample 파일을 실행해보면 된다. package test; import controllers.KeyboardController; import engine.Car; import engine.Game; import engine.GameWindow; import engine.Obstacle; import java.awt.Color; /** * * @author santi */ public class KeyboardExample { public static void main(String args[]) throws Exception { Game game = new Game(800,600, 25); game.add(new Car("graphics/..

[Game AI][Steering Behavior] 0. 스켈레톤 코드 익히기

1. 목표 컴퓨터 게임에서 일반적으로 사용되는 steering 동작 구현하는 법 익히기 자동차, 오토바이, 우주선 등을 제어하는 게임에서 자주 사용된다. * steering : 조종 2. 기술 Java로 작성된 게임엔진을 사용하여 작업한다. 2차원 평면에서 움직이는 자동차를 시뮬레이션 한다. 3. 스켈레톤 코드 (오픈소스) 4. 설명 이 게임에는 여러개의 벽과 2대의 자동차가 포함된 시나리오가 있다. 목표는 steering 동작을 사용하여, 일부 자동차가 특정 방식으로 작동하도록 컨트롤러를 만드는 것이다. 각 자동차는 일반 자동차와 마찬가지로 steer, throttle, brake를 사용할 수 있다. * steer 조종, throttle 가속, 악셀, brake 브레이크