diff --git a/levels/003.json b/levels/003.json index db4160f..1e7af2e 100644 --- a/levels/003.json +++ b/levels/003.json @@ -5,6 +5,6 @@ 300 ], "score_to_pass": 15, - "green_food_count": [10,0,0], - "black_food_count": [0,0,0] + "green_food_count": [6,0,0], + "black_food_count": [2,0,0] } \ No newline at end of file diff --git a/levels/004.json b/levels/004.json index 2c642fd..61f4ddd 100644 --- a/levels/004.json +++ b/levels/004.json @@ -5,6 +5,6 @@ 300 ], "score_to_pass": 15, - "green_food_count": [7,0,0], - "black_food_count": [3,0,0] + "green_food_count": [8,0,0], + "black_food_count": [4,0,0] } \ No newline at end of file diff --git a/levels/005.json b/levels/005.json index a3da067..09e99fc 100644 --- a/levels/005.json +++ b/levels/005.json @@ -5,6 +5,6 @@ 300 ], "score_to_pass": 15, - "green_food_count": [7,0,0], - "black_food_count": [7,0,0] + "green_food_count": [8,3,0], + "black_food_count": [4,0,0] } \ No newline at end of file diff --git a/levels/006.json b/levels/006.json index 0f3bc6f..bac42f3 100644 --- a/levels/006.json +++ b/levels/006.json @@ -5,6 +5,6 @@ 400 ], "score_to_pass": 15, - "green_food_count": [7,0,0], - "black_food_count": [10,0,0] + "green_food_count": [8,4,0], + "black_food_count": [5,2,0] } \ No newline at end of file diff --git a/levels/007.json b/levels/007.json index b6c5251..84ee5bf 100644 --- a/levels/007.json +++ b/levels/007.json @@ -5,6 +5,6 @@ 400 ], "score_to_pass": 20, - "green_food_count": [7,0,0], - "black_food_count": [13,0,0] + "green_food_count": [8,4,2], + "black_food_count": [4,4,0] } \ No newline at end of file diff --git a/levels/008.json b/levels/008.json index ddc3b55..c94adc3 100644 --- a/levels/008.json +++ b/levels/008.json @@ -5,6 +5,6 @@ 500 ], "score_to_pass": 20, - "green_food_count": [10,0,0], - "black_food_count": [15,0,0] + "green_food_count": [6,4,2], + "black_food_count": [6,4,2] } \ No newline at end of file diff --git a/levels/009.json b/levels/009.json index 167c95f..9ee974f 100644 --- a/levels/009.json +++ b/levels/009.json @@ -5,6 +5,6 @@ 500 ], "score_to_pass": 25, - "green_food_count": [15,0,0], - "black_food_count": [30,0,0] + "green_food_count": [10,5,3], + "black_food_count": [12,7,4] } \ No newline at end of file diff --git a/levels/010.json b/levels/010.json index 4caa335..d7450e3 100644 --- a/levels/010.json +++ b/levels/010.json @@ -5,6 +5,6 @@ 600 ], "score_to_pass": 25, - "green_food_count": [20,0,0], - "black_food_count": [40,0,0] + "green_food_count": [12,8,4], + "black_food_count": [25,10,5] } \ No newline at end of file diff --git a/src/env.py b/src/env.py index 484a2e9..82274ce 100644 --- a/src/env.py +++ b/src/env.py @@ -32,6 +32,9 @@ FOOD_COLOR_MAP = { FoodTypeEnum.BAD_2: "#FF1744", FoodTypeEnum.BAD_3: "#FF1744" } +FOOD_LV1_SIZE = 8 +FOOD_LV2_SIZE = 12 +FOOD_LV3_SIZE = 16 # path of assets ASSET_PATH = path.join(path.dirname(__file__), "..", "asset") diff --git a/src/foods.py b/src/foods.py index 368692b..3833d8c 100644 --- a/src/foods.py +++ b/src/foods.py @@ -1,6 +1,6 @@ import pygame.sprite -from games.easy_game.src.env import FoodTypeEnum, FOOD_COLOR_MAP +from games.easy_game.src.env import FoodTypeEnum, FOOD_COLOR_MAP, FOOD_LV1_SIZE, FOOD_LV2_SIZE, FOOD_LV3_SIZE from mlgame.view.view_model import create_rect_view_data @@ -33,20 +33,60 @@ class Food(pygame.sprite.Sprite): class GoodFoodLv1(Food): def __init__(self, group): super().__init__(group) - self.image = pygame.Surface([8, 8]) + self.image = pygame.Surface([FOOD_LV1_SIZE, FOOD_LV1_SIZE]) self.type = FoodTypeEnum.GOOD_1 self.color = FOOD_COLOR_MAP[self.type] self.score = 1 self.rect = self.image.get_rect() - self.angle = 0 +class GoodFoodLv2(Food): + def __init__(self, group): + super().__init__(group) + + self.image = pygame.Surface([FOOD_LV2_SIZE, FOOD_LV2_SIZE]) + self.type = FoodTypeEnum.GOOD_2 + self.color = FOOD_COLOR_MAP[self.type] + self.score = 2 + self.rect = self.image.get_rect() + +class GoodFoodLv3(Food): + def __init__(self, group): + super().__init__(group) + + self.image = pygame.Surface([FOOD_LV3_SIZE, FOOD_LV3_SIZE]) + self.type = FoodTypeEnum.GOOD_3 + self.color = FOOD_COLOR_MAP[self.type] + self.score = 4 + self.rect = self.image.get_rect() + + class BadFoodLv1(Food): def __init__(self, group): super().__init__(group) - self.image = pygame.Surface([8, 8]) + self.image = pygame.Surface([FOOD_LV1_SIZE, FOOD_LV1_SIZE]) self.type = FoodTypeEnum.BAD_1 self.color = FOOD_COLOR_MAP[self.type] self.score = -1 self.rect = self.image.get_rect() self.angle = 0 + +class BadFoodLv2(Food): + def __init__(self, group): + super().__init__(group) + + self.image = pygame.Surface([FOOD_LV2_SIZE, FOOD_LV2_SIZE]) + self.type = FoodTypeEnum.BAD_2 + self.color = FOOD_COLOR_MAP[self.type] + self.score = -2 + self.rect = self.image.get_rect() + +class BadFoodLv3(Food): + def __init__(self, group): + super().__init__(group) + + self.image = pygame.Surface([FOOD_LV3_SIZE, FOOD_LV3_SIZE]) + self.type = FoodTypeEnum.BAD_3 + self.color = FOOD_COLOR_MAP[self.type] + self.score = -4 + self.rect = self.image.get_rect() diff --git a/src/game.py b/src/game.py index 170c3e8..1db17cd 100644 --- a/src/game.py +++ b/src/game.py @@ -9,7 +9,7 @@ from mlgame.utils.enum import get_ai_name from mlgame.view.decorator import check_game_progress, check_game_result from mlgame.view.view_model import * from .env import * -from .foods import GoodFoodLv1, BadFoodLv1 +from .foods import * from .game_object import Ball from .sound_controller import SoundController @@ -83,11 +83,11 @@ class EasyGame(PaiaGame): # todo validate food count self._create_foods(GoodFoodLv1, self._green_food_count[0]) - # self._create_foods(GoodFoodLv1, self._green_food_count[1]) - # self._create_foods(GoodFoodLv1, self._green_food_count[2]) + self._create_foods(GoodFoodLv2, self._green_food_count[1]) + self._create_foods(GoodFoodLv3, self._green_food_count[2]) self._create_foods(BadFoodLv1, self._red_food_count[0]) - # self._create_foods(BadFoodLv1, self._red_food_count[1]) - # self._create_foods(BadFoodLv1, self._red_food_count[2]) + self._create_foods(BadFoodLv2, self._red_food_count[1]) + self._create_foods(BadFoodLv3, self._red_food_count[2]) self.frame_count = 0 self._frame_count_down = self._frame_limit @@ -126,10 +126,9 @@ class EasyGame(PaiaGame): for food in hits: self.score += food.score self._create_foods(food.__class__, 1) - # TODO add food score to function - if isinstance(food, (GoodFoodLv1,)): + if isinstance(food, (GoodFoodLv1,GoodFoodLv2,GoodFoodLv3,)): self.sound_controller.play_eating_good() - elif isinstance(food, (BadFoodLv1,)): + elif isinstance(food, (BadFoodLv1,BadFoodLv2,BadFoodLv3,)): self.sound_controller.play_eating_bad() def get_data_from_game_to_player(self):