I got some problems with my counters. I know that some where the counters are not set to anything but I can't find it. Can someone help me? The first error i get is with the countCoins counter. I guess the other counters won't work as well. In Bob line 66 i get the first error.
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | public class Bob extends Characters { int speed = 1 ; int totalCoins = 20 ; int powerBlueEnemy = 4 ; int powerGreenEnemy = 11 ; int powerPurpleEnemy = 8 ; int powerRedEnemy = 8 ; private Counter blueEnergy; private Counter greenEnergy; private Counter redEnergy; private Counter purpleEnergy; private Counter countCoins; private BobTheSurvivor Level1; public Bob(Counter blue, Counter green, Counter red, Counter purple, Counter coins){ blueEnergy = blue; greenEnergy = green; redEnergy = red; purpleEnergy = purple; countCoins = coins; } /** * Act - do whatever the Bob wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { int oldX = getX(); int oldY = getY(); if (Greenfoot.isKeyDown( "left" )){ setLocation(getX()-speed, getY()); } if (Greenfoot.isKeyDown( "right" )){ setLocation(getX()+speed, getY()); } if (Greenfoot.isKeyDown( "up" )){ setLocation(getX(), getY()-speed); } if (Greenfoot.isKeyDown( "down" )){ setLocation(getX(), getY()+speed); } Actor block = getOneIntersectingObject(Blocks. class ); if (block != null ){ setLocation(oldX, oldY); } Actor door = getOneIntersectingObject(Door. class ); if (door != null ){ setLocation(oldX, oldY); } Actor coins = getOneIntersectingObject(Coins. class ); if (coins != null ){ countCoins.add( 1 ); //funktioniert noch nicht getWorld().removeObject(coins); } if (countCoins.getValue() >= totalCoins){ getWorld().removeObject(door); } Actor trophy = getOneIntersectingObject(Trophy. class ); if (trophy != null ){ ((BobTheSurvivor)getWorld()).nextLevel(); } Actor blueDrink = getOneIntersectingObject(BlueDrink. class ); if (blueDrink != null ){ blueEnergy.add( 1 ); //funktioniert noch nicht getWorld().removeObject(blueDrink); } Actor greenDrink = getOneIntersectingObject(GreenDrink. class ); if (greenDrink != null ){ greenEnergy.add( 1 ); //funktioniert noch nicht getWorld().removeObject(greenDrink); } Actor greenDrinkx5 = getOneIntersectingObject(GreenDrinkx5. class ); if (greenDrinkx5 != null ){ greenEnergy.add( 5 ); //funktioniert noch nicht getWorld().removeObject(greenDrinkx5); } Actor purpleDrink = getOneIntersectingObject(PurpleDrink. class ); if (purpleDrink != null ){ purpleEnergy.add( 1 ); //funktioniert noch nicht getWorld().removeObject(purpleDrink); } Actor purpleDrinkx4 = getOneIntersectingObject(PurpleDrinkx4. class ); if (purpleDrinkx4 != null ){ purpleEnergy.add( 4 ); //funktioniert noch nicht getWorld().removeObject(purpleDrinkx4); } Actor redDrink = getOneIntersectingObject(RedDrink. class ); if (redDrink != null ){ redEnergy.add( 1 ); //funktioniert noch nicht getWorld().removeObject(redDrink); } Actor blueEnemy = getOneIntersectingObject(BlueEnemy. class ); if (blueEnemy != null ){ if (blueEnergy.getValue() >= powerBlueEnemy){ //funktioniert noch nicht getWorld().removeObject(blueEnemy); blueEnergy.add(-powerBlueEnemy); //countBlueEnergy = countBlueEnergy - powerBlueEnemy; } else { die(); } } Actor greenEnemy = getOneIntersectingObject(GreenEnemy. class ); if (greenEnemy != null ){ if (greenEnergy.getValue() >= powerGreenEnemy){ //funktioniert noch nicht getWorld().removeObject(greenEnemy); greenEnergy.add(-powerGreenEnemy); //countGreenEnergy = countGreenEnergy - powerGreenEnemy; } else { die(); } } Actor purpleEnemy = getOneIntersectingObject(PurpleEnemy. class ); if (purpleEnemy != null ){ if (purpleEnergy.getValue() >= powerPurpleEnemy){ //funktioniert noch nicht getWorld().removeObject(purpleEnemy); purpleEnergy.add(-powerPurpleEnemy); //countPurpleEnergy = countPurpleEnergy - powerPurpleEnemy; } else { die(); } } Actor redEnemy = getOneIntersectingObject(RedEnemy. class ); if (redEnemy != null ){ if (redEnergy.getValue() >= powerRedEnemy){ //funktioniert noch nicht getWorld().removeObject(redEnemy); redEnergy.add(-powerRedEnemy); //countRedEnergy = countRedEnergy - powerRedEnemy; } else { die(); } } } public void die(){ ((BobTheSurvivor)getWorld()).restartThisLevel(); } } |
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | public class BobTheSurvivor extends World { public final int blockSize = 30 ; public int level = 1 ; private Counter blueEnergyCounter; private Counter greenEnergyCounter; private Counter redEnergyCounter; private Counter purpleEnergyCounter; private Counter coinsCounter; /** * 0 - NoObject * 1 - Blocks * 2 - Spawnpoint * 3 - Trophy * 4 - Door * 5 - Coins * 6 - RedDrink * 7 - GreenDrink * 8 - BlueDrink * 9 - PurpleDrink * 10 - RedEnemy * 11 - GreenEnemy * 12 - BlueEnemy * 13 - PurpleEnemy * 14 - PurpleDrinkx4 * 15 - GreenDrinkx5 */ private int [][] Level1 = { { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , }, { 1 , 7 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 10 , 0 , 9 , 9 , 9 , 9 , 1 , 0 , 5 , 5 , 1 , }, { 1 , 7 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 5 , 1 , }, { 1 , 7 , 0 , 0 , 8 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , }, { 1 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 5 , 0 , 5 , 5 , 5 , 1 , 0 , 1 , 1 , 1 , }, { 1 , 0 , 7 , 1 , 8 , 1 , 0 , 0 , 0 , 1 , 5 , 14 , 5 , 1 , 1 , 1 , 0 , 1 , 5 , 1 , }, { 1 , 7 , 7 , 1 , 8 , 1 , 0 , 0 , 0 , 1 , 5 , 5 , 5 , 1 , 0 , 0 , 0 , 1 , 7 , 1 , }, { 1 , 4 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 7 , 1 , }, { 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 12 , 1 , 0 , 0 , 7 , 1 , }, { 1 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 11 , 1 , 1 , 1 , }, { 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , }, { 1 , 0 , 0 , 0 , 0 , 3 , 1 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 0 , 1 , 1 , 1 , 0 , 1 , }, { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , }, { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 13 , 1 , 0 , 0 , 0 , 0 , 1 , 6 , 1 , }, { 1 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 1 , 0 , 1 , 5 , 1 , 0 , 0 , 1 , 1 , 1 , 6 , 1 , }, { 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 8 , 1 , 1 , 1 , 0 , 0 , 1 , 6 , 6 , 6 , 1 , }, { 1 , 0 , 0 , 0 , 1 , 5 , 0 , 5 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 6 , 6 , 6 , 1 , }, { 1 , 0 , 0 , 0 , 1 , 0 , 5 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , }, { 1 , 0 , 2 , 0 , 1 , 5 , 0 , 5 , 0 , 0 , 0 , 7 , 7 , 1 , 11 , 0 , 0 , 0 , 5 , 1 , }, { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , }, }; public BobTheSurvivor() { super ( 20 , 20 , 30 ); generateLevel(level); //Neu für Counters blueEnergyCounter = new Counter ( "Blue Energy: " ); addObject(blueEnergyCounter, 2 , 20 ); redEnergyCounter = new Counter ( "Red Energy: " ); addObject(redEnergyCounter, 12 , 20 ); greenEnergyCounter = new Counter ( "Green Energy: " ); addObject(greenEnergyCounter, 7 , 20 ); purpleEnergyCounter = new Counter ( "Purple Energy: " ); addObject(purpleEnergyCounter, 17 , 20 ); coinsCounter = new Counter ( "Coins: " ); addObject(coinsCounter, 1 , 0 ); } public void nextLevel(){ level++; changeLevel(level); generateLevel(level); } public void restartThisLevel(){ generateLevel(level); } private void generateLevel( int level){ removeObjects(getObjects( null )); for ( int i = 0 ; i < 20 ; i++){ for ( int j = 0 ; j < 20 ; j++){ int aNumber = Level1[j][i]; if (aNumber == 1 ){ addObject ( new Blocks(), i, j); } else if (aNumber == 2 ){ addObject ( new Bob(blueEnergyCounter, greenEnergyCounter, redEnergyCounter, purpleEnergyCounter, coinsCounter), i, j); } |