Python文字向RPG


前几天看到自己四年前看过的文章,闲来无事,也做了一个玩玩

https://blog.csdn.net/abcdu472390947/article/details/84589224/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主类

'''
主程序入口
'''
import sys
import time
from collections import deque

import pygame

from MainMenu import main_menu_scr
    
def init():
    pygame.init()
    
    clock = pygame.time.Clock()
    clock.tick(30)
    screen = pygame.display.set_mode((1024, 512))
    pygame.display.set_caption('TextRPG')
    return screen

if __name__ == "__main__":
    pages = deque()
    addpages = {
   
   
    }
    
    screen = init()
    main_menu = main_menu_scr(addpages)
    pages.append(main_menu)
    args = []
    while len(pages)>0:
        args = pages[-1].disp(screen, pages, addpages, args)
    pygame.quit()
    sys.exit()

主菜单

'''
主菜单类
'''
import pygame

from WorldMap import WorldMap_page

class main_menu_scr:
    def __init__(self, addpages:dict) -> None:
        addpages[self] = [WorldMap_page(addpages)]
        pass
    
    def disp(self, screen, pages, addpages:dict, *args):
        options = ["开始游戏", "结束游戏"]
        selected_option = 0


        running = True
        game_started = False

        while running:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    exit()
                elif event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_UP:
                        selected_option -= 1
                    elif event.key == pygame.K_DOWN:
                        selected_option += 1
                    elif event.key == pygame.K_SPACE:
                        if selected_option == 0 and not game_started:
                            # print("游戏开始了")
                            game_started = True
                            pages.append(addpages[self][0])
                            return
                        elif selected_option == 1:
                            running = False

            selected_option %= len(options)

            # 清屏
            screen.fill((0, 0, 0))

            # 显示主菜单
            for i in range(len(options)):
                if i == selected_option:
                    text = "-> " + options[i] + " <-"
                    color = (255, 255, 255)  # 白色
                else:
                    text = options[i]
                    color = (128, 128, 128)  # 灰色

                font = pygame.font.SysFont('simHei', 32)  # 使用系统中可用的 "simHei" 字体
                text_surface = font.render(text, True, color)
                text_rect = text_surface.get_rect(center=(screen.get_size()[0]/2, screen.get_size()[1]/2 + i * 50))
                screen.blit(text_surface, text_rect)

            pygame.display.flip()

大地图

import random

import pygame

from Village import village_page
from Battle import BattleSrc

class WorldMap_page:
    def
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值