def __init__(self, numbertext): # 加载人物头像,并修改宽高 dialog_path = os.path.join("resource1", 'dialog_two.png') temp_dialog = pygame.image.load(dialog_path) dialog_w = temp_dialog.get_width() // 2 dialog_h = temp_dialog.get_height() // 2 dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) font_path = os.path.join("resource1", 'font', '迷你简粗宋.TTF') font = pygame.font.Font(font_path, 20) if numbertext == 1: text = " 欢迎来到find_the_truth游戏! "\ " " \ " 现在是23世纪,你是国家历史研究院的一名研究人员" \ " 你将乘坐时光穿越机前往唐朝寻找历史信息来帮助教" \ " 授研究历史人物杨贵妃的死因,穿越器有时间限制,在" \ " 唐朝,你最多只能去往四个地方"\ " 游戏成功条件为你成功穿越回来并带回有用的资料 Y/N" else: text = "无" blit_text(dialog, text, (50, 25), font) # 设置文章段落格式 # 设置框架的宽高 self.surface = pygame.Surface((dialog_w, dialog_h)) # 默认生成黑图片 # 设置关键色为透明,否则为全黑 self.surface.set_colorkey((0, 0, 0)) self.dialog = dialog
def __init__(self, numbertext): # 加载人物头像,并修改宽高 img_path = os.path.join("resource1", 'head1.tga') temp_header = pygame.image.load(img_path) header_w = temp_header.get_width() // 2 header_h = temp_header.get_height() // 2 header = pygame.transform.scale(temp_header, (header_w, header_h)) dialog_path = os.path.join("resource1", 'dialog.png') temp_dialog = pygame.image.load(dialog_path) dialog_w = temp_dialog.get_width() // 2 dialog_h = temp_dialog.get_height() // 2 dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) font_path = os.path.join("resource1", 'font', '迷你简粗宋.TTF') font = pygame.font.Font(font_path, 18) if numbertext == 1: text = "是的,当时我在马嵬驿,不过我"\ " 认为贵妃脖子上的勒痕不像是 上吊自杀的,像是被人用绳子 弄的,前面的营帐有神奇的力 量能穿越到贵妃的墓冢,说"\ " 不定你能找到更多线索" else: text = "无" blit_text(dialog, text, (20, 25), font) # 设置文章段落格式 # 设置框架的宽高 if header_h > dialog_h: h = header_h else: h = dialog_h w = dialog_w + header_w self.surface = pygame.Surface((w, h)) #默认生成黑图片 # 设置关键色为透明,否则为全黑 self.surface.set_colorkey((0, 0, 0)) self.surface.blit(dialog, (header_w, 0)) self.surface.blit(header, (0, 0))
def __init__(self, width, height, text, loop=False): header_h = 0 header_w = 0 if loop: img_path = os.path.join('resources', 'img', 'npc', '00000.png') temp_header = pygame.image.load(img_path) temp_header.set_colorkey((255, 255, 255)) header_w = temp_header.get_width()//2 header_h = temp_header.get_height()//2 header = pygame.transform.scale(temp_header, (header_w, header_h)) dialog_path = os.path.join('resources', 'img', 'dialog', 'dialog2.png') temp_dialog = pygame.image.load(dialog_path) dialog_w = width dialog_h = height dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) font_path = os.path.join('resources', 'font', 'msyh.ttf') font = pygame.font.Font(font_path, 18) blit_text(dialog, text, (40, 30), font, (255, 255, 254)) h = max(header_h, dialog_h) w = header_w + dialog_w self.surface = pygame.Surface((w, h)) self.surface.set_colorkey((255, 255, 255)) if loop: self.surface.blit(header, (0, 0)) self.surface.blit(dialog, (header_w, 0))
def __init__(self, numbertext): # 加载人物头像,并修改宽高 img_path = os.path.join("resource1", 'head2.tga') temp_header = pygame.image.load(img_path) header_w = temp_header.get_width() // 2 header_h = temp_header.get_height() // 2 header = pygame.transform.scale(temp_header, (header_w, header_h)) dialog_path = os.path.join("resource1", 'dialog.png') temp_dialog = pygame.image.load(dialog_path) dialog_w = temp_dialog.get_width() // 2 dialog_h = temp_dialog.get_height() // 2 dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) font_path = os.path.join("resource1", 'font', '迷你简粗宋.TTF') font = pygame.font.Font(font_path, 18) if numbertext == 1: text = "悄悄告诉你贵妃根本没有死 她被送去了蓬莱,你可以到那里去看看" \ " 去往蓬莱 Y/N" else: text = "无" blit_text(dialog, text, (20, 25), font) # 设置文章段落格式 # 设置框架的宽高 if header_h > dialog_h: h = header_h else: h = dialog_h w = dialog_w + header_w self.surface = pygame.Surface((w, h)) # 默认生成黑图片 # 设置关键色为透明,否则为全黑 self.surface.set_colorkey((0, 0, 0)) self.surface.blit(dialog, (header_w, 0)) self.surface.blit(header, (0, 0))
def __init__(self, text_num): # 1 头像照片 img_path = os.path.join('resource', 'image', 'magicman', 'dialog.png') header = pygame.image.load(img_path) header_w = header.get_width() header_h = header.get_height() # # 头像缩小一半 参数:(原图像,(size)) # header = pygame.transform.scale(temp_header, (header_w, header_h)) # 2 对话框图片 dialog_path = os.path.join('resource', 'image', 'dialoguebox.png') dialog = pygame.image.load(dialog_path) dialog_w = dialog.get_width() dialog_h = dialog.get_height() # # 缩小一半 # dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) # 3 绘制汉字 font_path = os.path.join('resource', 'font', '迷你简粗宋.TTF') # 根据字体文件创建一个字体(Font)对象 font相当于是一个字体 font = pygame.font.Font( font_path, 18 ) # font类详解:https://blog.csdn.net/qq_41556318/article/details/86303502 if text_num == 1: text = "年轻人,也许我能告诉你点什么...\n按y键继续。" elif text_num == 2: text = "冒险者,成功除了勇气,往往运气是走向成功的第一步。 只有通过运气之神考验的人才能继续寻宝之旅。 你需要先在宝箱中找到开封的宝剑,小心隐身的幽灵哦。 但这并没有结束," \ "找到宝剑之后,你需要在四扇大门中找到真正的宝藏之门。 在探索未知的路上,你可能会遇到许多危险,在尝试打开宝藏之门之前,请谨慎! 记住千万别碰到岛屿上的其他人类,他们将吃掉你,祝你好运~" elif text_num == 3: # 场景2 text = "幸运的冒险者,你来到了这一关,代表你离成功又进了一步。 在走向成功的道路上,运气虽然重要,但光有运气是走不长远的。 同时也需要拥有面对成功路上所有荆棘的勇气。 "\ "注意,千万别碰到勇气之神为了考验寻宝者而留下的地刺,沟壑和宝藏守护者们, 他们会阻止你获得宝藏。 加油,年轻人!\n按y键继续..." elif text_num == 4: # 场景3 text = "勇敢的冒险者,恭喜你已经通过了宝藏前两关 -- 运气与勇气的考验。 再通过坚持之神的考验你将能获得珍贵的宝藏。 本关卡由于受到坚持之神的重力颠倒,你将会一直向下跌,你需要不断的跳跃, 防止自己落入骷髅大军的虎口,同时本关卡的法师塔的观察范围也极广,如果被他 发现,你将被塔上的法师用来祭天,最后记得绕开蝙蝠守护灵和空中的机关陷阱。 按y键继续..." """ 遇空格换行 参数: 1. surface 2. 文本 3. 文本显示的左上角位置 4. 字体 """ blit_text(dialog, text, (130, 10), font) # 4 生成surface并绘制 h = header_h w = dialog_w self.surface = pygame.Surface((w, h), pygame.SRCALPHA) # 黑图片 fill # 5 设置关键色,形成透明图片 # self.surface.set_colorkey((0, 0, 0)) # pygame.SRCALPHA # 6 把头像 对话框绘制上去 self.surface.blit(dialog, (0, 0)) self.surface.blit(header, (0, 0))
def __init__(self, text_num): # 1 头像照片 img_path = os.path.join('resource', 'image', 'door.png') header = pygame.image.load(img_path) header_w = header.get_width() header_h = header.get_height() # # 头像缩小一半 参数:(原图像,(size)) # header = pygame.transform.scale(temp_header, (header_w, header_h)) # 2 对话框图片 dialog_path = os.path.join('resource', 'image', 'dialoguebox.png') dialog = pygame.image.load(dialog_path) dialog_w = dialog.get_width() dialog_h = dialog.get_height() # # 缩小一半 # dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) # 3 绘制汉字 font_path = os.path.join('resource', 'font', '迷你简粗宋.TTF') # 根据字体文件创建一个字体(Font)对象 font相当于是一个字体 font = pygame.font.Font(font_path, 18) # font类详解:https://blog.csdn.net/qq_41556318/article/details/86303502 if text_num == 1: text = "只有开封的宝剑才能打开通往宝藏的大门,你将受到神的制裁,生命值减20...\n禁忌之门从此封印直到你找到开封的宝剑..." elif text_num == 2: text = "很不幸,神并没有眷顾你,你将受到神的制裁,生命值减20...\n禁忌之门破碎..." elif text_num == 3: text = "禁忌之门已封印..." elif text_num == 4: text = "禁忌之门已破碎..." """ 遇空格换行 参数: 1. surface 2. 文本 3. 文本显示的左上角位置 4. 字体 """ blit_text(dialog, text, (130, 10), font) # 4 生成surface并绘制 h = header_h w = dialog_w self.surface = pygame.Surface((w, h), pygame.SRCALPHA) # 黑图片 fill # 5 设置关键色,形成透明图片 # self.surface.set_colorkey((0, 0, 0)) # pygame.SRCALPHA # 6 把头像 对话框绘制上去 self.surface.blit(dialog, (0, 0)) self.surface.blit(header, (0, 0))
def __init__(self, numbertext): dialog_path = os.path.join("resource1", 'dialog_one.png') temp_dialog = pygame.image.load(dialog_path) dialog_w = temp_dialog.get_width() // 2 dialog_h = temp_dialog.get_height() // 2 self.dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) font_path = os.path.join("resource1", 'font', '迷你简粗宋.TTF') font = pygame.font.Font(font_path, 18) if numbertext == 1: text = "是否进入墓穴 Y/N" else: text = "无" blit_text(self.dialog, text, (20, 25), font) # 设置文章段落格式 # 设置框架的宽高 self.surface = pygame.Surface((dialog_w, dialog_h)) #默认生成黑图片 # 设置关键色为透明,否则为全黑 self.surface.set_colorkey((0, 0, 0))
def __init__(self, numbertext): # 加载人物头像,并修改宽高 if numbertext==1: img_path = os.path.join("resource1",'1029-7732.png') elif numbertext==2: img_path = os.path.join("resource1", 'villager2.png') temp_header = pygame.image.load(img_path) header_w = temp_header.get_width() // 2 header_h = temp_header.get_height() // 2 header = pygame.transform.scale(temp_header,(header_w,header_h)) dialog_path = os.path.join("resource1", 'dialog.png') temp_dialog = pygame.image.load(dialog_path) dialog_w = temp_dialog.get_width() // 2 dialog_h = temp_dialog.get_height() // 2 dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) font_path = os.path.join("resource1",'font','迷你简粗宋.TTF') font = pygame.font.Font(font_path,18) if numbertext==1: text = "你说杨贵妃的死因吗?我猜原 来服侍过她的宫女知道,那个 宫女现在在宫殿中"\ " 是否去往宫殿 Y/N" else: text = "你可以去桃花谷看看,她的墓冢 在那里,说不定能找到些什么"\ " 是否去往桃花谷 Y/N" blit_text(dialog,text,(20,25),font) # 设置文章段落格式 # 设置框架的宽高 if header_h > dialog_h: h = header_h else: h = dialog_h w = dialog_w + header_w self.surface = pygame.Surface((w,h)) #默认生成黑图片 # 设置关键色为透明,否则为全黑 self.surface.set_colorkey((0,0,0)) self.surface.blit(dialog,(header_w, 0)) self.surface.blit(header,(0,0))
def __init__(self, numbertext): # 加载人物头像,并修改宽高 img_path = os.path.join("resource1", 'professor_head.png') temp_header = pygame.image.load(img_path) header_w = temp_header.get_width() // 2 header_h = temp_header.get_height() // 2 header = pygame.transform.scale(temp_header, (header_w, header_h)) dialog_path = os.path.join("resource1", 'dialog.png') temp_dialog = pygame.image.load(dialog_path) dialog_w = temp_dialog.get_width() // 2 dialog_h = temp_dialog.get_height() // 2 dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) font_path = os.path.join("resource1", 'font', '迷你简粗宋.TTF') font = pygame.font.Font(font_path, 18) if numbertext == 1: text = "研究员,你好,教授拜托你穿 越到唐朝去,找到马嵬驿兵变杨 贵妃死亡的真相"\ " 你准备好进入时光机了吗?Y/N" elif numbertext == 2: text = "感谢你带回这封信,这对我们 的研究帮助很大" \ "谢谢你 Y/N" else: text = "很遗憾你没有带回有用的研究 信息 Y/N" blit_text(dialog, text, (20, 25), font) # 设置文章段落格式 # 设置框架的宽高 if header_h > dialog_h: h = header_h else: h = dialog_h w = dialog_w + header_w self.surface = pygame.Surface((w, h)) #默认生成黑图片 # 设置关键色为透明,否则为全黑 self.surface.set_colorkey((0, 0, 0)) self.surface.blit(dialog, (header_w, 0)) self.surface.blit(header, (0, 0))
def __init__(self, numbertext): # 加载人物头像,并修改宽高 dialog_path = os.path.join("resource1", 'dialog_one.png') temp_dialog = pygame.image.load(dialog_path) dialog_w = temp_dialog.get_width() // 2 dialog_h = temp_dialog.get_height() // 2 dialog = pygame.transform.scale(temp_dialog, (dialog_w, dialog_h)) font_path = os.path.join("resource1", 'font', '迷你简粗宋.TTF') font = pygame.font.Font(font_path, 18) if numbertext == 1: text = "由于时光机故障,你穿越到了安史之乱之后"\ " 你决定去询问前面的村民关于杨贵妃的死因"\ " Y/N" else: text = "无" blit_text(dialog, text, (20, 25), font) # 设置文章段落格式 # 设置框架的宽高 self.surface = pygame.Surface((dialog_w, dialog_h)) # 默认生成黑图片 # 设置关键色为透明,否则为全黑 self.surface.set_colorkey((0, 0, 0)) self.surface.blit(dialog, (0, 0))