Skip to content

Mogui-Hao/PygameNode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PygameNode

zread

使用 Node 结构管理Pygame资源, 以便快速制作/管理游戏.

还未开发完成

1. 快速开始

使用 pip install pygame_node 安装这个库.

接着导入库并写一个简单的示例

# 导入 pygame 和 pygame_node 库
import pygame
from pygame_node import *

# 定义作为屏幕大小的变量
SCREEN_WIDTH, SCREEN_HEIGHT = 1200, 700

# 创建一个场景
class MainScene(BaseScene):
    def __init__(self):
        # 初始化场景, 名称为Main
        super().__init__("Main")

# pygame 初始化
pygame.init()

# 创建场景管理器, 把场景传入创建管理器里
main_scene = MainScene()
manager = SceneManager(main_scene)

# 创建屏幕对象和时钟对象
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT), pygame.HWSURFACE | pygame.DOUBLEBUF, vsync=True)
clock = pygame.time.Clock()

# 切换到 Main 场景
manager.switch("Main")

# 创建运行状态变量
running = True
while running:
    # 获取事件
    events = pygame.event.get()
    for event in events:
        # 程序退出
        if event.type == pygame.QUIT:
            running = False
            break
    
    # 场景处理事件
    manager.events(events)

    # 场景更新
    manager.update(clock.tick(0) / 1000.0)
    
    # 绘制场景
    manager.draw(screen)
    pygame.display.flip()

pygame.quit()

1.1 场景

可在场景对象里添加初始化函数

from pygame_node import *
from pygame.math import Vector3


class MainScene(BaseScene):
    def __init__(self):
        super().__init__("Main")

    # 定义初始化函数
    def init(self, params: 'BaseScene' = None):
        super().init(params)
        # 创建一个文本 "It's a Text Node." 的 TextNode
        # 位置在Vector3(200, 200, 0)
        text = Text("It's a Text Node.", position=Vector3(200, 200, 0), font=Font(size=72))

        # 添加到场景中
        self.addNode(text)

font 参数如果在 pygame.init()后定义了全局字体就可以不传

import pygame
from pygame_node import *

pygame.init()
Node.font = Font(size=72)   # 定义全局字体默认字体

运行后文字和背景是一个色的, 所以要修改背景色或文字颜色后才能看到.

# 在MainScene中添加, 修改背景色为绿色
def draw(self, screen: Surface):
    screen.fill((0x84, 0xC6, 0x69))
    super().draw(screen)

文字颜色可以通过以下代码更改

# 修改文本颜色为白色
text.style.color = Color(255, 255, 255)

可以通过设置文字的 style 不同值达到不同效果

text.style.shadow.enable = True                 # 启用影子
text.style.shadow.color = Color(64, 128, 255)   # 修改影子颜色

text.style.stroke.enable = True                 # 启用边缘
text.style.stroke.size = 0.5                    # 修改边缘大小

文本样式不止这些, 详情.不同效果可以同时使用

About

Managing Pygame Resources Using Node Structures

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages