pygame和精灵模糊运动

2023-12-03

我正在努力正确移动精灵。我看到的不是平滑移动,而是模糊移动,但我不知道如何解决它。 你有机会指出我做错了什么吗?

我的目标是让披萨落下,使其击中底部并弹回,如果击中顶部则弹回,然后再次弹起底部 -> 弹起 -> 顶部 -> 弹起等等。

import pygame

gravity = 0.5

class PizzaSprite:
    def __init__(self, image, spritepos):
        self.image = image
        self.spos = spritepos
        (x, y) = spritepos

        self.posx = x
        self.posy = y
        self.xvel = 1
        self.yvel = 1

        print "x ", x
        print "y ", y

    def draw(self, target_surface):          
        target_surface.blit(self.image, self.spos)

    def update(self):
        self.posy -= self.yvel
        self.spos = (self.posx, self.posy)
        return



def main():
    pygame.init()

    screen_width = 800
    screen_height = 600

    x = screen_width
    y = screen_height

    screen = pygame.display.set_mode((screen_width, screen_height))
    wall_image = pygame.image.load("wall.png")
    sky_image = pygame.image.load("sky.png")

    pizza_image = pygame.image.load("pizza.png")

    screen.blit(wall_image,(0,200))
    screen.blit(sky_image,(0,0))

    all_sprites = []
    pizza1 = PizzaSprite(pizza_image, (x/2, y/2))
    all_sprites.append(pizza1)

    while True:
        ev = pygame.event.poll()
        if ev.type == pygame.QUIT:
            break

        for sprite in all_sprites:
            sprite.update()

        for sprite in all_sprites:
            sprite.draw(screen)

        pygame.display.flip()
    pygame.quit()

main()

在主游戏开始时循环添加 白色 = (255,255,255) 屏幕.填充(白色) 让我给你一个现在正在发生的事情的一个小比喻,

你有纸和很多披萨贴纸,打算制作一本翻书。为了在每张纸上制造出运动的错觉,您可以将贴纸贴得稍低一些。 screen.fill 命令本质上是使用您指定的 RGB 颜色值来清除屏幕。当你没有填满屏幕时,你所做的基本上就是试图在一张纸上制作翻页书。当你想要的只是每一页上一个时,你只需不断地将越来越多的贴纸放在较低的位置,就会变得模糊。

并放置

pygame.init()

screen_width = 800
screen_height = 600

x = screen_width
y = screen_height

screen = pygame.display.set_mode((screen_width, screen_height))
wall_image = pygame.image.load("wall.png")
sky_image = pygame.image.load("sky.png")

所有这些都在主游戏循环之外,假设您不会在程序中对这些变量进行更改,那么一遍又一遍地重新定义屏幕、x、y 和两个图像(如果它们没有更改)是乏味且低效的。

总结一下:

  1. 使用 screen.fill(white) 命令重置屏幕颜色

  2. 如果变量永远不会改变并且在主循环中不需要它们,则只需导入 png 并定义一次变量

希望这有助于解决问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pygame和精灵模糊运动 的相关文章

  • C++/SFML 显示故障,通过鼠标单击更改精灵成员

    我正在学习 C SFML 作为练习 我正在制作一个小程序 在窗口中显示 64x64 像素方形棕色精灵的 10x10 网格 该程序允许您使用键盘选择绿色 黄色 蓝色 灰色 棕色方形精灵 并用该选定的精灵替换所述网格上的任何图块 游戏循环如下
  • 如何从本地创建全局变量并存储其先前的值?

    在我的 pygame 游戏中 我希望子弹能够检测到它何时位于给定的命中框中 为此 我需要从本地创建一个全局变量 但是 每次出现新对象时 全局变量都会更新为新的碰撞盒 这不允许我跟踪之前的碰撞箱并检测子弹何时位于屏幕上的旧对象内 我该如何防止
  • 如何在 Pygame 表面中实现洪水填充

    我想知道填充 Pygame 表面部分的好方法 我想要的最好的例子是 MS Paint 中油漆桶的工作方式 例如 如果在白色表面上用黑色绘制一个圆圈 我想填充圆圈内的白色 或任何形状 为了让您了解我正在做什么 我正在制作一个像素艺术工具 并且
  • CSS3 - 在精灵图像的“背景位置”之间淡入淡出

    我想在精灵图像的 背景位置 之间淡入淡出仅使用CSS 我找到了很多教程 但没有找到像这样简单的东西
  • tkinter 和 pygame 不想在一个窗口中工作[重复]

    这个问题在这里已经有答案了 我想创建一个应用程序 并希望使用 tkinter 作为 GUI 并使用 Pyglet 和 Pygame 等游戏库之一 我没有找到任何有关将 pyglet 嵌入 tkinter 的信息 但找到了一些使用 tkint
  • 替换精灵中的图像-iPhone的cocos2d游戏开发

    我想改变精灵图像 举例来说 mainSprite Sprite spriteWithFile redFile png self addChild mainSprite 在这里 Sprite 已经添加到图层中 我有可以访问它的 mainSpr
  • Pygame 弹力球穿过地板下沉

    下面的代码会弹起一个球 但由于某种原因 球在完成弹跳后会穿过地面 有人知道为什么吗 代码的想法是一个球从左上角开始 然后下落并弹起 然后向上和向下移动 依此类推 直到它停止弹跳 但是当它停止弹跳时 它开始抖动并慢慢下沉到地面 我不知道为什么
  • PYGame - ImportError:没有名为 locals Raspberry Pi 的模块

    我有以下代码 usr bin python coding iso 8859 15 import pygame random from pygame locals import pygame init clock pygame time Cl
  • 敌人不会在 pygame 中自行移动[重复]

    这个问题在这里已经有答案了 好吧 所以我的敌人只有在我移动角色时才会移动 但有时它也会完全从游戏窗口中产生 还有背景 玩家和敌人 在我按下移动按钮之前不会弹出 我对此感到非常抱歉 lmfao 也对我被告知将它们放在那里以提醒 wtf 的文本
  • Unity3D 中 android 切换速度太慢

    我的游戏有 1000 多个帧 并且精灵的格式是 Crunch 因为这个项目中的精灵太多 当我想从Windows切换到Android时 我花了将近1天的时间来切换 实际上我不允许它完全切换 但切换到Windows并没有那么多 也许只有15分钟
  • 找不到不使用 GL11Ext 进行绘图的 android 2d opengl sprite 类的合适示例

    正如 SpriteMethodTest 所说 绘制精灵的方法有很多种 首先 我尝试了canvas 并遇到了一些性能问题 接下来 我决定学习opengl 我使用 GL11Ext 扩展取得了第一个成就 但是 默认情况下您知道 当您绘制纹理时 它
  • 将Pycharm项目移动到另一个目录

    我的主目录空间不足 我想将 PyCharm 项目移动到另一个目录 我最终复制了它 因为重构不起作用 我删除了 pycache 和 zip 异常 出现的异常消失了 现在一切都按预期工作 不过 从 settings python interpr
  • pygame.sprite.Group() 做什么

    我正在关注有关 pygame 的视频 我看到了这段代码 crosshair pygame sprite Group 有人能给我解释一下吗 阅读以下文档pygame sprite Group https www pygame org docs
  • Pygame:细胞物理学

    我正在制作一个简化版本agar io http agar io 目前 单元格被放置在网格背景上 就像游戏中一样 细胞吃食物 但只有圆圈内较小的正方形部分实际上吃食物 在我的程序中 当你足够大时 这一点是显而易见的 此外 当您按空格键时 它会
  • 一旦玩家与矩形对象发生碰撞,如何从屏幕上删除它?

    in draw 函数 我试图在玩家 pos 敌人 pos 时删除矩形对象 但 del 不起作用 有什么办法可以彻底删除敌人的物体吗 是否有内置的 pygame 函数可以删除我不知道的对象 draw player def draw enemy
  • CSS - 将文本保留在图像下方

    我正在尝试创建一个简单的图片库 有人告诉我使用 float left 但是当我这样做时 页脚中的所有文本都会射到第一张图像 我已经搜索了大约一个小时试图找到解决方案 但我找不到任何东西 我尝试过使用边距 边框 不同的对齐方式和各种不同的小东
  • 如何更改 PyGame 中声音或音乐的音量?

    如何更改 PyGame 中的音量 例如通过设置更改音量 我制作了 UI 元素 只需要知道如何更改音量即可 我知道我说不清楚 但你可以理解我 请帮忙 更改音量取决于您是否正在播放pygame mixer Sound https www pyg
  • OpenGL ES 2.0 中的纹理点?

    我正在尝试在 OpenGL ES 2 0 中为粒子系统实现纹理点 例如点精灵 我遇到的问题是所有点都渲染为实心黑色方块 而不是正确映射纹理 我已经验证 gl PointCoord 实际上返回从 0 0 到 1 0 的 x y 值 这将映射到
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • 在pygame中旋转矩形(不是图像)

    在 pygame 中我使用pygame draw rect screen color rectangle 对于我的程序中的所有矩形 我希望能够将这些矩形旋转到任何角度 我看过下面的代码来旋转IMAGES但我的问题是矩形 pygame tra

随机推荐