refac: update level file

This commit is contained in:
Kylin_on_Mac 2023-10-10 23:25:54 +08:00
parent a6fcbbe55f
commit 46e655930d
11 changed files with 70 additions and 28 deletions

View File

@ -5,6 +5,6 @@
300 300
], ],
"score_to_pass": 15, "score_to_pass": 15,
"green_food_count": [10,0,0], "green_food_count": [6,0,0],
"black_food_count": [0,0,0] "black_food_count": [2,0,0]
} }

View File

@ -5,6 +5,6 @@
300 300
], ],
"score_to_pass": 15, "score_to_pass": 15,
"green_food_count": [7,0,0], "green_food_count": [8,0,0],
"black_food_count": [3,0,0] "black_food_count": [4,0,0]
} }

View File

@ -5,6 +5,6 @@
300 300
], ],
"score_to_pass": 15, "score_to_pass": 15,
"green_food_count": [7,0,0], "green_food_count": [8,3,0],
"black_food_count": [7,0,0] "black_food_count": [4,0,0]
} }

View File

@ -5,6 +5,6 @@
400 400
], ],
"score_to_pass": 15, "score_to_pass": 15,
"green_food_count": [7,0,0], "green_food_count": [8,4,0],
"black_food_count": [10,0,0] "black_food_count": [5,2,0]
} }

View File

@ -5,6 +5,6 @@
400 400
], ],
"score_to_pass": 20, "score_to_pass": 20,
"green_food_count": [7,0,0], "green_food_count": [8,4,2],
"black_food_count": [13,0,0] "black_food_count": [4,4,0]
} }

View File

@ -5,6 +5,6 @@
500 500
], ],
"score_to_pass": 20, "score_to_pass": 20,
"green_food_count": [10,0,0], "green_food_count": [6,4,2],
"black_food_count": [15,0,0] "black_food_count": [6,4,2]
} }

View File

@ -5,6 +5,6 @@
500 500
], ],
"score_to_pass": 25, "score_to_pass": 25,
"green_food_count": [15,0,0], "green_food_count": [10,5,3],
"black_food_count": [30,0,0] "black_food_count": [12,7,4]
} }

View File

@ -5,6 +5,6 @@
600 600
], ],
"score_to_pass": 25, "score_to_pass": 25,
"green_food_count": [20,0,0], "green_food_count": [12,8,4],
"black_food_count": [40,0,0] "black_food_count": [25,10,5]
} }

View File

@ -32,6 +32,9 @@ FOOD_COLOR_MAP = {
FoodTypeEnum.BAD_2: "#FF1744", FoodTypeEnum.BAD_2: "#FF1744",
FoodTypeEnum.BAD_3: "#FF1744" FoodTypeEnum.BAD_3: "#FF1744"
} }
FOOD_LV1_SIZE = 8
FOOD_LV2_SIZE = 12
FOOD_LV3_SIZE = 16
# path of assets # path of assets
ASSET_PATH = path.join(path.dirname(__file__), "..", "asset") ASSET_PATH = path.join(path.dirname(__file__), "..", "asset")

View File

@ -1,6 +1,6 @@
import pygame.sprite 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 from mlgame.view.view_model import create_rect_view_data
@ -33,20 +33,60 @@ class Food(pygame.sprite.Sprite):
class GoodFoodLv1(Food): class GoodFoodLv1(Food):
def __init__(self, group): def __init__(self, group):
super().__init__(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.type = FoodTypeEnum.GOOD_1
self.color = FOOD_COLOR_MAP[self.type] self.color = FOOD_COLOR_MAP[self.type]
self.score = 1 self.score = 1
self.rect = self.image.get_rect() 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): class BadFoodLv1(Food):
def __init__(self, group): def __init__(self, group):
super().__init__(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.type = FoodTypeEnum.BAD_1
self.color = FOOD_COLOR_MAP[self.type] self.color = FOOD_COLOR_MAP[self.type]
self.score = -1 self.score = -1
self.rect = self.image.get_rect() self.rect = self.image.get_rect()
self.angle = 0 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()

View File

@ -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.decorator import check_game_progress, check_game_result
from mlgame.view.view_model import * from mlgame.view.view_model import *
from .env import * from .env import *
from .foods import GoodFoodLv1, BadFoodLv1 from .foods import *
from .game_object import Ball from .game_object import Ball
from .sound_controller import SoundController from .sound_controller import SoundController
@ -83,11 +83,11 @@ class EasyGame(PaiaGame):
# todo validate food count # todo validate food count
self._create_foods(GoodFoodLv1, self._green_food_count[0]) self._create_foods(GoodFoodLv1, self._green_food_count[0])
# self._create_foods(GoodFoodLv1, self._green_food_count[1]) self._create_foods(GoodFoodLv2, self._green_food_count[1])
# self._create_foods(GoodFoodLv1, self._green_food_count[2]) 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[0])
# self._create_foods(BadFoodLv1, self._red_food_count[1]) self._create_foods(BadFoodLv2, self._red_food_count[1])
# self._create_foods(BadFoodLv1, self._red_food_count[2]) self._create_foods(BadFoodLv3, self._red_food_count[2])
self.frame_count = 0 self.frame_count = 0
self._frame_count_down = self._frame_limit self._frame_count_down = self._frame_limit
@ -126,10 +126,9 @@ class EasyGame(PaiaGame):
for food in hits: for food in hits:
self.score += food.score self.score += food.score
self._create_foods(food.__class__, 1) self._create_foods(food.__class__, 1)
# TODO add food score to function if isinstance(food, (GoodFoodLv1,GoodFoodLv2,GoodFoodLv3,)):
if isinstance(food, (GoodFoodLv1,)):
self.sound_controller.play_eating_good() self.sound_controller.play_eating_good()
elif isinstance(food, (BadFoodLv1,)): elif isinstance(food, (BadFoodLv1,BadFoodLv2,BadFoodLv3,)):
self.sound_controller.play_eating_bad() self.sound_controller.play_eating_bad()
def get_data_from_game_to_player(self): def get_data_from_game_to_player(self):