ik krijg een foutmelding als ik de kat naar rechts wil laten draaien met de pijltjes toetsen.
ik heb dit staan
public void act()
{
if (canSeeMouse()) {
eatMouse();
}
else {
if (Greenfoot.isKeyDown("left")) {
turnLeft();
}
if (Greenfoot.isKeyDown("right")) {
turnRight();
}
}
}
foutmelding bij kat naar rechts laten draaien met pijltjes
-
- Berichten: 4
- Lid geworden op: 01-02-2017 14:35
-
- Berichten: 2
- Lid geworden op: 01-02-2017 10:36
Op het moment krijg ik hem redelijk aan de praat alleen is als die kat naar beneden loopt in spiegelbeeld
Mijn code is:
import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
/**
* Kitty, likes mice, hates dogs!
*
*/
public class Kitty extends Animal
{
int miceEaten = 0;
public Kitty()
{
}
/**
* Do what is necessary!
*/
public void act()
{
if (Greenfoot.isKeyDown("left")) {
turnLeft();
}
if (Greenfoot.isKeyDown("right")) {
turn(90);
}
if (Greenfoot.isKeyDown("up")) {
turn(90);
}
if (Greenfoot.isKeyDown("down")) {
turn(-90);
}
if (canSeeMouse()) {
eatMouse();
}
else {
if (canMove()) {
move();
}
else {
turnLeft();
}
}
}
/**
* Return true if the Kitty can see a mouse.
*/
public boolean canSeeMouse() {
return (canSee(Mouse.class));
}
/**
* Eat the mouse the Kitty can see (if there is a mouse)
*/
public void eatMouse() {
eat(Mouse.class);
miceEaten++;
}
}
Mijn code is:
import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
/**
* Kitty, likes mice, hates dogs!
*
*/
public class Kitty extends Animal
{
int miceEaten = 0;
public Kitty()
{
}
/**
* Do what is necessary!
*/
public void act()
{
if (Greenfoot.isKeyDown("left")) {
turnLeft();
}
if (Greenfoot.isKeyDown("right")) {
turn(90);
}
if (Greenfoot.isKeyDown("up")) {
turn(90);
}
if (Greenfoot.isKeyDown("down")) {
turn(-90);
}
if (canSeeMouse()) {
eatMouse();
}
else {
if (canMove()) {
move();
}
else {
turnLeft();
}
}
}
/**
* Return true if the Kitty can see a mouse.
*/
public boolean canSeeMouse() {
return (canSee(Mouse.class));
}
/**
* Eat the mouse the Kitty can see (if there is a mouse)
*/
public void eatMouse() {
eat(Mouse.class);
miceEaten++;
}
}
-
- Berichten: 4
- Lid geworden op: 01-02-2017 14:35
dit is hem volgens mij helemaal
import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
/**
* Kitty, likes mice, hates dogs!
*
*/
public class Kitty extends Animal
{
int miceEaten = 0;
public Kitty()
{
}
/**
* Do what is necessary!
*/
public void act()
{
if (Greenfoot.isKeyDown("left")) {
turnLeft();
}
if (Greenfoot.isKeyDown("right")) {
turn(90);
}
if (Greenfoot.isKeyDown("up")) {
turn(180);
}
if (Greenfoot.isKeyDown("down")) {
turn(-180);
}
if (canSeeMouse()) {
eatMouse();
}
else {
if (canMove()) {
move();
}
else {
turnLeft();
}
}
}
/**
* Return true if the Kitty can see a mouse.
*/
public boolean canSeeMouse() {
return (canSee(Mouse.class));
}
/**
* Eat the mouse the Kitty can see (if there is a mouse)
*/
public void eatMouse() {
eat(Mouse.class);
miceEaten++;
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
/**
* Kitty, likes mice, hates dogs!
*
*/
public class Kitty extends Animal
{
int miceEaten = 0;
public Kitty()
{
}
/**
* Do what is necessary!
*/
public void act()
{
if (Greenfoot.isKeyDown("left")) {
turnLeft();
}
if (Greenfoot.isKeyDown("right")) {
turn(90);
}
if (Greenfoot.isKeyDown("up")) {
turn(180);
}
if (Greenfoot.isKeyDown("down")) {
turn(-180);
}
if (canSeeMouse()) {
eatMouse();
}
else {
if (canMove()) {
move();
}
else {
turnLeft();
}
}
}
/**
* Return true if the Kitty can see a mouse.
*/
public boolean canSeeMouse() {
return (canSee(Mouse.class));
}
/**
* Eat the mouse the Kitty can see (if there is a mouse)
*/
public void eatMouse() {
eat(Mouse.class);
miceEaten++;
}
}
-
- Site Admin
- Berichten: 39
- Lid geworden op: 01-02-2017 08:45
Mooiere oplossing
De oplossing met turn (graden) is mooi, maar dat turnRight niet werkt komt omdat dit in de klasse ANIMAL niet gedefinieerd is. Open de klasse animal maar eens en je ziet onderaan de code voor turnLeft.
Je ziet dat gewerkt wordt met windstreken.
Kopieer de hele void van turnLeft en dan daaronder plakken. Da verander je de 4 windstreken als volgt:
public void turnRight()
{
switch(this.getRotation()) {
case SOUTH :
setRotation(WEST);
break;
case EAST :
setRotation(SOUTH);
break;
case NORTH :
setRotation(EAST);
break;
case WEST :
setRotation(NORTH);
break;
default :
break;
}
}
Na compilen zul je zien dat de turnRight het nu wel doet.
JOR
Je ziet dat gewerkt wordt met windstreken.
Kopieer de hele void van turnLeft en dan daaronder plakken. Da verander je de 4 windstreken als volgt:
public void turnRight()
{
switch(this.getRotation()) {
case SOUTH :
setRotation(WEST);
break;
case EAST :
setRotation(SOUTH);
break;
case NORTH :
setRotation(EAST);
break;
case WEST :
setRotation(NORTH);
break;
default :
break;
}
}
Na compilen zul je zien dat de turnRight het nu wel doet.
JOR