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