Game AI & Unity/Java Steering game 36

[Game AI][Steering Behavior] 추가하고 싶은 요소들

▷ 아이디어 빨간색 차가 파란색 차를 밀어낼 수 있도록 만들면 재미있겠다 그러면 파란색 차가 벽에 부딪쳐서 움직이지 못할 때, 빨간색 차가 구해줄 수 있기 때문에 맵 디자인을 다르게 바꾸고 싶다. ▷ 현재의 문제 빨간차가 수평 방향으로 건너편에 있으면, 파란차가 이를 잘 인식하지 못하고 그냥 벽에다가 박는다는것 ?

[Game AI][Steering Behavior] Task_Wall Avoidance (controllers.Controller)

package controllers; import engine.Car; import engine.Game; import engine.Vector; /** * * @author santi */ public abstract class Controller { /* commands is an array with three components: - the desired "STEER" (-1 to +1) - the desired "THROTTLE" (0 to +1) - the deired "BRAKE" (0 to +1) */ public static final int VARIABLE_STEERING = 0; public static final int VARIABLE_THROTTLE = 1; public static..

[Game AI][Steering Behavior] Task_Wall Avoidance (engine.Vector)

engine에 새로 만들어야한다. package engine; /** * This comes directly from http://introcs.cs.princeton.edu/java/34nbody/Vector.java.html * with a few changes * @author stephencalabro */ public class Vector { public double x; public double y; // create the zero vector of length N public Vector(double _x, double _y) { x = _x; y = _y; } // return the inner product of this Vector a and b public double dot(Ve..

[Game AI][Steering Behavior] Task_Wall Avoidance (engine.Car)

public double getMaxSpeed() { return m_max_velocity; } public BufferedImage getImg() { return m_img; } 나머지 요소들은 다 같은데, 이 2가지만 더 추가해주었다. 이게 없으면 코드가 작동하지 않음 - 전체 코드 더보기 package engine; import controllers.Controller; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class Car extends GameObject { Controller m_controller; Buffe..

[Game AI][Steering Behavior] Task_Wall Avoidance (controllers.AvoidController.java)

AvoidController 자동차가 장애물을 피하도록 조작하는 컨트롤러이다. 시뮬레이션에서 자동차가 장애물을 회피하도록하는 기본적인 제어 로직 package controllers; import java.awt.KeyEventDispatcher; import java.awt.KeyboardFocusManager; import java.awt.event.KeyEvent; import engine.Car; import engine.Game; import engine.GameObject; import engine.RotatedRectangle; import engine.Vector; 먼저 필요한 패키지와 클래스를 import 해준다 package controllers; import java.awt.KeyEve..

[Game AI][Steering Behavior] Task_Wall Avoidance (test.WallAvoidanceSeekScenario.java)

GameObject car1 = new Car("graphics/redcar.png",200,300,-Math.PI/2, new KeyboardController()); GameObject car2 = new Car("graphics/bluecar.png",600,300,-Math.PI/2, new AvoidController(car1)); 이 코드는 원래랑 크게 다른 점이 없다. car2 를 생성할 때, AvoidController를 사용할 수 있도록 바꿔주었다. - 전체 코드 더보기 package test; import controllers.AvoidController; import controllers.KeyboardController; import engine.Car; import engine.G..