feat: add food1 img

This commit is contained in:
Kylin_on_Mac
2023-11-09 18:03:22 +08:00
parent 473bb3ea3c
commit b929f12cec
14 changed files with 38 additions and 24 deletions

BIN
asset/img/background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
asset/img/food_01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

BIN
asset/img/food_02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

BIN
asset/img/food_03.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

BIN
asset/img/garbage_01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

BIN
asset/img/garbage_02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 KiB

BIN
asset/img/garbage_03.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

BIN
asset/img/squid.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
asset/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 82 KiB

View File

@ -21,6 +21,7 @@ BALL_SIZE_MIN = 10
BALL_VEL_MAX = 25 BALL_VEL_MAX = 25
BALL_VEL_MIN = 10 BALL_VEL_MIN = 10
ASSET_IMAGE_DIR = path.join(path.dirname(__file__), "../asset/img")
# food # food
class FoodTypeEnum(StringEnum): class FoodTypeEnum(StringEnum):
GOOD_1 = auto() GOOD_1 = auto()
@ -38,7 +39,7 @@ FOOD_COLOR_MAP = {
FoodTypeEnum.BAD_2: "#FF1744", FoodTypeEnum.BAD_2: "#FF1744",
FoodTypeEnum.BAD_3: "#FF1744" FoodTypeEnum.BAD_3: "#FF1744"
} }
FOOD_LV1_SIZE = 8 FOOD_LV1_SIZE = 20
FOOD_LV2_SIZE = 12 FOOD_LV2_SIZE = 12
FOOD_LV3_SIZE = 16 FOOD_LV3_SIZE = 16

View File

@ -4,7 +4,7 @@ import pygame.sprite
from pygame import Rect from pygame import Rect
from .env import FoodTypeEnum, FOOD_COLOR_MAP, FOOD_LV1_SIZE, FOOD_LV2_SIZE, FOOD_LV3_SIZE from .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, create_image_view_data
FOOD1_VEL = 1 FOOD1_VEL = 1
@ -100,6 +100,15 @@ class Food1(Food):
self._vel = FOOD1_VEL self._vel = FOOD1_VEL
elif self.rect.right > playground.right and self._vel>0.0: elif self.rect.right > playground.right and self._vel>0.0:
self._vel = - FOOD1_VEL self._vel = - FOOD1_VEL
@property
def game_object_data(self):
return create_image_view_data(
"food01",
self.rect.x,
self.rect.y,
self.rect.width,
self.rect.height
)

View File

@ -221,9 +221,11 @@ class EasyGame(PaiaGame):
# background = create_asset_init_data( # background = create_asset_init_data(
# "background", WIDTH, HEIGHT, bg_path, # "background", WIDTH, HEIGHT, bg_path,
# github_raw_url="https://raw.githubusercontent.com/PAIA-Playful-AI-Arena/easy_game/main/asset/img/background.jpg") # github_raw_url="https://raw.githubusercontent.com/PAIA-Playful-AI-Arena/easy_game/main/asset/img/background.jpg")
food01_path = path.join(ASSET_IMAGE_DIR, "food_01.png")
food01_url = food01_path
scene_init_data = {"scene": self.scene.__dict__, scene_init_data = {"scene": self.scene.__dict__,
"assets": [ "assets": [
# background create_asset_init_data("food01", 20, 20, food01_path,food01_url)
], ],
# "audios": {} # "audios": {}
} }

View File

@ -10,21 +10,23 @@ from .foods import Food
from .sound_controller import SoundController from .sound_controller import SoundController
from mlgame.view.view_model import create_rect_view_data from mlgame.view.view_model import create_rect_view_data
class LevelParams(pydantic.BaseModel): class LevelParams(pydantic.BaseModel):
playground_w:int=100 playground_w: int = 100
playground_h:int=200 playground_h: int = 200
score_to_pass:int=10 score_to_pass: int = 10
time_to_play:int=300 time_to_play: int = 300
good_food_count:List[int] =[] good_food_count: List[int] = []
bad_food_count:List[int] =[] bad_food_count: List[int] = []
food_1: int = 0
food_2: int = 0
food_3: int = 0
garbage_1: int = 0
garbage_2: int = 0
garbage_3: int = 0
food_1:int=0
food_2:int=0
food_3:int=0
garbage_1:int=0
garbage_2:int=0
garbage_3:int=0
class Ball(pygame.sprite.Sprite): class Ball(pygame.sprite.Sprite):
def __init__(self): def __init__(self):
@ -36,7 +38,7 @@ class Ball(pygame.sprite.Sprite):
self.rect.center = (400, 300) self.rect.center = (400, 300)
self._score = 0 self._score = 0
self._vel = BALL_VEL self._vel = BALL_VEL
self._lv =1 self._lv = 1
def update(self, motion): def update(self, motion):
# for motion in motions: # for motion in motions:
@ -68,22 +70,23 @@ class Ball(pygame.sprite.Sprite):
self.color self.color
) )
def eat_food_and_change_level_and_play_sound(self, food: Food,sound_controller:SoundController): def eat_food_and_change_level_and_play_sound(self, food: Food, sound_controller: SoundController):
self._score += food.score self._score += food.score
new_lv = math.ceil((self._score-BALL_GROWTH_SCORE_STEP + 1) / BALL_GROWTH_SCORE_STEP) new_lv = math.ceil((self._score - BALL_GROWTH_SCORE_STEP + 1) / BALL_GROWTH_SCORE_STEP)
self.rect.width = max(BALL_SIZE_MIN,min(BALL_W + new_lv * BALL_GROWTH_SIZE_STEP, BALL_SIZE_MAX)) self.rect.width = max(BALL_SIZE_MIN, min(BALL_W + new_lv * BALL_GROWTH_SIZE_STEP, BALL_SIZE_MAX))
self.rect.height = max(BALL_SIZE_MIN,min(BALL_H + new_lv * BALL_GROWTH_SIZE_STEP, BALL_SIZE_MAX)) self.rect.height = max(BALL_SIZE_MIN, min(BALL_H + new_lv * BALL_GROWTH_SIZE_STEP, BALL_SIZE_MAX))
self._vel = max(BALL_VEL_MIN,min(BALL_VEL + new_lv * BALL_GROWTH_VEL_STEP, BALL_VEL_MAX)) self._vel = max(BALL_VEL_MIN, min(BALL_VEL + new_lv * BALL_GROWTH_VEL_STEP, BALL_VEL_MAX))
if new_lv > self._lv: if new_lv > self._lv:
sound_controller.play_lv_up() sound_controller.play_lv_up()
elif new_lv < self._lv: elif new_lv < self._lv:
sound_controller.play_lv_down() sound_controller.play_lv_down()
self._lv=new_lv self._lv = new_lv
pass pass
@property @property
def score(self): def score(self):
return self._score return self._score
@property @property
def vel(self): def vel(self):
return self._vel return self._vel