food auto add
This commit is contained in:
parent
56d537529a
commit
778348d8b8
|
@ -4,9 +4,15 @@
|
|||
"playground_size_h":400,
|
||||
"score_to_pass": 10,
|
||||
"food_1": 5,
|
||||
"food_1_max": 5,
|
||||
"food_2": 0,
|
||||
"food_2_max": 0,
|
||||
"food_3": 0,
|
||||
"food_3_max": 0,
|
||||
"garbage_1": 0,
|
||||
"garbage_1_max": 0,
|
||||
"garbage_2": 0,
|
||||
"garbage_3": 0
|
||||
"garbage_2_max": 0,
|
||||
"garbage_3": 0,
|
||||
"garbage_3_max": 0
|
||||
}
|
|
@ -4,9 +4,15 @@
|
|||
"playground_size_h":400,
|
||||
"score_to_pass": 20,
|
||||
"food_1": 5,
|
||||
"food_1_max": 5,
|
||||
"food_2": 1,
|
||||
"food_2_max": 1,
|
||||
"food_3": 0,
|
||||
"food_3_max": 0,
|
||||
"garbage_1": 0,
|
||||
"garbage_1_max": 0,
|
||||
"garbage_2": 0,
|
||||
"garbage_3": 0
|
||||
"garbage_2_max": 0,
|
||||
"garbage_3": 0,
|
||||
"garbage_3_max": 0
|
||||
}
|
|
@ -4,9 +4,15 @@
|
|||
"playground_size_h":400,
|
||||
"score_to_pass": 30,
|
||||
"food_1": 4,
|
||||
"food_1_max": 4,
|
||||
"food_2": 2,
|
||||
"food_2_max": 2,
|
||||
"food_3": 0,
|
||||
"food_3_max": 0,
|
||||
"garbage_1": 3,
|
||||
"garbage_1_max": 3,
|
||||
"garbage_2": 0,
|
||||
"garbage_3": 0
|
||||
"garbage_2_max": 0,
|
||||
"garbage_3": 0,
|
||||
"garbage_3_max": 0
|
||||
}
|
|
@ -4,9 +4,15 @@
|
|||
"playground_size_h":400,
|
||||
"score_to_pass": 40,
|
||||
"food_1": 8,
|
||||
"food_1_max": 8,
|
||||
"food_2": 2,
|
||||
"food_2_max": 2,
|
||||
"food_3": 0,
|
||||
"food_3_max": 0,
|
||||
"garbage_1": 4,
|
||||
"garbage_1_max": 4,
|
||||
"garbage_2": 0,
|
||||
"garbage_3": 0
|
||||
"garbage_2_max": 0,
|
||||
"garbage_3": 0,
|
||||
"garbage_3_max": 0
|
||||
}
|
|
@ -4,9 +4,15 @@
|
|||
"playground_size_h":400,
|
||||
"score_to_pass": 50,
|
||||
"food_1": 8,
|
||||
"food_1_max": 8,
|
||||
"food_2": 4,
|
||||
"food_2_max": 4,
|
||||
"food_3": 0,
|
||||
"food_3_max": 0,
|
||||
"garbage_1": 3,
|
||||
"garbage_1_max": 3,
|
||||
"garbage_2": 1,
|
||||
"garbage_3": 0
|
||||
"garbage_2_max": 1,
|
||||
"garbage_3": 0,
|
||||
"garbage_3_max": 0
|
||||
}
|
|
@ -4,9 +4,15 @@
|
|||
"playground_size_h":400,
|
||||
"score_to_pass": 60,
|
||||
"food_1": 8,
|
||||
"food_1_max": 8,
|
||||
"food_2": 4,
|
||||
"food_2_max": 4,
|
||||
"food_3": 0,
|
||||
"food_3_max": 0,
|
||||
"garbage_1": 5,
|
||||
"garbage_1_max": 5,
|
||||
"garbage_2": 2,
|
||||
"garbage_3": 0
|
||||
"garbage_2_max": 2,
|
||||
"garbage_3": 0,
|
||||
"garbage_3_max": 0
|
||||
}
|
|
@ -4,9 +4,15 @@
|
|||
"playground_size_h":500,
|
||||
"score_to_pass": 70,
|
||||
"food_1": 8,
|
||||
"food_1_max": 8,
|
||||
"food_2": 4,
|
||||
"food_2_max": 4,
|
||||
"food_3": 2,
|
||||
"food_3_max": 2,
|
||||
"garbage_1": 4,
|
||||
"garbage_1_max": 4,
|
||||
"garbage_2": 2,
|
||||
"garbage_3": 0
|
||||
"garbage_2_max": 2,
|
||||
"garbage_3": 0,
|
||||
"garbage_3_max": 0
|
||||
}
|
|
@ -4,9 +4,15 @@
|
|||
"playground_size_h":600,
|
||||
"score_to_pass": 80,
|
||||
"food_1": 6,
|
||||
"food_1_max": 10,
|
||||
"food_2": 4,
|
||||
"food_2_max": 7,
|
||||
"food_3": 2,
|
||||
"food_3_max": 5,
|
||||
"garbage_1": 3,
|
||||
"garbage_1_max": 6,
|
||||
"garbage_2": 2,
|
||||
"garbage_3": 2
|
||||
"garbage_2_max": 4,
|
||||
"garbage_3": 2,
|
||||
"garbage_3_max": 3
|
||||
}
|
|
@ -4,10 +4,16 @@
|
|||
"playground_size_h":550,
|
||||
"score_to_pass": 10,
|
||||
"food_1": 3,
|
||||
"food_1_max": 5,
|
||||
"food_2": 2,
|
||||
"food_2_max": 3,
|
||||
"food_3": 5,
|
||||
"food_3_max": 7,
|
||||
"garbage_1": 1,
|
||||
"garbage_1_max": 4,
|
||||
"garbage_2": 1,
|
||||
"garbage_3": 1
|
||||
"garbage_2_max": 3,
|
||||
"garbage_3": 1,
|
||||
"garbage_3_max": 2
|
||||
|
||||
}
|
|
@ -43,6 +43,8 @@ class FoodTypeEnum(StringEnum):
|
|||
GARBAGE_3 = auto()
|
||||
|
||||
|
||||
|
||||
|
||||
FOOD_LV1_SIZE = 30
|
||||
FOOD_LV2_SIZE = 40
|
||||
FOOD_LV3_SIZE = 50
|
||||
|
|
31
src/game.py
31
src/game.py
|
@ -27,6 +27,8 @@ def revise_ball(ball: Squid, playground: pygame.Rect):
|
|||
ball.rect = ball_rect
|
||||
pass
|
||||
|
||||
FOOD_LIST = [Food1, Food2, Food3, Garbage1, Garbage2, Garbage3]
|
||||
|
||||
|
||||
class SwimmingSquid(PaiaGame):
|
||||
"""
|
||||
|
@ -51,6 +53,8 @@ class SwimmingSquid(PaiaGame):
|
|||
self._overtime_count = 0
|
||||
self._game_times = game_times
|
||||
self._winner = []
|
||||
self._foods_num = []
|
||||
self._foods_max_num = []
|
||||
|
||||
self._init_game()
|
||||
|
||||
|
@ -71,6 +75,8 @@ class SwimmingSquid(PaiaGame):
|
|||
self._used_file = "001.json"
|
||||
finally:
|
||||
# set game params
|
||||
self._foods_num.extend([game_params.food_1, game_params.food_2, game_params.food_3, game_params.garbage_1, game_params.garbage_2, game_params.garbage_3])
|
||||
self._foods_max_num.extend([game_params.food_1_max, game_params.food_2_max, game_params.food_3_max, game_params.garbage_1_max, game_params.garbage_2_max, game_params.garbage_3_max])
|
||||
if game_params.playground_size_w > 700:
|
||||
game_params.playground_size_w = 700
|
||||
self.playground = pygame.Rect(
|
||||
|
@ -88,15 +94,18 @@ class SwimmingSquid(PaiaGame):
|
|||
self.squid1 = Squid(1, 200, 300)
|
||||
self.squid2 = Squid(2, 500, 300)
|
||||
self.foods.empty()
|
||||
self._create_foods(Food1, game_params.food_1)
|
||||
self._create_foods(Food2, game_params.food_2)
|
||||
self._create_foods(Food3, game_params.food_3)
|
||||
self._create_foods(Garbage1, game_params.garbage_1)
|
||||
self._create_foods(Garbage2, game_params.garbage_2)
|
||||
self._create_foods(Garbage3, game_params.garbage_3)
|
||||
for i in range(6):
|
||||
self._create_foods(FOOD_LIST[i], self._foods_num[i])
|
||||
# self._create_foods(Food1, game_params.food_1)
|
||||
# self._create_foods(Food2, game_params.food_2)
|
||||
# self._create_foods(Food3, game_params.food_3)
|
||||
# self._create_foods(Garbage1, game_params.garbage_1)
|
||||
# self._create_foods(Garbage2, game_params.garbage_2)
|
||||
# self._create_foods(Garbage3, game_params.garbage_3)
|
||||
|
||||
self.frame_count = 0
|
||||
self._frame_count_down = self._frame_limit
|
||||
self._new_food_frame = 0
|
||||
self._overtime_count = 0
|
||||
self.sound_controller.play_music()
|
||||
|
||||
|
@ -119,6 +128,14 @@ class SwimmingSquid(PaiaGame):
|
|||
self.squid2.update(self.frame_count, action_2)
|
||||
revise_ball(self.squid1, self.playground)
|
||||
revise_ball(self.squid2, self.playground)
|
||||
# create new food
|
||||
if self.frame_count - self._new_food_frame > 300:
|
||||
for i in range(6):
|
||||
if self._foods_max_num[i] > self._foods_num[i]:
|
||||
self._foods_num[i] += 1
|
||||
self._create_foods(FOOD_LIST[i], 1)
|
||||
self._new_food_frame = self.frame_count
|
||||
|
||||
# update sprite
|
||||
self.foods.update(playground=self.playground, squid=self.squid1)
|
||||
|
||||
|
@ -267,7 +284,7 @@ class SwimmingSquid(PaiaGame):
|
|||
@property
|
||||
def is_passed(self):
|
||||
if self.squid1.score >= self._score_to_pass or self.squid2.score >= self._score_to_pass: # 達成目標分數
|
||||
if self.squid1.score == self.squid2.score and self._overtime_count < 3: # 延長賽
|
||||
if self.squid1.score == self.squid2.score and self._overtime_count < 1: # 延長賽
|
||||
self._frame_limit += 600
|
||||
self._score_to_pass += 50
|
||||
self._overtime_count += 1
|
||||
|
|
|
@ -18,11 +18,17 @@ class LevelParams(pydantic.BaseModel):
|
|||
time_to_play: int = 300
|
||||
|
||||
food_1: int = 3
|
||||
food_1_max: int = 3
|
||||
food_2: int = 0
|
||||
food_2_max: int = 0
|
||||
food_3: int = 0
|
||||
food_3_max: int = 0
|
||||
garbage_1: int = 0
|
||||
garbage_1_max: int = 0
|
||||
garbage_2: int = 0
|
||||
garbage_2_max: int = 0
|
||||
garbage_3: int = 0
|
||||
garbage_3_max: int = 0
|
||||
|
||||
|
||||
# level_thresholds = [10, 15, 20, 25, 30]
|
||||
|
|
Loading…
Reference in New Issue