refac: playground pos and ball color
This commit is contained in:
parent
628a7678e1
commit
8129c284bd
|
@ -43,27 +43,6 @@
|
||||||
"max": 30,
|
"max": 30,
|
||||||
"default": 10,
|
"default": 10,
|
||||||
"help": "set the score to win this game "
|
"help": "set the score to win this game "
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "color",
|
|
||||||
"verbose": "矩形顏色",
|
|
||||||
"type": "str",
|
|
||||||
"choices": [
|
|
||||||
{
|
|
||||||
"verbose": "CYAN",
|
|
||||||
"value": "00BCD4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"verbose": "YELLOW",
|
|
||||||
"value": "FFEB3B"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"verbose": "ORANGE",
|
|
||||||
"value": "FF9800"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"help": "set the color of rectangle",
|
|
||||||
"default": "00BCD4"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
30
src/game.py
30
src/game.py
|
@ -10,6 +10,11 @@ from mlgame.view.view_model import *
|
||||||
from .enums import FoodTypeEnum
|
from .enums import FoodTypeEnum
|
||||||
from .game_object import Ball, Food
|
from .game_object import Ball, Food
|
||||||
|
|
||||||
|
BG_COLOR = "#111111"
|
||||||
|
PG_COLOR = "#B3E5FC"
|
||||||
|
|
||||||
|
WIDTH = 800
|
||||||
|
HEIGHT = 600
|
||||||
ASSET_PATH = path.join(path.dirname(__file__), "../asset")
|
ASSET_PATH = path.join(path.dirname(__file__), "../asset")
|
||||||
LEVEL_PATH = path.join(path.dirname(__file__), "../levels")
|
LEVEL_PATH = path.join(path.dirname(__file__), "../levels")
|
||||||
|
|
||||||
|
@ -19,21 +24,24 @@ class EasyGame(PaiaGame):
|
||||||
This is a Interface of a game
|
This is a Interface of a game
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, time_to_play, green_food_count, black_food_count, score, color, *args, **kwargs):
|
def __init__(
|
||||||
|
self, time_to_play, score, green_food_count, black_food_count,
|
||||||
|
# playground_size
|
||||||
|
*args, **kwargs):
|
||||||
super().__init__(user_num=1)
|
super().__init__(user_num=1)
|
||||||
self.game_result_state = GameResultState.FAIL
|
|
||||||
self.playground_w = 400
|
self.playground_w = 400
|
||||||
self.playground_h = 300
|
self.playground_h = 300
|
||||||
self.scene = Scene(width=800, height=600, color="#111111", bias_x=0, bias_y=0)
|
|
||||||
|
self.game_result_state = GameResultState.FAIL
|
||||||
|
self.scene = Scene(width=WIDTH, height=HEIGHT, color=BG_COLOR, bias_x=0, bias_y=0)
|
||||||
self.playground = pygame.Rect(
|
self.playground = pygame.Rect(
|
||||||
350 - (self.playground_w / 2),
|
0, 0,
|
||||||
300 - (self.playground_h / 2),
|
|
||||||
self.playground_w,
|
self.playground_w,
|
||||||
self.playground_h
|
self.playground_h
|
||||||
)
|
)
|
||||||
|
self.playground.center = (WIDTH / 2, HEIGHT / 2)
|
||||||
self.green_food_count = green_food_count
|
self.green_food_count = green_food_count
|
||||||
self.black_food_count = black_food_count
|
self.black_food_count = black_food_count
|
||||||
self.color = color
|
|
||||||
self.score_to_win = score
|
self.score_to_win = score
|
||||||
self.frame_limit = time_to_play
|
self.frame_limit = time_to_play
|
||||||
|
|
||||||
|
@ -41,7 +49,7 @@ class EasyGame(PaiaGame):
|
||||||
self.init_game()
|
self.init_game()
|
||||||
|
|
||||||
def init_game(self):
|
def init_game(self):
|
||||||
self.ball = Ball("#" + self.color)
|
self.ball = Ball()
|
||||||
self.foods.empty()
|
self.foods.empty()
|
||||||
self.score = 0
|
self.score = 0
|
||||||
self._create_foods(self.green_food_count, FoodTypeEnum.GREEN)
|
self._create_foods(self.green_food_count, FoodTypeEnum.GREEN)
|
||||||
|
@ -56,7 +64,7 @@ class EasyGame(PaiaGame):
|
||||||
action = ai_1p_cmd[0]
|
action = ai_1p_cmd[0]
|
||||||
else:
|
else:
|
||||||
action = "NONE"
|
action = "NONE"
|
||||||
# print(ai_1p_cmd)
|
|
||||||
self.ball.update(action)
|
self.ball.update(action)
|
||||||
self.revise_ball(self.ball, self.playground)
|
self.revise_ball(self.ball, self.playground)
|
||||||
# update sprite
|
# update sprite
|
||||||
|
@ -131,7 +139,7 @@ class EasyGame(PaiaGame):
|
||||||
# TODO add music or sound
|
# TODO add music or sound
|
||||||
bg_path = path.join(ASSET_PATH, "img/background.jpg")
|
bg_path = path.join(ASSET_PATH, "img/background.jpg")
|
||||||
background = create_asset_init_data(
|
background = create_asset_init_data(
|
||||||
"background", 800, 600, 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")
|
||||||
scene_init_data = {"scene": self.scene.__dict__,
|
scene_init_data = {"scene": self.scene.__dict__,
|
||||||
"assets": [
|
"assets": [
|
||||||
|
@ -152,10 +160,10 @@ class EasyGame(PaiaGame):
|
||||||
game_obj_list = [self.ball.game_object_data]
|
game_obj_list = [self.ball.game_object_data]
|
||||||
game_obj_list.extend(foods_data)
|
game_obj_list.extend(foods_data)
|
||||||
backgrounds = [
|
backgrounds = [
|
||||||
create_image_view_data("background", 0, 0, 800, 600),
|
create_image_view_data("background", 0, 0, WIDTH, HEIGHT),
|
||||||
create_rect_view_data(
|
create_rect_view_data(
|
||||||
"playground", self.playground.x, self.playground.y,
|
"playground", self.playground.x, self.playground.y,
|
||||||
self.playground.w, self.playground.h, "#B3E5FC")
|
self.playground.w, self.playground.h, PG_COLOR)
|
||||||
]
|
]
|
||||||
foregrounds = [create_text_view_data(f"Score = {self.score:04d}", 650, 50, "#FF0000", "24px Arial BOLD")]
|
foregrounds = [create_text_view_data(f"Score = {self.score:04d}", 650, 50, "#FF0000", "24px Arial BOLD")]
|
||||||
toggle_objs = [
|
toggle_objs = [
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import random
|
|
||||||
|
|
||||||
import pygame.sprite
|
import pygame.sprite
|
||||||
|
|
||||||
from games.easy_game.src.enums import FoodTypeEnum
|
from games.easy_game.src.enums import FoodTypeEnum
|
||||||
|
@ -7,7 +5,7 @@ from mlgame.view.view_model import create_rect_view_data
|
||||||
|
|
||||||
FOOD_COLOR_MAP = {FoodTypeEnum.GREEN: "#009688",
|
FOOD_COLOR_MAP = {FoodTypeEnum.GREEN: "#009688",
|
||||||
FoodTypeEnum.BLACK: "#263238"}
|
FoodTypeEnum.BLACK: "#263238"}
|
||||||
|
BALL_COLOR = "#FFEB3B"
|
||||||
BALL_VEL = 10.5
|
BALL_VEL = 10.5
|
||||||
|
|
||||||
BALL_H = 50
|
BALL_H = 50
|
||||||
|
@ -16,14 +14,15 @@ BALL_W = 50
|
||||||
|
|
||||||
|
|
||||||
class Ball(pygame.sprite.Sprite):
|
class Ball(pygame.sprite.Sprite):
|
||||||
def __init__(self, color="#FFEB3B"):
|
def __init__(self):
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
self.origin_image = pygame.Surface([BALL_W, BALL_H])
|
self.origin_image = pygame.Surface([BALL_W, BALL_H])
|
||||||
self.image = self.origin_image
|
self.image = self.origin_image
|
||||||
self.color = color
|
self.color = BALL_COLOR
|
||||||
self.rect = self.image.get_rect()
|
self.rect = self.image.get_rect()
|
||||||
self.rect.center = (400, 300)
|
self.rect.center = (400, 300)
|
||||||
|
|
||||||
|
|
||||||
def update(self, motion):
|
def update(self, motion):
|
||||||
# for motion in motions:
|
# for motion in motions:
|
||||||
if motion == "UP":
|
if motion == "UP":
|
||||||
|
|
Loading…
Reference in New Issue