gpt4 book ai didi

python - cx_Freeze 不适用于 pygame(已尝试 "import pygame._view")

转载 作者:行者123 更新时间:2023-11-28 22:56:28 25 4
gpt4 key购买 nike

我正在尝试使用以下 setup.py:

from cx_Freeze import setup, Executable
exe = Executable(
script="stars.pyw",
)

setup(
executables = [exe]
)

构建以下 Pygame 示例:

import random, math, pygame
import pygame._view
from pygame.locals import *

#constants
WINSIZE = [640, 480]
WINCENTER = [320, 240]
NUMSTARS = 150


def init_star():
"creates new star values"
dir = random.randrange(100000)
velmult = random.random()*.6+.4
vel = [math.sin(dir) * velmult, math.cos(dir) * velmult]
return vel, WINCENTER[:]


def initialize_stars():
"creates a new starfield"
stars = []
for x in range(NUMSTARS):
star = init_star()
vel, pos = star
steps = random.randint(0, WINCENTER[0])
pos[0] = pos[0] + (vel[0] * steps)
pos[1] = pos[1] + (vel[1] * steps)
vel[0] = vel[0] * (steps * .09)
vel[1] = vel[1] * (steps * .09)
stars.append(star)
move_stars(stars)
return stars


def draw_stars(surface, stars, color):
"used to draw (and clear) the stars"
for vel, pos in stars:
pos = (int(pos[0]), int(pos[1]))
surface.set_at(pos, color)


def move_stars(stars):
"animate the star values"
for vel, pos in stars:
pos[0] = pos[0] + vel[0]
pos[1] = pos[1] + vel[1]
if not 0 <= pos[0] <= WINSIZE[0] or not 0 <= pos[1] <= WINSIZE[1]:
vel[:], pos[:] = init_star()
else:
vel[0] = vel[0] * 1.05
vel[1] = vel[1] * 1.05


def main():
"This is the starfield code"
#create our starfield
random.seed()
stars = initialize_stars()
clock = pygame.time.Clock()
#initialize and prepare screen
pygame.init()
screen = pygame.display.set_mode(WINSIZE)
pygame.display.set_caption('Stars')
white = 255, 240, 200
black = 20, 20, 40
screen.fill(black)

#main game loop
done = 0
while not done:
draw_stars(screen, stars, black)
move_stars(stars)
draw_stars(screen, stars, white)
pygame.display.update()
for e in pygame.event.get():
if e.type == QUIT or (e.type == KEYUP and e.key == K_ESCAPE):
done = 1
break
elif e.type == MOUSEBUTTONDOWN and e.button == 1:
WINCENTER[:] = list(e.pos)
clock.tick(50)


# if python says run, then we should run
if __name__ == '__main__':
main()

重要的是要说明我使用的是 Pygame 非官方版本:pygame-1.9.2pre.win-amd64-py3.3.‌exe

但脚本在编译前工作正常。

最佳答案

重新发布作为答案:

这是我们偶尔会看到的错误,但还没有抽出时间来修复。您可以通过在脚本中添加一行来解决它:

import re

关于python - cx_Freeze 不适用于 pygame(已尝试 "import pygame._view"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15595224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com