Exemple #1
0
class Main:
    """Entry point for CoG."""

    def __init__(self):
        """Constructor of Main class."""

        pygame.init()

        self.clock = pygame.time.Clock()

        self.window = Menu()

        self.run()

    def run(self):
        """Runs CoG."""

        running = True

        events = Events()

        while running:
            for event in events:
                self.window.pass_event(event)

                if event.level == "host":
                    if event.type == pygame.KEYDOWN:
                        if event.mod & pygame.KMOD_CTRL:
                            if event.key == pygame.K_ESCAPE:
                                running = False

            self.window.draw()
            pygame.display.update()
            self.clock.tick(60)
    def __init__(self):
        super().__init__()

        self.img = img
        self.name = "wei_base"
        self.x = 660
        self.y = 318
        self.tile = [[460, 244], [500, 244], [540, 244], [580,
                                                          244], [620, 244],
                     [660, 244], [700, 244], [460, 279], [500,
                                                          279], [540, 279],
                     [580, 279], [620, 279], [660, 279], [700,
                                                          279], [500, 313],
                     [540, 313], [580, 313], [620, 313], [660,
                                                          313], [700, 313],
                     [500, 349], [540, 349], [580, 349], [620,
                                                          349], [660, 349],
                     [700, 349], [500, 383], [540, 383], [580,
                                                          383], [620, 383],
                     [660, 383], [500, 417], [540, 417], [580, 417],
                     [620, 417], [660, 417]]
        self.rgb = rgb(254, 245, 134)
        self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
        self.menu.add_btn(catapult, "kingdom")
        self.menu.add_btn(balista, "kingdom")
 def __init__(self, x, y):
     super().__init__(x, y)
     self.base_imgs = base_imgs1[:]
     self.animation_imgs = animation_imgs1[:]
     self.animation_count = 0
     self.range = 85
     self.original_range = self.range
     self.inRange = False
     self.left = True
     self.timer = time.time()
     self.damage = 1
     self.original_damage = self.damage
     self.width = 40
     self.height = 44
     self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
     self.menu.add_btn(upgrade_btn, "Upgrade")
     self.menu.add_btn(sell_btn, "Sell")
     self.moving = False
     self.sound = "sword.wav"
     self.name = "shin"
     self.sell_price = [30, 80, 200]
     self.price = [100, 300, 9999]
     self.distribution = [0.89, 0.1, 0.01]
     self.original_distribution = self.distribution[:]
     self.gold_drop = 0
     self.coord = (0, 0)
     self.speed = 4
     self.attacked_enemy = None
Exemple #4
0
class KyoukaiTower(TenTower):
    """
    add damage to surrounding towers
    """
    def __init__(self, x, y):
        super().__init__(x, y)
        self.range = 60
        self.base_imgs = base_imgs5[:]
        self.effect = [1, 2, 3]
        self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
        self.menu.add_btn(upgrade_btn, "Upgrade")
        self.menu.add_btn(sell_btn, "Sell")
        self.name = "kyoukai"
        self.sell_price = [80, 120, 240]
        self.price = [160, 300, 9999]

    def support(self, towers):
        """
        will modify towers according to ability
        :param towers: list
        :return: None
        """
        effected = []
        for tower in towers:
            x = tower.x
            y = tower.y

            dis = math.sqrt((self.x - x)**2 + (self.y - y)**2)

            if dis <= self.range + tower.width / 2:
                effected.append(tower)

        for tower in effected:
            tower.damage = tower.original_damage + round(
                tower.original_damage * self.effect[self.level - 1])
Exemple #5
0
class DamageTower(Tower):
    def __init__(self, x, y):
        super().__init__(x, y)
        self.range = 150
        self.effect = [2, 4]
        self.imgs = damage_imgs[:]
        self.width = self.height = 128
        self.price = [1300, 0]
        temp = []
        for x in range(len(self.price) - 1):
            temp.append(str(self.price[x]))
        temp.append("MAX")
        self.menu = Menu(self, self.x, self.y, menu_bg, temp)
        self.menu.add_btn(upgrade_btn, "Upgrade")
        self.name = "damageTower"

    def get_upgrade_cost(self):
        return self.price[self.level - 1]


    def draw(self, win):
        super().draw_radius(win)
        super().draw(win)

    def support(self, towers):
        effected = []
        for tower in towers:
            x = tower.x
            y = tower.y
            dis = math.sqrt((self.x - x) ** 2 + (self.y - y) ** 2)
            if dis <= self.range + tower.width/2:
                effected.append(tower)

        for tower in effected:
            tower.damage = tower.oryginal_damage * self.effect[self.level - 1]
Exemple #6
0
    def __init__(self, x, y):
        super().__init__(x, y)
        self.imgs = []
        self.oryginal_range = 150
        self.range = self.oryginal_range
        self.inRange = False
        self.left = True
        self.timer = time.time()
        self.oryginal_damage = 1
        self.damage = self.oryginal_damage
        self.width = self.height = 128
        self.price = [2000, 4000, 0]
        temp = []
        for x in range(len(self.price) - 1):
            temp.append(str(self.price[x]))
        temp.append("MAX")
        self.menu = Menu(self, self.x, self.y, menu_bg, temp)
        self.menu.add_btn(upgrade_btn, "Upgrade")
        self.name = "longRangeTower"
        self.moving = False

        self.imgs.append(
            pygame.transform.scale(
                pygame.image.load(
                    os.path.join("game_assets/towers/", "base1.png")),
                (50, 100)))
Exemple #7
0
    def __init__(self):
        """Constructor of Main class."""

        pygame.init()

        self.clock = pygame.time.Clock()

        self.window = Menu()

        self.run()
Exemple #8
0
def run(calories, menu_type, is_html):
    menu = Menu(calories, menu_type)
    lunch = menu.get_lunch()
    snack = menu.get_snack()
    dinner = menu.get_dinner()

    if is_html:
        display_html_table(lunch, dinner, snack)
    else:
        display_rich_table(lunch, dinner, snack)
Exemple #9
0
 def __init__(self, x, y):
     super().__init__(x, y)
     self.range = 60
     self.base_imgs = base_imgs5[:]
     self.effect = [1, 2, 3]
     self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
     self.menu.add_btn(upgrade_btn, "Upgrade")
     self.menu.add_btn(sell_btn, "Sell")
     self.name = "kyoukai"
     self.sell_price = [80, 120, 240]
     self.price = [160, 300, 9999]
	def __init__(self):
		super().__init__()

		self.img = img
		self.name = "han_base"
		self.x = 740
		self.y = 388
		self.tile = [[700,383],[740,383],[780,383],[700,417],[740,417],[780,417],[700,453],[740,453],[780,453],[700,489],[740,489],[780,489],[700,523],[740,523]]
		self.rgb = rgb(253, 143, 66)
		self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
		self.menu.add_btn(warrior, "kingdom2")
Exemple #11
0
	def __init__(self):
		super().__init__()

		self.img = img
		self.name = "chu3_base"
		self.x = 820
		self.y = 564
		self.tile = [[860,383],[900,383],[940,383],[980,383],[1020,383],[1060,383],[1100,383],[820,417],[860,417],[900,417],[940,417],[980,417],[1020,417],[1060,417],[1100,417],[500,453],[540,453],[580,453],[620,453],[660,453],[820,453],[860,453],[900,453],[940,453],[980,453],[1020,453],[1060,453],[1100,453],[500,489],[540,489],[580,489],[620,489],[660,489],[820,489],[860,489],[900,489],[940,489],[980,489],[1020,489],[1060,489],[1100,489],[140,523],[180,523],[220,523],[260,523],[300,523],[340,523],[380,523],[420,523],[460,523],[500,523],[540,523],[580,523],[620,523],[660,523],[780,523],[820,523],[860,523],[900,523],[940,523],[980,523],[1020,523],[1060,523],[1100,523],[20,559],[60,559],[100,559],[140,559],[180,559],[220,559],[260,559],[300,559],[340,559],[380,559],[420,559],[460,559],[500,559],[540,559],[580,559],[620,559],[660,559],[700,559],[740,559],[780,559],[820,559],[860,559],[900,559],[940,559],[980,559],[1020,559],[1060,559],[1100,559],[20,593],[60,593],[100,593],[140,593],[180,593],[220,593],[260,593],[300,593],[340,593],[380,593],[420,593],[460,593],[500,593],[540,593],[580,593],[620,593],[660,593],[700,593],[740,593],[780,593],[820,593],[860,593],[900,593],[940,593],[980,593],[1020,593],[1060,593],[1100,593],[20,627],[60,627],[100,627],[140,627],[180,627],[220,627],[260,627],[300,627],[340,627],[380,627],[420,627],[460,627],[500,627],[540,627],[580,627],[620,627],[660,627],[700,627],[740,627],[780,627],[820,627],[860,627],[900,627],[940,627],[980,627],[1020,627],[1060,627],[1100,627],[20,661],[60,661],[100,661],[140,661],[180,661],[220,661],[260,661],[300,661],[340,661],[380,661],[420,661],[460,661],[500,661],[540,661],[580,661],[620,661],[660,661],[700,661],[740,661],[780,661],[820,661],[860,661],[900,661],[940,661],[980,661],[1020,661],[1060,661],[1100,661]]
		self.rgb = rgb(176, 134, 105)
		self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
		self.menu.add_btn(boat, "kingdom2")
	def __init__(self):
		super().__init__()

		self.img = img
		self.name = "yan_base"
		self.x = 940
		self.y = 111
		self.tile = [[780,40],[820,40],[860,40],[900,40],[940,40],[980,40],[1020,40],[1060,40],[1100,40],[780,74],[820,74],[860,74],[900,74],[940,74],[980,74],[1020,74],[1060,74],[1100,74],[780,108],[820,108],[860,108],[900,108],[940,108],[980,108],[1020,108],[1060,108],[1100,108],[780,142],[820,142],[860,142],[900,142],[940,142],[980,142],[1020,142],[1060,142],[1100,142],[780,176],[820,176],[860,176],[900,176],[940,176],[980,176],[1020,176],[1060,176],[860,210],[900,210],[940,210],[980,210]]
		self.rgb = rgb(170, 250, 140)
		self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
		self.menu.add_btn(warrior, "kingdom")
		self.menu.add_btn(boat, "kingdom")
Exemple #13
0
    def __init__(self):
        pygame.display.set_caption('Astrocytes')
        self.background = pygame.Surface((SCREEN_SIZE.W, SCREEN_SIZE.H))
        ACTIVE.append('menu')

        self.menu = Menu()
        self.pause_screen = PauseScreen()
        self.game_1 = Game_1()
        self.game_2 = Game_2()
        self.game_3 = Game_3()

        EVENT_STREAM.subscribe(self.event_handler)
    def __init__(self, name, coord):
        super().__init__(name, coord)
        # Tower coordinates
        self.x = self.coord[0]
        self.y = self.coord[1]

        # Allows for upgrade references
        self.level = 1

        # Upgrade Cost
        self.cost = TowerConstants.UPGRADE_COST[name]

        # Selling logistics
        self.original_price = TowerConstants.ORIGINAL_PRICE[name]
        self.sell_price = [self.original_price, self.cost[0], self.cost[1]]

        # Tower dimensions
        self.width = self.dimensions[0]
        self.height = self.dimensions[1]

        # Clicking on a tower
        self.selected = False

        # Tower images
        self.tower_images = []

        # Specific range for each tower
        self.range = TowerConstants.TOWER_RADIUS_RANGE[name]

        # Leveling up animation
        self.level_up_animation = False
        self.level_animation = 0
        self.level_up = level_up

        # Menu logistics
        self.menu = Menu(self, menu_background)
        self.menu.add_button("upgrade", upgrade_button)
        self.menu.add_button("sell", sell_button)

        # Damage for towers that deal damage
        self.base_damage = 0
        self.damage = self.base_damage

        # For moving the archer tower when purchasing from the shops
        self.dragged = False

        # Padding for clicking purposes
        self.extra_padding = 10

        # Keeps track of kill count
        self.kill_count = 0
        self.font = game_font
Exemple #15
0
 def __init__(self, x, y):
     super().__init__(x, y)
     self.range = 60
     self.effect = [0.1, 0.2, 0.3]
     self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
     self.menu.add_btn(upgrade_btn, "Upgrade")
     self.menu.add_btn(sell_btn, "Sell")
     self.base_imgs = base_imgs4[:]
     self.width = 40
     self.height = 44
     self.name = "ten"
     self.sell_price = [80, 120, 240]
     self.price = [160, 300, 9999]
Exemple #16
0
 def __init__(self, x, y):
     super().__init__(x, y)
     self.range = 150
     self.effect = [2, 4]
     self.imgs = damage_imgs[:]
     self.width = self.height = 128
     self.price = [1300, 0]
     temp = []
     for x in range(len(self.price) - 1):
         temp.append(str(self.price[x]))
     temp.append("MAX")
     self.menu = Menu(self, self.x, self.y, menu_bg, temp)
     self.menu.add_btn(upgrade_btn, "Upgrade")
     self.name = "damageTower"
class Qi_base(Kingdom):
    def __init__(self):
        super().__init__()

        self.img = img
        self.name = "qi_base"
        self.x = 980
        self.y = 318
        self.tile = [[1100, 176], [1020, 210], [1060, 210], [1100, 210],
                     [860, 244], [900, 244], [940, 244], [980, 244],
                     [1020, 244], [1060, 244], [1100, 244], [860, 279],
                     [900, 279], [940, 279], [980, 279], [1020, 279],
                     [1060, 279], [1100, 279], [860, 313], [900, 313],
                     [940, 313], [980, 313], [1020, 313], [1060, 313],
                     [1100, 313], [860, 349], [900, 349], [940,
                                                           349], [980, 349],
                     [1020, 349], [1060, 349], [1100, 349]]
        self.rgb = rgb(254, 234, 178)
        self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
        self.menu.add_btn(warrior, "kingdom")
        self.menu.add_btn(boat, "kingdom")

    def draw(self, win):
        super().draw(win)
        if self.selected:
            self.menu.x = self.x
            self.menu.y = self.y
            self.menu.update()
            self.menu.draw(win)
class Wei_base(Kingdom):
    def __init__(self):
        super().__init__()

        self.img = img
        self.name = "wei_base"
        self.x = 660
        self.y = 318
        self.tile = [[460, 244], [500, 244], [540, 244], [580,
                                                          244], [620, 244],
                     [660, 244], [700, 244], [460, 279], [500,
                                                          279], [540, 279],
                     [580, 279], [620, 279], [660, 279], [700,
                                                          279], [500, 313],
                     [540, 313], [580, 313], [620, 313], [660,
                                                          313], [700, 313],
                     [500, 349], [540, 349], [580, 349], [620,
                                                          349], [660, 349],
                     [700, 349], [500, 383], [540, 383], [580,
                                                          383], [620, 383],
                     [660, 383], [500, 417], [540, 417], [580, 417],
                     [620, 417], [660, 417]]
        self.rgb = rgb(254, 245, 134)
        self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
        self.menu.add_btn(catapult, "kingdom")
        self.menu.add_btn(balista, "kingdom")

    def draw(self, win):
        super().draw(win)
        if self.selected:
            self.menu.x = self.x
            self.menu.y = self.y
            self.menu.update()
            self.menu.draw(win)
Exemple #19
0
class TenTower(Tower):
    """
    Add extra range to each surrounding tower
    """
    def __init__(self, x, y):
        super().__init__(x, y)
        self.range = 60
        self.effect = [0.1, 0.2, 0.3]
        self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
        self.menu.add_btn(upgrade_btn, "Upgrade")
        self.menu.add_btn(sell_btn, "Sell")
        self.base_imgs = base_imgs4[:]
        self.width = 40
        self.height = 44
        self.name = "ten"
        self.sell_price = [80, 120, 240]
        self.price = [160, 300, 9999]

    def get_upgrade_cost(self):
        """
        gets the upgrade cost
        :return: int
        """
        return self.menu.get_item_cost()

    def draw(self, win):
        # super().draw_radius(win)
        super().draw_rectangle(win)
        super().draw(win)

    def support(self, towers):
        """
        will modify towers according to abillity
        :param towers: list
        :return: None
        """
        effected = []
        for tower in towers:
            x = tower.x
            y = tower.y

            dis = math.sqrt((self.x - x)**2 + (self.y - y)**2)

            if dis <= self.range + tower.width / 2:
                effected.append(tower)

        for tower in effected:
            tower.range = tower.original_range + round(
                tower.range * self.effect[self.level - 1])
Exemple #20
0
 def __init__(self, x, y):
     self.x = x
     self.y = y
     self.width = 0
     self.height = 0
     self.range = 0
     self.price = [0, 0, 0]
     self.level = 1
     self.selected = False
     # define menu and buttons
     self.menu = Menu(self, self.x, self.y, menu_bg, [2000, "MAX"])
     self.menu.add_btn(upgrade_btn, "Upgrade")
     self.imgs = []
     self.damage = 1
     self.place_color = (0, 0, 255, 100)
Exemple #21
0
    def __init__(self, x, y, range, damage):
        super().__init__(x, y,range, damage)
        self.archer_imgs = archer_imgs[:]
        self.archer_count = 0
        self.range = range
        self.damage = damage
        self.original_damage = self.damage
        self.inRange = False
        self.left = -1
        # self.timer = time.time()
        self.name = 'archer_2'
        self.cost = [2500, 5500, 7000, 'MAX']

        self.menu = Menu(self, self.x, self.y, menu_bg, [2500, 5500, 7000, 'MAX'])
        self.menu.add_button(upgrade_button, 'upgrade_button', self.cost)
    def __init__(self, x,y):
        super().__init__(x, y)
        self.tower_imgs = tower_imgs[:]
        self.archer_imgs = archer_imgs[:]
        self.archer_count = 0
        self.range = 120
        self.original_range = self.range
        self.inRange = False
        self.left = True
        self.damage = 2
        self.original_damage = self.damage

        self.menu = Menu(self, self.x, self.y, menu_bg, [2500, 5500, "MAX"])
        self.menu.add_btn(upgrade_btn, "Upgrade")
        self.name = "archer2"
Exemple #23
0
def main():
    """Program főkontrollere ami elindítja a játékot"""

    # Alap inicializáció
    pygame.mouse.set_visible(False)
    menu = Menu()

    while True:
        # Menü kezelő
        start_menu(menu)

        # Játék indul ha nem kilépést választottunk
        if menu.full_exit:
            break

        # Player lista elkésztése a menü adatai és a MenuData class alapértékei alapján
        players = player_init(menu)

        # Játék elindítása
        game = Game(players)
        if game.start(
        ):  # Visszatér True értékkel ha a felhasználó megnyomta az X-et
            break

        # Amint vége a játéknak az EndScreen következik
        endscreen = EndScreen(game.players)
        endscreen.draw()

        # Folyamatosan várunk az enter billenytu lenyomására majd visszatérünk a menübe
        if enter_listener(
        ):  # Visszatér True értékkel ha a felhasználó megnyomta az X-et
            break
Exemple #24
0
    def __init__(self,x,y):
        self.x = x
        self.y = y
        self.width = 0
        self.height = 0
        self.sell_price = [0,0,0]
        self.price = [0,0,0]
        self.level = 1
        self.selected = False
        #definiuje menu i przyciski
        self.menu = Menu(self, self.x, self.y, menu_bg, [2000, "MAX"])
        self.menu.add_btn(upgrade_btn, "Upgrade")


        self.tower_imgs = []
        self.damage = 1
 def __init__(self, x, y):
     self.x = x
     self.y = y
     self.width = 0
     self.height = 0
     self.sell_price = [0, 0, 0]
     self.price = [100, 300, 9999]
     self.level = 1
     self.selected = False
     self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
     self.menu.add_btn(upgrade_btn, "Upgrade")
     self.menu.add_btn(sell_btn, "Sell")
     self.base_imgs = []
     self.animation_imgs = []
     self.damage = 1
     self.speed = 4
Exemple #26
0
	def __init__(self, x, y):
		self.x = x
		self.y = y
		self.width = self.height = 96
		self.sell_price = [0,0,0]
		self.price = [0,0,0]
		self.level = 1
		self.range = 200
		self.original_range = self.range # Not sure if this should be in here
		self.selected = False
		# define menu and buttons
		self.menu = Menu(self.x, self.y, self, menu_bg, [2000, 5000, 9000, 12000, "MAX"])
		self.menu.add_button(upgrade_button, "Upgrade")
		self.moving = False
		self.tower_imgs = []
		self.damage = 1
		self.place_color = (0,0,255, 100)
    def __init__(self, x,y):
        super().__init__(x, y)
        self.tower_imgs = tower_imgs1[:]
        self.archer_imgs = archer_imgs1[:]
        self.archer_count = 0
        self.range = 200
        self.original_range = self.range
        self.inRange = False
        self.left = True
        self.damage = 1
        self.original_damage = self.damage
        self.width = self.height = 90
        self.moving = False
        self.name = "archer"

        self.menu = Menu(self, self.x, self.y, menu_bg, [2000, 5000,"MAX"])
        self.menu.add_btn(upgrade_btn, "Upgrade")
Exemple #28
0
 def __init__(self, x, y):
     super().__init__(x, y)
     self.tower_imgs = tower_imgs2[:]
     self.archer_imgs = archer_imgs[:]
     self.name = "archer_Tower2"
     self.archer_total_imgs = len(archer_imgs)
     self.archer_count = 0
     self.range = 100
     self.inRange = False
     self.original_range = self.range
     self.original_damage = self.damage
     self.left = True
     self.moving = False
     self.damage = 2
     self.animation_speed_multiplier = 2
     self.menu = Menu(self.x, self.y, self, menu_bg, [2000, 5000, "MAX"])
     self.menu.add_button(upgrade_button, "Upgrade")
 def __init__(self, x, y):
     super().__init__(x,y)
     self.range = 60
     self.effect = [100, 200, 400]
     self.price = [400, 750, 9999]
     self.menu = Menu(self, self.x, self.y, menu_bg, self.price)
     self.menu.add_btn(upgrade_btn, "Upgrade")
     self.menu.add_btn(sell_btn, "Sell")
     self.base_imgs = base_imgs6[:]
     self.animation_imgs = animation_imgs6[:]
     self.width = 40
     self.height = 44
     self.name = "fortress"
     self.max_health = 500
     self.health = self.max_health
     self.collapse = False
     self.price = [0, 0, 0]
     self.collided = []
Exemple #30
0
    def __init__(self, x, y, range, damage):
        super().__init__(x, y)
        self.archer_imgs = archer_imgs1[:]
        self.archer_count = 0
        self.range = range
        self.original_range = self.range
        self.inRange = False
        self.damage = damage
        self.left = -1
        self.timer = time.time()
        self.tower_enemy_closest = []
        self.original_damage = self.damage
        self.moving = False
        self.name = 'archer'
        self.cost = [2000, 3500, 6000, 'MAX']

        self.menu = Menu(self, self.x, self.y, menu_bg, [2000, 3500, 6000, "MAX"])
        self.menu.add_button(upgrade_button, "upgrade_button", self.cost)
Exemple #31
0
    def __init__(self):
        pygame.display.set_caption('Astrocytes')
        self.background = pygame.Surface((SCREEN_SIZE.W, SCREEN_SIZE.H))
        ACTIVE.append('menu')

        self.menu = Menu()
        self.pause_screen = PauseScreen()
        self.game_1 = Game_1()
        self.game_2 = Game_2()
        self.game_3 = Game_3()

        EVENT_STREAM.subscribe(self.event_handler)
Exemple #32
0
#
#  Copyright (C) 2009 Juan Pedro Bolivar Puente, Alberto Villegas Erce
#  
#  This file is part of Pigeoncide.
#
#  Pigeoncide is free software: you can redistribute it and/or
#  modify it under the terms of the GNU General Public License as
#  published by the Free Software Foundation, either version 3 of the
#  License, or (at your option) any later version.
#  
#  Pigeoncide is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#  
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

from menu.menu import Menu

if __name__ == '__main__':
    menu = Menu ()
    menu.run_and_exit ()

Exemple #33
0
def add_routes(config):
    Form.add_pyramid_routes(config)
    Table.add_pyramid_routes(config)
    Menu.add_pyramid_routes(config)
    Canvas.add_pyramid_routes(config)
    Box.add_pyramid_routes(config)
Exemple #34
0
class Astrocytes:
    def __init__(self):
        pygame.display.set_caption('Astrocytes')
        self.background = pygame.Surface((SCREEN_SIZE.W, SCREEN_SIZE.H))
        ACTIVE.append('menu')

        self.menu = Menu()
        self.pause_screen = PauseScreen()
        self.game_1 = Game_1()
        self.game_2 = Game_2()
        self.game_3 = Game_3()

        EVENT_STREAM.subscribe(self.event_handler)

    def event_handler(self, e):
        self.check_pause(e)
        self.check_exit(e)

    def check_pause(self, e):
        if e.type == pygame.KEYDOWN:
            if e.key == pygame.K_ESCAPE:
                if ACTIVE[-1] == 'pause-screen':
                    self.pause_screen.hide()
                    ACTIVE.pop()
                else:
                    ACTIVE.append('pause-screen')

    def run(self):
        clock = pygame.time.Clock()
        while True:
            clock.tick(30)
            for e in pygame.event.get():
                EVENT_STREAM.on_next(e)

            if ACTIVE[-1] == 'menu':
                self.menu.render()

            elif ACTIVE[-1] == 'game_1':
                if KINECT.has_new_body_frame():
                    POST_NEW_BODY_FRAME_EVENT(
                        body_frame=KINECT.get_last_body_frame())

                if KINECT.has_new_body_index_frame():
                    POST_NEW_BODY_INDEX_FRAME_EVENT(
                        body_index_frame=KINECT.get_last_body_index_frame())

                self.game_1.render()

            elif ACTIVE[-1] == 'game_2':
                if KINECT.has_new_body_frame():
                    POST_NEW_BODY_FRAME_EVENT(
                        body_frame=KINECT.get_last_body_frame())

                if KINECT.has_new_body_index_frame():
                    POST_NEW_BODY_INDEX_FRAME_EVENT(
                        body_index_frame=KINECT.get_last_body_index_frame())

                self.game_2.render()

            elif ACTIVE[-1] == 'game_3':
                if KINECT.has_new_body_frame():
                    POST_NEW_BODY_FRAME_EVENT(
                        body_frame=KINECT.get_last_body_frame())

                if KINECT.has_new_body_index_frame():
                    POST_NEW_BODY_INDEX_FRAME_EVENT(
                        body_index_frame=KINECT.get_last_body_index_frame())
                self.game_3.render()

            elif ACTIVE[-1] == 'pause-screen':
                self.pause_screen.render()

            pygame.display.update()

    def check_exit(self, e):
        if e.type == pygame.QUIT:
            pygame.quit()
            quit()

        elif (e.type == pygame.KEYDOWN):
            if e.key == pygame.K_F4:
                if bool(e.mod & pygame.KMOD_ALT):
                    pygame.quit()
                    quit()