Java-Gaming.org    
Featured games (78)
games approved by the League of Dukes
Games in Showcase (429)
Games in Android Showcase (89)
games submitted by our members
Games in WIP (468)
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  
  AI Implementation question  (Read 569 times)
0 Members and 1 Guest are viewing this topic.
Offline SonicSteam

Innocent Bystander





« Posted 2011-12-30 13:48:43 »

Hi, im new here so, Hi Cheesy

I have a game where im working on, but now I don't really now how I should implement a AI in this game, this is my first game so I want it to be a simple ai I read you can do this:
So lets say Monster is defined like this:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
class Monster{
private int x;
private int y;
//Add Getter and setters

//Logic and stuff

// This is the way I should do it:
if (x==10 && y==20){
 move(20,10); // Move method is defined as move(int x , int y);
}
}

Is this correct or is there a better way?

Because they also walk in straight line's and they don't here player's action(sounds)

Thanks!

*Fixed some typos and error's... Smiley
Offline roland
« Reply #1 - Posted 2011-12-30 19:48:07 »

Because they also walk in straight line's and they don't here player's action(sounds)

Do you mean you want them to walk in a straight line? or do you want them to chase the player? anyway you should read my entire post as it might give you a few ideas.
either way you are not doing it right. The way you code it, the monster will only move once, and only if they are in that exact position.

If you want to make the monster chase the player:

1  
2  
3  
4  
5  
6  
7  
if (monster.x > player.x)
    move(-1,0);
else
if (monster.x < player.x)
    move(1,0);

//do the same with y


Otherwise if you want the monster to move randomly, you could choose a random position to move to each frame/length of time
eg.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
//initialise
long lastTime = 0;
Random random = new Random();
int targetX = 0;
int targetY = 0;


//in ai processing
if (System.currentTimeMillis() - lastTime > 3000) //change target position every 3 seconds
{
       lastTime = System.currentTimeMillis();
      targetX = random.nextInt(width); //choose a random place to walk to on the screen
     targetY = random.nextInt(height);
}

if (monster.x > targetX )
    move(-1,0);
else
if (monster.x < targetX)
    move(1,0);
//again do same with y



Otherwise if you want the monster to patrol up and down the screen or something,
have 2(or more) positions and move back and forward between them

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
int[] x = new int[2];
int[] y = new int[2]; //2 x and y positions
int currentTarget = 0; // the position to go to

x[0] = 0;
y[0] = 20;
x[1] = 100;
y[1] = 30;
//will make the monster walk from (0,20) to (100,30), then back, and then there again, and back etc


if (monster.x > x[currentTarget])
    move(-1,0);
else
if (monster.x < x[currentTarget])
    move(1,0);
//do same with y yet again...


if ((monster.x == x[currentTarget]) && (monster.y == y[currentTarget]))
{
    currentTarget++;
    if (currentTarget > x.length)
       currentTarget = 0;
}
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

theagentd (6 views)
2014-04-24 23:00:44

xsi3rr4x (83 views)
2014-04-15 18:08:23

BurntPizza (75 views)
2014-04-15 03:46:01

UprightPath (86 views)
2014-04-14 17:39:50

UprightPath (69 views)
2014-04-14 17:35:47

Porlus (86 views)
2014-04-14 15:48:38

tom_mai78101 (109 views)
2014-04-10 04:04:31

BurntPizza (169 views)
2014-04-08 23:06:04

tom_mai78101 (265 views)
2014-04-05 13:34:39

trollwarrior1 (217 views)
2014-04-04 12:06:45
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org 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‑gaming.org
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!