返回

基于skulpt的第三方模块: skulpt_pygame_zero

前端

现在,您可以使用仅需几个字节的 skulpt 实现的 pygame_zero 库来运行代码。

限制

它还不支持 pygame_zero 中的所有内容,主要是因为 pygame_zero 代码中有一些 cffi 类型的引用, skulpt 中没有 cffi 的实现。对于 pygame 部分,skulpt_pygame_zero 中已经包含了绝大部分的函数了,当然一些像是 _HAVE_TOUCH 这样的定义还没有被实现,虽然这些库的函数没有全部被支持,但是通过这个库您可以运行绝大部分的 pygame_zero 库里的代码。

为什么我要这么做

因为我真的很喜欢 pygame_zero 的简单,可以使用它来做一些很酷的作品。虽然 p5.js 是一个不错的选择,但它还是有些我所需要的功能。所以,尝试一下 skulpt_pygame_zero 库,看看到底可以把这门语言做到什么程度。

安装

您可以通过以下方式安装这个库:

pip install skulpt_pygame_zero

用法

您可以导入 skulpt_pygame_zero 库并使用它来运行 pygame_zero 代码。

import skulpt_pygame_zero as pygame_zero

def setup():
    pygame_zero.init()

def draw():
    pygame_zero.screen.fill((0, 0, 0))

def main():
    setup()
    while True:
        draw()

if __name__ == "__main__":
    main()

您还可以使用 skulpt_pygame_zero 库来创建一个 pygame_zero 项目。

skulpt_pygame_zero new my_project

这将在当前目录中创建一个名为 my_project 的新 pygame_zero 项目。

有什么帮助

当您在使用 skulpt_pygame_zero 库时遇到问题,您可以通过以下方式获取帮助:

  • 阅读文档。
  • GitHub 上提交一个问题。
  • Stack Overflow 上提问。

关于

我是此项目的唯一贡献者,如果您希望为这个项目做出贡献,欢迎您加入。

许可

此项目在 MIT 许可下发布。

代码示例

以下是一些使用 skulpt_pygame_zero 库编写的代码示例:

支持的函数

  • Surface
  • init
  • quit
  • set_mode
  • get_size
  • fill
  • blit
  • pygame.key
  • get_pressed
  • pygame.mouse
  • get_pos
  • pygame.time
  • set_timer
  • pygame.font
  • SysFont
  • render
  • pygame.draw
  • line
  • rect
  • circle

不支持的函数

  • cffi

总结

skulpt_pygame_zero 库是一个允许您使用 skulpt 来运行 pygame_zero 代码的库。它还允许您创建一个 pygame_zero 项目。这个库仍在开发中,但它已经可以运行绝大部分的 pygame_zero 代码。

如果您对 skulpt_pygame_zero 库有任何问题,请随时提问。

如果您喜欢 skulpt_pygame_zero 库,请给我一颗星!

代码示例

import pygame_zero
from pygame_zero import colors

pygame_zero.init()

surface = pygame_zero.Screen(640, 480)
surface.fill(colors.white)

player = pygame_zero.Rect(320, 240, 50, 50)
player.color = colors.blue

ball = pygame_zero.Rect(320, 240, 10, 10)
ball.color = colors.red

x_speed = 3
y_speed = 3

while True:
    for event in pygame_zero.get_events():
        if event.type == pygame_zero.QUIT:
            pygame_zero.quit()

    if player.x < 0 or player.x > 640 - player.width:
        x_speed = -x_speed

    if player.y < 0 or player.y > 480 - player.height:
        y_speed = -y_speed

    if ball.colliderect(player):
        y_speed = -y_speed

    ball.x += x_speed
    ball.y += y_speed

    surface.fill(colors.white)
    surface.draw.rect(player)
    surface.draw.rect(ball)

    pygame_zero.update()

这个代码是一个简单的 pygame_zero 游戏,其中一个玩家控制一个蓝色的矩形,球会反弹这个矩形。

希望您能喜欢 skulpt_pygame_zero 库,并用它来制作出很棒的游戏!