Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (757)
Games in Android Showcase (229)
games submitted by our members
Games in WIP (844)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Need better way to handle movement in 2D plane  (Read 1286 times)
0 Members and 1 Guest are viewing this topic.
Offline Shakedown

Junior Newbie

« Posted 2008-02-22 07:20:34 »

Currently I'm trying to work on movement AI for enemy Spaceships.  Simple stuff, just left, right, up, down movement.  I've implemented player movement by doing the simple move() function like this:

public void move(Direction dir) {
         case NORTH:
            if((coordinate.getY() - y_speed) >= 0){
               // Set the sprite to the appropriate frame
               sprite = SpriteStore.getStore().getSprite(SHIP_PLAYER_UP);
               // Move the ship
         case SOUTH:
            if((coordinate.getY() + y_speed + sprite.getHeight()) <= BACKGROUND_HEIGHT){
               // Set the sprite to the appropriate frame
               sprite = SpriteStore.getStore().getSprite(SHIP_PLAYER);
               // Move the ship
         case EAST:
            if((coordinate.getX() + x_speed + sprite.getWidth()) <= BACKGROUND_WIDTH)
         case WEST:
            if((coordinate.getX() - x_speed) >= 0)

Sure, it might be a bad way to do something like this, and I'm quickly coming to this realization (I knew sooner or later I'd need something more versatile).  <tt>coordinate</tt> is just a Point(x, y).

My problem is that I'm having trouble using this method of movement to allow the AI to move the ship.  I've thought of dealing with vertical and horizontal motion separately using simple methods like this one, but I'd rather take the time to implement a whole new movement system that I know will allow for versatility down the road.

I'm aware of basic kinematics, and I'm currently browsing through an AI book that uses "correct" physics to simulate movement.  By this I mean using variables such as mass, acceleration, velocity, force applied, etc.  I'm also interested in implementing in 2D Vectors to handle magnitude and direction.  I imagine this wouldn't be too difficult since I'm already using Coordinates (Points).

Currently, my Ships only have an x_speed and a y_speed which is added (either as a positive or negative value) to their position to control their movement.

So my questions are:
 - If I were to use physics (F=ma, v, t, etc.), what variables would I need to store in my Ships?  How would the movements methods use these variables?
 - Would this allow for easier control by the AI?
 - If I didn't care about applying different forces, or about acceleration (if I just wanted the Ships to move at a constant velocity), would it be possible to just declare these variables constant somewhere and not worry about them?

To clarify my last question: currently I just move the Ships by a constant value , which for my purposes is fine.  But, if add in natural kinematics, would I still be able to easily move the Ships without caring about all the details, or am I going to have a little messier time since there will be several new variables added into the equation?

As of right now, I don't need to use the detailed movement that physics would allow.  But, I could very well imagine in the future that I would want to add Ship upgrades or power-ups that do utilize the details of kinematics to vary the movement of Ships.

Hm...hope things are clear enough.  Also, keep in mind that I've ran into this problem while creating AI, so anything that AI might want to use when dealing with movement is worth mentioning.  Thanks for any help!

Pages: [1]
  ignore  |  Print  

EgonOlsen (44 views)
2018-06-10 19:43:48

EgonOlsen (24 views)
2018-06-10 19:43:44

EgonOlsen (46 views)
2018-06-10 19:43:20

DesertCoockie (200 views)
2018-05-13 18:23:11

nelsongames (126 views)
2018-04-24 18:15:36

nelsongames (125 views)
2018-04-24 18:14:32

ivj94 (866 views)
2018-03-24 14:47:39

ivj94 (127 views)
2018-03-24 14:46:31

ivj94 (770 views)
2018-03-24 14:43:53

Solater (142 views)
2018-03-17 05:04:08
Java Gaming Resources
by philfrei
2017-12-05 19:38:37

Java Gaming Resources
by philfrei
2017-12-05 19:37:39

Java Gaming Resources
by philfrei
2017-12-05 19:36:10

Java Gaming Resources
by philfrei
2017-12-05 19:33:10

List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!