Hey, I am having some issues with my code. I want to make an enemy shoot me but I should still be able to dodge the bullet. Until now the bullet will follow me and I have no possibility to escape the bullet. Please help me!
Enemy.class:
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Anemy here. * * @author (your name) * @version (a version number or a date) */ public class Enemy extends UnterActor { public int LebensCounterEnemy; int spawnDieEnemyBullet = 250; public Enemy(){ LebensCounterEnemy=0; } /** * Act - do whatever the Enemy wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { shoot(); zählLebenEnemy(); aim(); } private void shoot(){ if (spawnDieEnemyBullet==0){ getWorld().addObject(new EnemyBullet(), 50, 500); setRotation(this.getRotation()); spawnDieEnemyBullet=300; } if (spawnDieEnemyBullet>0){ spawnDieEnemyBullet=spawnDieEnemyBullet-1; } } public void zählLebenEnemy(){ if(isTouching(Bullet.class)){ LebensCounterEnemy=LebensCounterEnemy+1; removeTouching(Bullet.class); } if(LebensCounterEnemy==1){ } if(LebensCounterEnemy==2){ } if(LebensCounterEnemy==3){ getWorld().addObject((new WinScreen()), getWorld().getHeight()/2, getWorld().getWidth()/2); Greenfoot.stop(); } } public void aim() { PlayerOne playerOne = (PlayerOne)getWorld().getObjects(PlayerOne.class).get(0); turnTowards(playerOne.getX(), playerOne.getY()); } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class AnemyBullet here. * * @author (your name) * @version (a version number or a date) */ public class EnemyBullet extends UnterActor { /** * Act - do whatever the AnemyBullet wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { aim(); move(2); } public void aim() { PlayerOne playerOne = (PlayerOne)getWorld().getObjects(PlayerOne.class).get(0); turnTowards(playerOne.getX(), playerOne.getY()); } }
Actor bullet = new EnemyBullet(); getWorld().addObject(bullet, 50, 500); bullet.setRotation(getRotation());
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Bullet here. * * @author (your name) * @version (a version number or a date) */ public class Bullet extends UnterActor { /** * Act - do whatever the Bullet wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { direction(); removeBullet(); } public void direction(){ turnTowards(Greenfoot.getMouseInfo().getX(), Greenfoot.getMouseInfo().getY()); move(20); } private void removeBullet(){ if(isTouching(Wall.class)){ getWorld().removeObject(this); } } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class PlayerOne here. * * @author (your name) * @version (a version number or a date) */ public class PlayerOne extends UnterActor { public int LebensCounter; public PlayerOne(){ LebensCounter=0; } /** * Act - do whatever the PlayerOne wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { zählLeben(); stoppe(); move(); collisionEnemyBullet(); shoot(); } public void move(){ if(Greenfoot.isKeyDown("W")){ move(2); setRotation(270); } if(Greenfoot.isKeyDown("D")){ move(2); setRotation(0); } if(Greenfoot.isKeyDown("A")){ move(2); setRotation(180); } if(Greenfoot.isKeyDown("S")){ move(2); setRotation(90); } if(Greenfoot.mouseClicked(null)){ getWorld().addObject((new Bullet()), getX(), getY()); } } public void stoppe(){ if(isTouching(Wall.class)){ move(-4); } } private void zählLeben(){ if(isTouching(EnemyBullet.class)){ LebensCounter=LebensCounter+1; removeTouching(EnemyBullet.class); } if(LebensCounter==1){ getWorld().addObject((new Leben23()),83,60); } if(LebensCounter==2){ getWorld().addObject((new Leben13()),83,60); } if(LebensCounter==3){ getWorld().addObject((new Leben03()),83,60); getWorld().addObject((new GameOverScreen()), getWorld().getHeight()/2, getWorld().getWidth()/2); Greenfoot.stop(); } } private void shoot(){ } }
if(Greenfoot.mouseClicked(null)){ getWorld().addObject((new Bullet()), getX(), getY()); setRotation(Greenfoot.getMouseInfo().getX(), Greenfoot.getMouseInfo().getY()); }