Game AI & Unity/Java Steering game 36

[Game AI][Steering Behavior] Task_Wall Avoidance (Problem)

Task 3, Wall Avoidance locate the class test.WallAvoidanceSeekScenario. This time you need to do a Seek controller, but that also includes wall avoidance (as seen in class). The goal is to make the blue car "seek" the red car, but without bumping into walls. - 원래 코드 # WallAvoidanceSeekScenario.java package test; import controllers.EmptyController; import controllers.KeyboardController; import en..

[Game AI][Steering Behavior] Task_Arrive (controllers.ArriveController)

얘는 파일 자체가 없기 때문에, 새로 만들어주어야한다. 앞에 만들었던 Controller 코드를 참고해서 만들면 된다. package controllers; import engine.Car; import engine.Game; import engine.GameObject; import java.awt.Color; 먼저, 필요한 패키지와 클래스들을 가져온다 public class ArriveController extends Controller { private GameObject target; public ArriveController(GameObject target) { this.target = target; } } Controller에 있는 내용들을 상속을 해서 그대로 받아주고, 그 안에 ArriveC..

[Game AI][Steering Behavior] Task_Arrive (test.ArriveScenario)

// Original package test; import controllers.EmptyController; import controllers.KeyboardController; import engine.Car; import engine.Game; // modify package test; import controllers.ArriveController; import engine.Car; import engine.Game; 나머지 import는 다 똑같은데, ArriveController를 넣어주었다. 그리고 EmptyController랑 KeyboardController는 필요 없으니까 빼주었다. // Original GameObject car1 = new Car("graphics/redcar.png..

[Game AI][Steering Behavior] Task_Arrive (Problem)

Task 2, Arrive locate the class test.ArriveScenario. If you run it, you will see one car and a green dot. Your task is to create a new controller (create a class "controllers.ArriveController") that receives a GameObject, "target", in the constructor, and that controls the car to "Arrive" to the "target" using the "Arrive" steering behavior. Apply this controller to "car1". 빨간 자동차를 움직여서 target인 ..

[Game AI][Steering Behavior] 19. Task_Seek

( 영상 ) 이렇게 계산을 해보았을 때, red car가 blue car을 어느 정도 좇아갈 수 있게 만들었다. 그런데, 문제는 자동차가 처음 닿고 난 후 그 자리에서 멈추는 것이 아니라 물체 주위를 빙글빙글 돈다는 것이다. 처음에는 목표 지점을 잘못 설정했나? 생각을 해보았는데 그건 아닌 거 같고.. 아마 break를 걸지 않아서 그런게 아닐까 싶다.

[Game AI][Steering Behavior] 18. Task_Seek (controllers.SeekController)

controllers.SeekController 먼저 빈 파일 하나 만들어줬다. 이름은 SeekController.java 로 만들어주면 된다 그리고 안에 Controller.java에 있던 내용을 가져올 것이다. - Controller에 있던 코드 package controllers; import engine.Car; import engine.Game; /** * * @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..

[Game AI][Steering Behavior] 17. Task_Seek (test.SeekScenario )

test.SeekScenario - 수정해야할 부분 GameObject car2 = new Car("graphics/bluecar.png",600,300,-Math.PI/2, new EmptyController()); GameObject car2 = new Car("graphics/bluecar.png", 600, 300, -Math.PI / 2, new SeekController(car1)); 위에 있는 코드를 아래처럼 바꾸면 된다. EmptyController() 대신 우리가 만든 SeekController(car1)을 추가해주는 것이다. 여기서 car1은 car2가 추적해야되는 대상을 나타낸다. SeekController는 이 정보를 사용해서 car2가 car1을 추적하도록 만들 수 있다. (해당 ..

[Game AI][Steering Behavior] 16. Task _Seek (Problem)

Task 1, Seek test.SeekScenario를 찾아서 실행해보라. 2대의 자동차가 나온다. 1대는 키보드로 제어할 수 있지만, 다른 1대는 아무것도 하지 않는다. 일단, 새로운 컨트롤러를 만들어라. (controllers.SeekController) 그리고 여기서 GameObject와 target을 받아라. 그리고 그 Seek이 target을 계속 쫓게 만들어라. "Seek" steering behavior을 사용해라 이 controller를 car2 (blue)에 적용해라 . package test; import controllers.EmptyController; import controllers.KeyboardController; import engine.Car; import engine...