求解答 python中无报错却不能运行

这篇具有很好参考价值的文章主要介绍了求解答 python中无报错却不能运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

得到了

===================== RESTART: C:/Users/29785/Desktop/祝福.py ====================
pygame 2.5.2 (SDL 2.28.3, Python 3.12.1)
Hello from the pygame community. https://www.pygame.org/contribute.html

这个结果

求大佬指点迷津

import pygame
from random import randint, uniform, choice
import math
 
vector = pygame.math.Vector2
gravity = vector(0, 0.3)
DISPLAY_WIDTH = DISPLAY_HEIGHT = 800
 
 
trail_colours = [(45, 45, 45), (60, 60, 60), (75, 75, 75), (125, 125, 125), (150, 150, 150)]
dynamic_offset = 1
static_offset = 3
 
 
 
class Firework:
    def __init__(self):
        # 随机颜色
        self.colour = (randint(0, 255), randint(0, 255), randint(0, 255))
        self.colours = (
            (randint(0, 255), randint(0, 255), randint(0, 255)),
            (randint(0, 255), randint(0, 255), randint(0, 255)),
            (randint(0, 255), randint(0, 255), randint(0, 255)))
        self.firework = Particle(randint(0, DISPLAY_WIDTH), DISPLAY_HEIGHT, True,
                                 self.colour)  # Creates the firework particle
        self.exploded = False
        self.particles = []
        self.min_max_particles = vector(100, 225)
 
    def update(self, win):  # called every frame
        if not self.exploded:
            self.firework.apply_force(gravity)
            self.firework.move()
            for tf in self.firework.trails:
                tf.show(win)
 
            self.show(win)
 
            if self.firework.vel.y >= 0:
                self.exploded = True
                self.explode()
        else:
            for particle in self.particles:
                particle.apply_force(vector(gravity.x + uniform(-1, 1) / 20, gravity.y / 2 + (randint(1, 8) / 100)))
                particle.move()
                for t in particle.trails:
                    t.show(win)
                particle.show(win)
 
    def explode(self):
        # amount 数量
        amount = randint(self.min_max_particles.x, self.min_max_particles.y)
        for i in range(amount):
            self.particles.append(Particle(self.firework.pos.x, self.firework.pos.y, False, self.colours))
 
    def show(self, win):
        pygame.draw.circle(win, self.colour, (int(self.firework.pos.x), int(self.firework.pos.y)), self.firework.size)
 
    def remove(self):
        if self.exploded:
            for p in self.particles:
                if p.remove is True:
                    self.particles.remove(p)
 
            if len(self.particles) == 0:
                return True
            else:
                return False
 
 
class Particle:
    def __init__(self, x, y, firework, colour):
        self.firework = firework
        self.pos = vector(x, y)
        self.origin = vector(x, y)
        self.radius = 20
        self.remove = False
        self.explosion_radius = randint(5, 18)
        self.life = 0
        self.acc = vector(0, 0)
        # trail variables
        self.trails = []  # stores the particles trail objects
        self.prev_posx = [-10] * 10  # stores the 10 last positions
        self.prev_posy = [-10] * 10  # stores the 10 last positions
 
        if self.firework:
            self.vel = vector(0, -randint(17, 20))
            self.size = 5
            self.colour = colour
            for i in range(5):
                self.trails.append(Trail(i, self.size, True))
        else:
            self.vel = vector(uniform(-1, 1), uniform(-1, 1))
            self.vel.x *= randint(7, self.explosion_radius + 2)
            self.vel.y *= randint(7, self.explosion_radius + 2)
            # 向量
            self.size = randint(2, 4)
            self.colour = choice(colour)
            # 5 个 tails总计
            for i in range(5):
                self.trails.append(Trail(i, self.size, False))
 
    def apply_force(self, force):
        self.acc += force
 
    def move(self):
        if not self.firework:
            self.vel.x *= 0.8
            self.vel.y *= 0.8
        self.vel += self.acc
        self.pos += self.vel
        self.acc *= 0
 
        if self.life == 0 and not self.firework:  # check if particle is outside explosion radius
            distance = math.sqrt((self.pos.x - self.origin.x) ** 2 + (self.pos.y - self.origin.y) ** 2)
            if distance > self.explosion_radius:
                self.remove = True
 
        self.decay()
 
        self.trail_update()
 
        self.life += 1
 
    def show(self, win):
        pygame.draw.circle(win, (self.colour[0], self.colour[1], self.colour[2], 0), (int(self.pos.x), int(self.pos.y)),
                           self.size)
 
    def decay(self):  # random decay of the particles
        if 50 > self.life > 10:  # early stage their is a small chance of decay
            ran = randint(0, 30)
            if ran == 0:
                self.remove = True
        elif self.life > 50:
            ran = randint(0, 5)
            if ran == 0:
                self.remove = True
 
    def trail_update(self):
        self.prev_posx.pop()
        self.prev_posx.insert(0, int(self.pos.x))
        self.prev_posy.pop()
        self.prev_posy.insert(0, int(self.pos.y))
 
        for n, t in enumerate(self.trails):
            if t.dynamic:
                t.get_pos(self.prev_posx[n + dynamic_offset], self.prev_posy[n + dynamic_offset])
            else:
                t.get_pos(self.prev_posx[n + static_offset], self.prev_posy[n + static_offset])
 
 
class Trail:
    def __init__(self, n, size, dynamic):
        self.pos_in_line = n
        self.pos = vector(-10, -10)
        self.dynamic = dynamic
 
        if self.dynamic:
            self.colour = trail_colours[n]
            self.size = int(size - n / 2)
        else:
            self.colour = (255, 255, 200)
            self.size = size - 2
            if self.size < 0:
                self.size = 0
 
    def get_pos(self, x, y):
        self.pos = vector(x, y)
 
    def show(self, win):
        pygame.draw.circle(win, self.colour, (int(self.pos.x), int(self.pos.y)), self.size)
 
 
def update(win, fireworks):
    for fw in fireworks:
        fw.update(win)
        if fw.remove():
            fireworks.remove(fw)
 
    pygame.display.update()
def myfront():
 
 
    def main():
        pygame.init()
    pygame.font.init()
    pygame.display.set_caption("Fireworks in Pygame") # 标题
    myfont = pygame.font.SysFont("Arial", 30)
    myfont1 = pygame.font.SysFont("Arial", 20)
    testsurface = myfont.render("祝我姐夫宋斌华和我亲爱爱的姐孔思梦新婚快乐",False,(251, 59, 85))
    testsurface1 = myfont1.render("By:Python代码大全", False, (251, 59, 85))
 
    # pygame.image.load("")
    win = pygame.display.set_mode((DISPLAY_WIDTH, DISPLAY_HEIGHT))
    # win.blit(background)
    clock = pygame.time.Clock()
 
    fireworks = [Firework() for i in range(2)]  # create the first fireworks
    running = True
 
    while running:
        clock.tick(60)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            if event.type == pygame.KEYDOWN:  # Change game speed with number keys
                if event.key == pygame.K_1: # 按下 1
                    fireworks.append(Firework())
                if event.key == pygame.K_2: # 按下 2 加入10个烟花
                    for i in range(10):
                        fireworks.append(Firework())
        win.fill((20, 20, 30))  # draw background
        win.blit(background,(0,0))
        win.blit(testsurface,(200,30))
        win.blit(testsurface1, (520,80))
 
        if randint(0, 20) == 1:  # create new firework
            fireworks.append(Firework())
 
        update(win, fireworks)

 
    pygame.quit()
    quit()文章来源地址https://www.toymoban.com/news/detail-811433.html

到了这里,关于求解答 python中无报错却不能运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决:docker创建Redis容器成功,但无法启动Redis容器、也无报错提示

    1.修改redis.conf配置文件参数 daemonize 为 no : 由于创建容器实例时,会进行容器数据卷挂载,因此可以直接在外部宿主机里面修改,docker会自动同步该文件到redis容器对应目录里面 2.删除之前创建的redis容器实例 3.复杂使用run命令,再次重新创建redis容器实例。会进行容器数据卷

    2024年02月20日
    浏览(51)
  • python pygbag教程 —— 在网页上运行pygame程序(全网中文教程首发)

    pygame是一款流行的游戏制作模块,经过特殊的方式编译后,可以在浏览器web网页上运行。web上的打包主要使用第三方模块pygbag。 pygame教程:Python pygame(GUI编程)模块最完整教程(1)_pygame模块详解_Python-ZZY的博客-CSDN博客 pygbag是经过官方认可的一个第三方模块,专用于编译pyga

    2024年02月03日
    浏览(40)
  • [Python]pip install pygame安装报错解决方案

    pip install pygame报错提示: 解决方案:whl安装 下载pygame安装包 下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame 我安装的python版本3.11.1,win系统64位。 选择对应版本:pygame‑2.1.2‑cp311‑cp311‑win_amd64.whl 将安装包放到指定路径后进行安装 问题原因和解决思路参考: https://q.

    2023年04月09日
    浏览(46)
  • Unity VideoPlayer使用url方式,Android平台下无法播放http链接的视频(黑屏、无反应、无报错、无log输出)...

    以下内容基于 Unity 2019.4.28f1c1,未来可能有变化 (以下 Other Settings 供参考,未必影响) Edit - Project Settings - Player - Android平台 - Other Settings :设置如下 Rendering Auto Graphics API: true Configuration Scripting Backend: IL2CPP Install Location: Prefer External Internet Access: Auto 主要原因: 默认情况下,不允

    2023年04月18日
    浏览(44)
  • 关于Windows系统pycharm不能成功安装模块pygame解决办法

    1,一般情况下目前的python3.10以上都是默认安装pip(可以不用管),可直接进入pycharm通过各位大佬详细步骤试一下,如果还是行能,可在win+R直接使用命令安装 2,在前面的过程中依旧是不成功,也可以直接去官网下载,也许就能成功。(这些都是大佬都有讲解可以查看大佬的

    2024年02月16日
    浏览(44)
  • python报错:argument 1 must be pygame.surface.Surface, not builtin_function_or_method解决方法

    1、报错分析 : 根据报错信息,提示我们出错的原因在与第一个参数类型必须是pygame类型,但是我们的参数类型不匹配。 2、源码分析 这里的方法blit()中的第一个参数是STATICSURF,一个全局常量。根据报错我们知道是它出了问题。我们找到这个参数的赋值代码。 3、STATICSURF参数

    2024年02月12日
    浏览(53)
  • 【python】解决PyCharm安装pygame报错ERROR: Could not install packages due to an EnvironmentError: WinError 5

    使用PyCharm安装pygame的方法非常简单 点击下方终端 输入pip install pygame 等待安装完成即可 有时会出现 ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。 的错误  这时候重新输入pip install pygame --user即可 当然,安装完还需要在文件-设置-项目- python解释器里用加

    2024年02月11日
    浏览(61)
  • Python 运行报错 UnicodeDecodeError 解决方法

    问题描述: 在使用  Jupyter Notebook  进行深度学习模型导入的时候报错UnicodeDecodeError 问题描述表示出现了无法识别的字符,导致模型文件加载失败,并且这个无法识别的字符是第26个字符。 解决思路: 实际上是因为这段代码中传递模型文件路径字符出现了utf-8无法解码的情况

    2024年02月10日
    浏览(34)
  • 关于Pygame运行无响应问题的办法(已解决)

    目录 pygame程序运行时需要初始化 在关闭运行页面的时候无响应 pygame程序运行时需要初始化 如下代码运行后无反应: 应该加上初始化的语句: pygame.init() 再运行就会解决问题,代码如下:  可以看见一个白色的空白页面 在关闭运行页面的时候无响应  如上代码运行后,准备

    2024年02月05日
    浏览(37)
  • PyCharm运行python测试,报错“没有发现测试”/“空套件”

    问题描述:没有发现测试/空套件                       当时没截图,可惜了! 把python测试文件的文件名改为非test开头的! (虽然pytest的官方说要以test开头,但是他这样会有错误,就很离谱!!!)    改后大概率可以了!   不行的话,可以清除缓存 或者切换到另一个

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包