def __init__(self): # 初始化 self.clock = pygame.time.Clock() self.gameOver = False self.screen = screen # 创建游戏对象列表 self.gameObjects = [] # 载入背景 self.bg = bg.Bg() self.gameObjects.append(self.bg) # 载入玩家 self.me = player.Player(width, height) self.gameObjects.append(self.me) self.me.group.add(self.me) # 载入岩浆 self.lavalist = [] for i in range(11): self.lavalist.append( pygame.image.load('img/lavalist/' + str(i) + '.png').convert_alpha()) self.lava = lava.Lava(imglist=self.lavalist) self.gameObjects.append(self.lava) self.lava.group.add(self.lava) # 载入地面 self.landlist = [] for i in range(11): self.landlist.append( pygame.image.load('img/landlist/' + str(i) + '.png').convert_alpha()) self.land = land.Land(imglist=self.landlist) self.gameObjects.append(self.land) self.land.group.add(self.land) # 载入游戏控制器 self.gameObjects.append(GameController())
def initialize_world(screen_size: int, land_radius: int): land_pack = Land_package(land=ld.Land(land_radius, screen_size, 20), color=pg.Color(255, 255, 255)) life_packs = {} pos1 = land_pack.land.map[(0, 0)] l1 = lv.Living('Adam', 'Adam', pos1) l1.state = lv.LivingState.SEARCHING p10 = list(l1.position.neighbors.values())[0] p11 = list(p10.neighbors.values())[0] p12 = list(p11.neighbors.values())[0] p13 = list(p12.neighbors.values())[0] l1.path = [p10, p11, p12, p13] life_packs[l1] = Living_package(living = l1, color = pg.Color(0, 255, 0),\ img = living_img(l1.uid, land_pack.land.terrain_size)) pos2 = list(land_pack.land.map.values())[-10] l2 = lv.Living('Eve', 'Eve', pos2) life_packs[l2] = Living_package(living=l2, color=pg.Color(255, 0, 0), img=living_img( l2.uid, land_pack.land.terrain_size)) pos3 = list(land_pack.land.map.values())[12] l3 = lv.Living('Plissken', 'Plissken', pos3) life_packs[l3] = Living_package(living=l3, color=pg.Color(0, 0, 255), img=living_img( l3.uid, land_pack.land.terrain_size)) return land_pack, life_packs
def init_random_land(self): self.map = [] for i in range(0, self.mapx): r = [] for b in range(0, self.mapy): terrain = 0 resources = [] new_land = land.Land(i, b, terrain, resources) new_land.randomize_resources() r.append(new_land) self.map.append(r)
def init_pics(self): # 加载背景与地面 self.bg_black = pygame.image.load("assets/images/bg_black.png")\ .convert_alpha() self.background_list = [ pygame.image.load("assets/images/bg_day.png").convert(), pygame.image.load("assets/images/bg_night.png").convert() ] self.land = land.Land(self.bg_size) # 游戏开始画面 # 游戏标题 self.title = pygame.image.load("assets/images/start/title.png")\ .convert_alpha() self.title_rect = self.title.get_rect() self.title_rect.left = (self.width - self.title_rect.width) // 2 self.title_rect.top = 80 # 开始按钮 self.start_image = pygame.image.load("assets/images/start/start.png")\ .convert_alpha() self.start_image_rect = self.start_image.get_rect() self.start_image_rect.left = (self.width - self.start_image_rect.width) // 2 self.start_image_rect.top = 240 # 排行榜按钮 self.score_image = pygame.image.load("assets/images/start/score.png")\ .convert_alpha() self.score_image_rect = self.score_image.get_rect() self.score_image_rect.left = (self.width - self.score_image_rect.width) // 2 self.score_image_rect.top = 310 # 设置按钮 self.setting_image = pygame.image.load("assets/images/start/setting.png")\ .convert_alpha() self.setting_image_rect = self.setting_image.get_rect() self.setting_image_rect.left = (self.width - self.setting_image_rect.width - 10) self.setting_image_rect.top = 10 # 排行画面 # 奖杯 self.cups = [ pygame.image.load( "assets/images/rank/gold_cup.png").convert_alpha(), pygame.image.load( "assets/images/rank/silver_cup.png").convert_alpha(), pygame.image.load( "assets/images/rank/brooze_cup.png").convert_alpha() ] self.cup_rects = [(50, 120), (50, 200), (50, 280)] # 字体 self.rank_font = pygame.font.Font("assets/font/hanyihaiyun.ttf", 24) # 设置画面 # 设置面板 self.board_image = pygame.image.load("assets/images/board.png")\ .convert_alpha() self.board_rect = self.board_image.get_rect() self.board_rect.top = 20 self.board_rect.left = (self.width - self.board_rect.width) // 2 # 左右箭头 self.array_right = pygame.image.load("assets/images/start/array.png")\ .convert_alpha() self.array_left = pygame.transform.rotate(self.array_right, 180) # 设置字体 self.setting_font = pygame.font.Font("assets/font/hanyihaiyun.ttf", 16) # 小鸟设置 self.random_text = self.setting_font.render("随机", True, (0, 0, 0)) self.custom_text = self.setting_font.render("自定义", True, (0, 0, 0)) # 随机小鸟设置 self.random_bird = [ pygame.image.load( "assets/images/birds/random_0.png").convert_alpha(), pygame.image.load( "assets/images/birds/random_1.png").convert_alpha(), pygame.image.load( "assets/images/birds/random_2.png").convert_alpha() ] # 自定义小鸟设置 self.body_text = self.setting_font.render("身体", True, (0, 0, 0)) self.mouth_text = self.setting_font.render("嘴", True, (0, 0, 0)) self.R_text = self.setting_font.render("R", True, (0, 0, 0)) self.G_text = self.setting_font.render("G", True, (0, 0, 0)) self.B_text = self.setting_font.render("B", True, (0, 0, 0)) self.customize_bird = setting.Customize_bird() # 背景设置 self.bg_text = self.setting_font.render("背景:", True, (0, 0, 0)) self.bg_text_list = [ self.setting_font.render("白天", True, (0, 0, 0)), self.setting_font.render("夜晚", True, (0, 0, 0)), self.random_text ] # 音量设置 self.volume_text = self.setting_font.render("音量:", True, (0, 0, 0)) self.sound_text = self.setting_font.render("音效:", True, (0, 0, 0)) # 游戏画面 # 准备图片 self.ready_image = pygame.image.load("assets/images/game/ready.png")\ .convert_alpha() self.ready_rect = self.ready_image.get_rect() self.ready_rect.left = (self.width - self.ready_rect.width) // 2 self.ready_rect.top = self.height * 0.12 # 点击开始图片 self.press_start_image = pygame.image.load("assets/images/game/tutorial.png")\ .convert_alpha() self.press_start_rect = self.press_start_image.get_rect() self.press_start_rect.left = (self.width - self.press_start_rect.width) // 2 self.press_start_rect.top = self.height * 0.5 # 暂停按钮 self.pause_image = pygame.image.load("assets/images/game/pause.png")\ .convert_alpha() self.pause_image_rect = self.pause_image.get_rect() self.pause_image_rect.left = (self.width - self.pause_image_rect.width - 10) self.pause_image_rect.top = 10 # 继续按钮 self.resume_image = pygame.image.load("assets/images/game/resume.png")\ .convert_alpha() self.resume_image_rect = self.resume_image.get_rect() self.resume_image_rect.left = (self.width - self.resume_image_rect.width - 10) self.resume_image_rect.top = 10 # 分享画面 # 复制到剪贴板 self.copy_image = pygame.image.load("assets/images/share/copy.png")\ .convert_alpha() self.copy_rect = self.copy_image.get_rect() self.copy_rect.left = (self.width - self.copy_rect.width) // 2 self.copy_rect.top = 110 # 保存至本地 self.save_image = pygame.image.load("assets/images/share/save.png")\ .convert_alpha() self.save_rect = self.save_image.get_rect() self.save_rect.left = (self.width - self.save_rect.width) // 2 self.save_rect.top = 200 # 使用邮件分享 self.email_image = pygame.image.load("assets/images/share/email.png")\ .convert_alpha() self.email_rect = self.email_image.get_rect() self.email_rect.left = (self.width - self.email_rect.width) // 2 self.email_rect.top = 290 # 返回 self.back_image = pygame.image.load("assets/images/share/back.png")\ .convert_alpha() self.back_rect = self.back_image.get_rect() self.back_rect.left = (self.width - self.back_rect.width) // 2 self.back_rect.top = 380 # 游戏结束画面 # 游戏结束图片 self.gameover_image = pygame.image.load("assets/images/end/gameover.png")\ .convert_alpha() self.gameover_image_rect = self.gameover_image.get_rect() self.gameover_image_rect.left = (self.width - self.gameover_image_rect.width) // 2 self.gameover_image_rect.top = self.height * 0.12 # 得分面版 self.score_panel = pygame.image.load("assets/images/end/score_panel.png")\ .convert_alpha() self.score_panel_rect = self.score_panel.get_rect() self.score_panel_rect.left = (self.width - self.score_panel_rect.width) // 2 self.score_panel_rect.top = self.height * 0.24 # 奖牌图片 self.white_medal = pygame.image.load("assets/images/end/medal0.png")\ .convert_alpha() self.gold_medal = pygame.image.load("assets/images/end/medal1.png")\ .convert_alpha() self.silver_medal = pygame.image.load("assets/images/end/medal2.png")\ .convert_alpha() self.brooze_medal = pygame.image.load("assets/images/end/medal3.png")\ .convert_alpha() self.medal_rect = (57, 165) # 新纪录图片 self.new_image = pygame.image.load("assets/images/end/new.png")\ .convert_alpha() self.new_rect = self.new_image.get_rect() self.new_rect.left, self.new_rect.top = 150, 139 # 再来一次图片 self.retry_image = pygame.image.load("assets/images/end/retry.png")\ .convert_alpha() self.retry_rect = self.retry_image.get_rect() self.retry_rect.left = (self.width - self.retry_rect.width) // 2 self.retry_rect.top = self.height * 0.5 # 分享按钮 self.share_image = pygame.image.load("assets/images/end/share.png")\ .convert_alpha() self.share_rect = self.share_image.get_rect() self.share_rect.left = (self.width - self.share_rect.width) // 2 self.share_rect.top = self.retry_rect.top + 30 # 主菜单按钮 self.menu_image = pygame.image.load("assets/images/end/menu.png")\ .convert_alpha() self.menu_rect = self.menu_image.get_rect() self.menu_rect.left = (self.width - self.menu_rect.width) // 2 self.menu_rect.top = self.retry_rect.top + 60
# -*- coding: UTF-8 -*- from tkinter import * import win32ui import sqlite3 import sys import os import land land1 = land.Land() land1.main() def build1(): def destory(): top.destroy() top = Toplevel() top.title('保存') lab = Label(top, text='文件名') lab.grid(row=0, column=0, sticky='w') entry = Entry(top) entry.grid(row=0, column=1) button = Button(top, text='确认', command=destory) button.grid(row=0, column=2) filename = entry.get() fp = open(filename, 'a+') root.title(filename) fp.close() def build():