This site requires JavaScript, please enable it in your browser!
Greenfoot back
strangers1412
strangers1412 wrote ...

2013/10/31

How to make an actor continuously moving back and forth horizontally?

1
2
danpost danpost

2014/11/30

#
@Mickey09, what behavior exactly do you want your actor to have? What is it supposed to do while it exists in your game?
Mickey09 Mickey09

2014/11/30

#
Essentially, I am attempting to create an algorithm that adds one each time to the variable a, and change direction back and forth from "east" to "west".
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Public class Player extends Actor
{
    private int a = 1;
     
    /**
     * Act - do whatever the Player wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
   public void act()
   {
        add();
        TouchingTreasure();
   }
      public void TouchingTreasure()
   {  
        Actor treasure = getOneObjectAtOffset(0, 0, Treasure.class);
        if (treasure !=null)
        {
            System.out.println("Good Job!, You found the treasure!");
            Greenfoot.stop();
     
        }
   }
   public void setDirection()
   {
       if (a==1)
        { DirectionEast();
        }
        else
        { DirectionWest();
        }
    }
   public void add()
   {
       setDirection();
       move(a);
       a = a+1;
 
   }
   public void DirectionEast()
   {
       setRotation(0);
   }
   public void DirectionWest()
   {
       setRotation(180);
   }
}
I am "looking" for the treasure and I am timing how long each algorithm takes to find the treasure. So one algorithm adds one each time it moves, then the second one doubles each time it moves.
Mickey09 Mickey09

2014/11/30

#
danpost wrote...
@Mickey09, what behavior exactly do you want your actor to have? What is it supposed to do while it exists in your game?
To put it simply, I suppose. I want to move (1); setRotation(0); move (2); setRotation(180); move (3); setRotation; move(1); setRotation (0); move (2); setRotation(180); move (4); setRotation(0); etc.
danpost danpost

2014/11/30

#
Mickey09 wrote...
danpost wrote...
@Mickey09, what behavior exactly do you want your actor to have? What is it supposed to do while it exists in your game?
To put it simply, I suppose. I want to move (1); setRotation(0); move (2); setRotation(180); move (3); setRotation; move(1); setRotation (0); move (2); setRotation(180); move (4); setRotation(0); etc.
So... you do want your actor to jump back and forth with increasing distances. Look at what you will be doing each act cycle. Increment the distance, move that distance and turn around. You only need one distance field and an act method that does just that.
You need to login to post a reply.
1
2