コード例 #1
0
 def __init__(self, pos, *, size=(220, 100), align=(0, 0)):
     # display
     self.pos = utils.top_left(pos, size, align=align)
     self.size = size
     # buttons
     self.buttons = {
         'speed-':
         c.Button((self.pos[0] + self.size[0] // 2 - 75, self.pos[1] + 50),
                  (30, 40),
                  '',
                  font=('src', 'timesnewroman.ttf', 22),
                  align=(1, 1),
                  background=(230, 230, 230)),
         '':
         c.Button((self.pos[0] + self.size[0] // 2, self.pos[1] + 50),
                  (120, 40),
                  'speed×1',
                  font=('src', 'timesnewroman.ttf', 22),
                  align=(1, 1),
                  background=(230, 230, 230)),
         'speed+':
         c.Button((self.pos[0] + self.size[0] // 2 + 75, self.pos[1] + 50),
                  (30, 40),
                  '',
                  font=('src', 'timesnewroman.ttf', 22),
                  align=(1, 1),
                  background=(230, 230, 230))
     }
コード例 #2
0
    def __init__(self, args):
        self.args = args

        # display
        self.bar_height = 100
        self.margin = 40
        self.padding = 20
        self.background = c.Component(lambda ui: ui.show_div((0, 0), self.args.size, color=(60, 179, 113)))
        self.pan = 0

        # saves and buttons
        self.saves = [
            SavedFile(self.args, file[:-4])
            for file in os.listdir(os.path.join(self.args.save_path, 'replay'))
            if file.endswith('.gnr')
        ]
        self.saves.sort(key=lambda sf: [not sf.err, re.split(r'[\-_]', sf.date), sf.name], reverse=True)
        self.buttons = {
            'open-location': c.Button(
                (self.args.size[0] - 100, 100), (120, 60),
                'open location', font=f.tnr(15), save='tnr-15', align=(1, 1), background=(210, 210, 210)),
            'back': c.Button(
                (self.args.size[0] // 2, self.args.size[1] - self.bar_height // 2), (200, 50),
                'back', font=f.tnr(22), save='tnr-22', align=(1, 1), background=(210, 210, 210))
        }
コード例 #3
0
ファイル: join.py プロジェクト: StevenLu2004/platformer2
    def __init__(self, args):
        # arguments
        self.args = args

        # regex
        self.regex = r'(([1-9]?[0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))'
        self.regex_one = r'^' + self.regex + r'\.?$'
        self.regex_two = r'^' + self.regex + r'\.' + self.regex + r'\.?$'
        self.regex_three = r'^(' + self.regex + r'\.){2}' + self.regex + r'\.?$'
        self.regex_full = r'^(' + self.regex + r'\.){3}' + self.regex + r'$'

        # socket
        self.server_ip = ''
        self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.client.settimeout(1.0)

        # gui
        self.background = c.Component(lambda ui: ui.show_div((0, 0), self.args.size, color=(60, 179, 113)))
        self.error_msg = None
        self.error_msg_clock = sw.Stopwatch()
        self.buttons = {
            'connect': c.Button(
                (self.args.size[0] // 2, 540), (400, 60), 'connect',
                font=f.tnr(22), align=(1, 1), background=(210, 210, 210)
            ),
            'back': c.Button(
                (self.args.size[0] // 2, 640), (400, 60), 'back',
                font=f.tnr(22), align=(1, 1), background=(210, 210, 210)
            ),
        }
コード例 #4
0
ファイル: menu.py プロジェクト: cty012/py-generals
 def __init__(self, args):
     self.args = args
     self.background = c.Component(lambda ui: ui.show_div(
         (0, 0), self.args.size, color=(60, 179, 113)))
     self.buttons = {
         'new':
         c.Button((self.args.size[0] // 2, 310), (600, 80),
                  'New Game',
                  font=f.tnr(25),
                  save='tnr-25',
                  align=(1, 1),
                  background=(210, 210, 210)),
         'join':
         c.Button((self.args.size[0] // 2, 410), (600, 80),
                  'Join Game',
                  font=f.tnr(25),
                  save='tnr-25',
                  align=(1, 1),
                  background=(210, 210, 210)),
         'replay':
         c.Button((self.args.size[0] // 2, 510), (600, 80),
                  'Replay',
                  font=f.tnr(25),
                  save='tnr-25',
                  align=(1, 1),
                  background=(210, 210, 210)),
         'quit':
         c.Button((self.args.size[0] // 2, 610), (600, 80),
                  'Exit',
                  font=f.tnr(25),
                  save='tnr-25',
                  align=(1, 1),
                  background=(210, 210, 210)),
     }
コード例 #5
0
 def __init__(self,
              args,
              *,
              msg='',
              size=(600, 300),
              input_size=(500, 50),
              color=(192, 192, 192)):
     self.args = args
     self.size = size
     self.input_size = input_size
     self.color = color
     self.active = False
     self.msg = msg
     self.buttons = {
         'save':
         c.Button(
             (self.args.size[0] // 2 - 100, self.args.size[1] // 2 + 100),
             (140, 40),
             'save',
             font=('src', 'timesnewroman.ttf', 22),
             border=1,
             align=(1, 1),
             background=(255, 255, 255)),
         'back':
         c.Button(
             (self.args.size[0] // 2 + 100, self.args.size[1] // 2 + 100),
             (140, 40),
             'back',
             font=('src', 'timesnewroman.ttf', 22),
             border=1,
             align=(1, 1),
             background=(255, 255, 255))
     }
コード例 #6
0
ファイル: turn_displayer.py プロジェクト: cty012/py-generals
 def __init__(self,
              args,
              pos,
              map,
              *,
              arrows=False,
              max_turn=0,
              align=(0, 0)):
     self.args = args
     self.arrows = arrows
     self.size = (160, 130) if self.arrows else (160, 60)
     self.pos = utils.top_left(pos, self.size, align=align)
     self.map = map
     self.min_turn = 0
     self.max_turn = max_turn
     self.buttons = {
         'turn-':
         c.Button((self.pos[0] + self.size[0] // 2 - 40, self.pos[1] + 80),
                  (30, 40),
                  '',
                  border=1,
                  align=(1, 1),
                  background=cl.gray_0),
         'turn+':
         c.Button((self.pos[0] + self.size[0] // 2 + 40, self.pos[1] + 80),
                  (30, 40),
                  '',
                  border=1,
                  align=(1, 1),
                  background=cl.gray_0)
     } if self.arrows else {}
コード例 #7
0
 def __init__(self, args):
     self.args = args
     self.pos = (0, 0)
     self.background = c.Component(lambda ui: ui.show_div(
         (0, 0), self.args.size, color=(60, 179, 113)))
     self.buttons = {
         'new':
         c.Button((self.args.size[0] // 2, 300), (600, 80),
                  'New Game',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         'save':
         c.Button((self.args.size[0] // 2, 400), (600, 80),
                  'Load Saved Game',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         'replay':
         c.Button((self.args.size[0] // 2, 500), (600, 80),
                  'Replay',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         'quit':
         c.Button((self.args.size[0] // 2, 600), (600, 80),
                  'Exit',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(1, 1),
                  background=(210, 210, 210)),
     }
コード例 #8
0
 def __init__(self, args):
     self.args = args
     self.background = c.Component(lambda ui: ui.show_div(
         (0, 0), self.args.size, color=(60, 179, 113)))
     self.buttons = {
         'sing':
         c.Button((self.args.size[0] // 2, 360), (600, 80),
                  'Single Player',
                  font=f.tnr(25),
                  save='tnr-25',
                  align=(1, 1),
                  background=(210, 210, 210)),
         'mult':
         c.Button((self.args.size[0] // 2, 460), (600, 80),
                  'Multi-Player',
                  font=f.tnr(25),
                  save='tnr-25',
                  align=(1, 1),
                  background=(210, 210, 210)),
         'back':
         c.Button((self.args.size[0] // 2, 560), (600, 80),
                  'Back',
                  font=f.tnr(25),
                  save='tnr-25',
                  align=(1, 1),
                  background=(210, 210, 210)),
     }
コード例 #9
0
ファイル: mode.py プロジェクト: cty012/cut-and-slice
 def __init__(self, args):
     self.args = args
     self.pos = (0, 0)
     self.background = c.Component(lambda ui: ui.show_div(
         (0, 0), self.args.size, color=(60, 179, 113)))
     self.buttons = {
         '1':
         c.Button((self.args.size[0] // 2, 300), (600, 80),
                  '1 v 1',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '2':
         c.Button((self.args.size[0] // 2, 400), (600, 80),
                  '2 v 2',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         'back':
         c.Button((self.args.size[0] // 2, 500), (600, 80),
                  'Back',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(1, 1),
                  background=(210, 210, 210)),
     }
コード例 #10
0
ファイル: room_server.py プロジェクト: cty012/py-generals
    def __init__(self, args):
        # arguments
        self.args = args

        # server and client
        self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        print(socket.gethostname())

        self.ip = '127.0.0.1'
        try:
            ips = [
                ip for ip in socket.gethostbyname_ex(socket.gethostname())[2]
                if utils.is_private_ip(ip)
            ]
            self.ip = ips[0] if len(ips) > 0 else '127.0.0.1'
        except socket.gaierror as e:
            print(e)
        self.server.bind((self.ip, 5051))
        self.server.settimeout(1.1)
        self.server.listen()

        self.clients = []  # {ip, port, client}
        self.status = {'running': True}
        self.player_colors = cl.get_player_colors()
        self.thread = Thread(target=self.add_clients(self.status),
                             name='add-clients',
                             daemon=True)
        self.thread.start()

        # gui
        self.background = c.Component(lambda ui: ui.show_div(
            (0, 0), self.args.size, color=(60, 179, 113)))
        self.buttons = {
            'play':
            c.Button((self.args.size[0] // 2 - 300, 620), (300, 60),
                     'start game',
                     font=f.tnr(23),
                     save='tnr-23',
                     align=(1, 1),
                     background=(210, 210, 210)),
            'back':
            c.Button((self.args.size[0] // 2 + 300, 620), (300, 60),
                     'close room',
                     font=f.tnr(23),
                     save='tnr-23',
                     align=(1, 1),
                     background=(210, 210, 210)),
        }
コード例 #11
0
    def __init__(self, args, server_ip, client):
        # arguments
        self.args = args
        self.mode = None
        self.server_ip = server_ip
        self.client = client

        # server and client
        print('CLIENT ENTER room...')
        self.id = None
        self.total = None
        self.thread = Thread(target=self.wait_info, name='wait-info')
        self.thread.start()

        # gui
        self.background = c.Component(lambda ui: ui.show_div(
            (0, 0), self.args.size, color=(60, 179, 113)))
        self.buttons = {
            'back':
            c.Button((self.args.size[0] // 2, 640), (600, 80),
                     'exit room',
                     font=f.tnr(25),
                     align=(1, 1),
                     background=(210, 210, 210)),
        }
コード例 #12
0
 def __init__(self, args, pos, address, name, *, align=(0, 0)):
     self.args = args
     self.size = [600, 100]
     self.pos = utils.top_left(pos, self.size, align=align)
     self.ip = address[0]
     self.port = address[1]
     self.name = name
     self.join_btn = c.Button(utils.add(self.pos, (550, 50)), (80, 60), 'Join', font=f.tnr(20), border=1, align=(1, 1))
コード例 #13
0
    def __init__(self, args, mode):
        # arguments
        self.args = args
        self.mode = mode

        # server and client
        self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        hostname = socket.gethostname()
        if not hostname.endswith('.local'):
            hostname += '.local'
        fqdn_hostname = socket.getfqdn()
        if not fqdn_hostname.endswith('.local'):
            fqdn_hostname += '.local'
        try:
            all_ips = socket.gethostbyname_ex(hostname)[2]
        except:
            all_ips = socket.gethostbyname_ex(fqdn_hostname)[2]
        ips = [
            ip for ip in all_ips
            if utils.is_private_ip(ip)
        ]
        self.ip = ips[0] if len(ips) > 0 else '127.0.0.1'
        self.server.bind((self.ip, 5050))
        self.server.settimeout(1.0)
        self.server.listen()

        self.clients = []  # {ip, port, client}
        self.status = {'running': True}
        self.thread = Thread(target=self.add_clients(self.status), name='add-clients', daemon=True)
        self.thread.start()

        # gui
        self.background = c.Component(lambda ui: ui.show_div((0, 0), self.args.size, color=(60, 179, 113)))
        self.buttons = {
            'play': c.Button(
                (self.args.size[0] // 2 - 300, 600), (300, 60), 'start game',
                font=f.tnr(23), align=(1, 1), background=(210, 210, 210)
            ),
            'back': c.Button(
                (self.args.size[0] // 2 + 300, 600), (300, 60), 'close room',
                font=f.tnr(23), align=(1, 1), background=(210, 210, 210)
            ),
        }
コード例 #14
0
    def __init__(self, args, room_name, address, server=None):
        # arguments
        self.args = args
        self.mode = None
        self.room_name = room_name
        self.displayed_room_name = (self.room_name[:17] + '......') if len(self.room_name) > 20 else self.room_name
        self.server_ip = address[0]
        self.port = address[1]
        self.server = server

        # client
        self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.client.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.client.settimeout(0.3)
        self.client.connect((self.server_ip, self.port))

        # receive from server
        print('CLIENT ENTER room...')
        self.status = 'wait'
        self.id = None
        self.ip_list = []
        self.thread = Thread(target=self.wait_info, name='wait-info')
        self.thread.start()

        # gui
        self.background = c.Component(lambda ui: ui.show_div((0, 0), self.args.size, color=(60, 179, 113)))
        if self.server is None:
            self.buttons = {
                'back': c.Button(
                    (self.args.size[0] // 2, 630), (600, 80), 'Exit Room', font=f.tnr(25),
                    save='tnr-25', align=(1, 1), background=(210, 210, 210)),
            }
        else:
            self.buttons = {
                'play': c.Button(
                    (self.args.size[0] // 2 - 300, 630), (300, 60), 'Play', font=f.tnr(25),
                    save='tnr-25', align=(1, 1), background=(210, 210, 210)),
                'back': c.Button(
                    (self.args.size[0] // 2 + 300, 630), (300, 60), 'Close Room', font=f.tnr(25),
                    save='tnr-25', align=(1, 1), background=(210, 210, 210)),
            }
        self.player_colors = cl.get_player_colors()
コード例 #15
0
 def __init__(self,
              mode,
              pos,
              *,
              buttons=('save', 'quit'),
              size=(200, 220),
              align=(0, 0)):
     # display
     self.pos = utils.top_left(pos, size, align=align)
     self.size = size
     # game
     self.mode = mode
     self.round = 1
     self.sides = ['red', 'blue'] if self.mode == '1' else [
         'red', 'yellow', 'blue', 'green'
     ]
     self.colors = {
         'red': (255, 0, 0),
         'yellow': (204, 204, 0),
         'blue': (0, 0, 255),
         'green': (0, 255, 0)
     }
     self.current = 0
     self.winner = []
     # buttons
     self.buttons = {
         buttons[0]:
         c.Button((self.pos[0] + self.size[0] // 2, self.pos[1] + 110),
                  (150, 40),
                  buttons[0],
                  font=('src', 'timesnewroman.ttf', 22),
                  align=(1, 0),
                  background=(230, 230, 230)),
         buttons[1]:
         c.Button((self.pos[0] + self.size[0] // 2, self.pos[1] + 160),
                  (150, 40),
                  buttons[1],
                  font=('src', 'timesnewroman.ttf', 22),
                  align=(1, 0),
                  background=(230, 230, 230)),
     }
コード例 #16
0
    def __init__(self, args, mode):
        # arguments
        self.args = args
        self.mode = mode

        # server and client
        self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.ip = [
            ip for ip in socket.gethostbyname_ex(socket.gethostname())[2]
            if utils.is_private_ip(ip)
        ][0]
        self.server.bind((self.ip, 5050))
        self.server.settimeout(1.0)
        self.server.listen()
        self.clients = []  # {ip, port, client}
        self.status = {'running': True}
        self.thread = Thread(target=self.add_clients(self.status),
                             name='add-clients',
                             daemon=True)
        self.thread.start()

        # gui
        self.background = c.Component(lambda ui: ui.show_div(
            (0, 0), self.args.size, color=(60, 179, 113)))
        self.buttons = {
            'play':
            c.Button((self.args.size[0] // 2 - 300, 600), (300, 60),
                     'start game',
                     font=f.tnr(23),
                     align=(1, 1),
                     background=(210, 210, 210)),
            'back':
            c.Button((self.args.size[0] // 2 + 300, 600), (300, 60),
                     'close room',
                     font=f.tnr(23),
                     align=(1, 1),
                     background=(210, 210, 210)),
        }
コード例 #17
0
 def __init__(self, pos, *, buttons=tuple(['quit']), size=(300, 240), align=(0, 0)):
     # display
     self.pos = utils.top_left(pos, size, align=align)
     self.size = size
     self.win = None
     # buttons
     self.buttons = {}
     x = 140
     for name in buttons:
         self.buttons[name] = c.Button(
             (self.pos[0] + self.size[0] // 2, self.pos[1] + x), (200, 40), name,
             font=f.tnr(22), align=(1, 0), background=(230, 230, 230)
         )
         x += 60
コード例 #18
0
 def __init__(self, pos, *, buttons=('continue', 'quit'), size=(300, 240), align=(0, 0)):
     # display
     self.pos = utils.top_left(pos, size, align=align)
     self.size = size
     self.active = False
     # buttons
     self.buttons = {}
     x = 100
     for name in buttons:
         self.buttons[name] = c.Button(
             (self.pos[0] + self.size[0] // 2, self.pos[1] + x), (200, 40), name,
             font=f.tnr(22), align=(1, 0), background=(230, 230, 230)
         )
         x += 60
コード例 #19
0
ファイル: player_1v1.py プロジェクト: cty012/cut-and-slice
 def __init__(self, args, mode):
     self.args = args
     self.mode = mode
     self.threshold = 42
     self.pos = (0, 0)
     self.background = c.Component(lambda ui: ui.show_div(
         (0, 0), self.args.size, color=(60, 179, 113)))
     self.buttons = {
         'p1':
         c.Button((self.args.size[0] // 2 - 280, 260), (360, 180),
                  'Human',
                  font=('src', 'timesnewroman.ttf', 30),
                  align=(1, 1),
                  background=(255, 204, 204)),
         'p2':
         c.Button((self.args.size[0] // 2 + 280, 260), (360, 180),
                  'Human',
                  font=('src', 'timesnewroman.ttf', 30),
                  align=(1, 1),
                  background=(204, 204, 255)),
         '-':
         c.Button((self.args.size[0] // 2 - 300, 460), (50, 70),
                  '',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(0, 1),
                  background=(210, 210, 210)),
         'threshold':
         c.Button((self.args.size[0] // 2, 460), (470, 70),
                  f'Red\'s winning threshold: {self.threshold}',
                  font=('src', 'timesnewroman.ttf', 22),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '+':
         c.Button((self.args.size[0] // 2 + 300, 460), (50, 70),
                  '',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(2, 1),
                  background=(210, 210, 210)),
         'play':
         c.Button((self.args.size[0] // 2, 550), (600, 70),
                  'Play',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         'back':
         c.Button((self.args.size[0] // 2, 640), (600, 70),
                  'Back',
                  font=('src', 'timesnewroman.ttf', 25),
                  align=(1, 1),
                  background=(210, 210, 210)),
     }
コード例 #20
0
ファイル: menu.py プロジェクト: cty012/platformer2
 def __init__(self, args):
     self.args = args
     self.background = c.Component(lambda ui: ui.show_div((0, 0), self.args.size, color=(60, 179, 113)))
     self.buttons = {
         'new': c.Button(
             (self.args.size[0] // 2, 360), (600, 80), 'New Game',
             font=f.tnr(25), align=(1, 1), background=(210, 210, 210)
         ),
         'join': c.Button(
             (self.args.size[0] // 2, 460), (600, 80), 'Join Game',
             font=f.tnr(25), align=(1, 1), background=(210, 210, 210)
         ),
         'quit': c.Button(
             (self.args.size[0] // 2, 560), (600, 80), 'Exit',
             font=f.tnr(25), align=(1, 1), background=(210, 210, 210)
         ),
         'reload_settings': c.Button(
             (self.args.size[0] - 140, self.args.size[1] - 3), (280, 30), '>> Reload settings <<',
             font=f.get_font('courier-prime', 20), align=(1, 2),
             color=(None, (255, 255, 255)), background=None, border=1
         )
     }
     self.settings_reloaded = False
     self.timer = sw.Stopwatch()
コード例 #21
0
 def __init__(self, pos, log, *, size=(200, 100), align=(0, 0)):
     # display
     self.pos = utils.top_left(pos, size, align=align)
     self.size = size
     # log
     self.log = log
     # buttons
     self.buttons = {
         'next':
         c.Button((self.pos[0] + self.size[0] // 2, self.pos[1] + 30),
                  (150, 40),
                  'skip',
                  font=('src', 'timesnewroman.ttf', 22),
                  align=(1, 0),
                  background=(230, 230, 230)),
     }
コード例 #22
0
 def __init__(self, args):
     self.args = args
     self.background = c.Component(lambda ui: ui.show_div((0, 0), self.args.size, color=(60, 179, 113)))
     self.btn_slots = [
         (self.args.size[0] // 2, 150),
         (self.args.size[0] // 2, 270),
         (self.args.size[0] // 2, 390),
         (self.args.size[0] // 2, 510)
     ]
     self.beacon = DiscoveryBeacon('224.0.3.101', list(range(5000, 5100)), b'battleofsnakes')
     self.beacon.start()
     self.rooms = []
     self.buttons = {
         'back': c.Button(
             (self.args.size[0] // 2, 650), (400, 60), 'Back', font=f.tnr(25),
             save='tnr-25', align=(1, 1), background=(210, 210, 210)),
     }
     self.refresh()
     self.timer = sw.Stopwatch()
     self.timer.start()
コード例 #23
0
ファイル: load.py プロジェクト: cty012/cut-and-slice
 def __init__(self, args, mode):
     self.args = args
     self.bar_height = 100
     self.mode = mode
     self.margin = 40
     self.padding = 20
     self.background = c.Component(lambda ui: ui.show_div(
         (0, 0), self.args.size, color=(60, 179, 113)))
     self.saves = [
         SavedFile(file[:file.index('.')], self.mode, (800, 120))
         for file in os.listdir(os.path.join('.', self.mode))
         if file.endswith('.cns' if self.mode == 'save' else '.cnsr')
     ]
     self.pan = 0
     self.button = c.Button(
         (self.args.size[0] // 2, self.args.size[1] - self.bar_height // 2),
         (200, 50),
         'back',
         font=('src', 'timesnewroman.ttf', 22),
         align=(1, 1),
         background=(210, 210, 210))
コード例 #24
0
ファイル: game_menu.py プロジェクト: cty012/py-generals
 def __init__(self,
              args,
              pos,
              size,
              choices=('continue', 'quit'),
              *,
              align=(0, 0)):
     self.args = args
     self.size = size
     self.pos = utils.top_left(pos, self.size, align=align)
     self.buttons = {
         name:
         c.Button((self.pos[0] + self.size[0] // 2, self.pos[1] + pos),
                  (200, 40),
                  name,
                  font=f.tnr(22),
                  border=1,
                  align=(1, 0),
                  background=(230, 230, 230))
         for name, pos in zip(choices,
                              range(100, 100 + 60 * len(choices), 60))
     }
     self.active = False
コード例 #25
0
ファイル: level.py プロジェクト: cty012/platformer2
 def __init__(self, args):
     self.args = args
     self.pos = (0, 0)
     self.background = c.Component(lambda ui: ui.show_div(
         (0, 0), self.args.size, color=(60, 179, 113)))
     self.buttons = {
         '1':
         c.Button((240, 250), (80, 120),
                  '1',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '2':
         c.Button((440, 250), (80, 120),
                  '2',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '3':
         c.Button((640, 250), (80, 120),
                  '3',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '4':
         c.Button((840, 250), (80, 120),
                  '4',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '5':
         c.Button((1040, 250), (80, 120),
                  '5',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '6':
         c.Button((240, 400), (80, 120),
                  '6',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '7':
         c.Button((440, 400), (80, 120),
                  '7',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '8':
         c.Button((640, 400), (80, 120),
                  '8',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '9':
         c.Button((840, 400), (80, 120),
                  '9',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         '10':
         c.Button((1040, 400), (80, 120),
                  '10',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
         'mode':
         c.Button((self.args.size[0] // 2, 540), (200, 60),
                  'single player',
                  font=f.tnr(20),
                  align=(1, 1),
                  background=(210, 210, 210)),
         'back':
         c.Button((self.args.size[0] // 2, 640), (600, 80),
                  'Back',
                  font=f.tnr(25),
                  align=(1, 1),
                  background=(210, 210, 210)),
     }
     self.scores = sr.ScoreReader.load(args.save_path)