- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Pygame 尝试将一个类作为参数传递给函数,这样我就可以调用该方法,而不是整个类。每次我传递 class 参数时,它似乎都在运行该类,并且由于它处于循环中,所以它很快就会被磨掉。任何人都可以帮忙吗?我的代码结构好吗?我正在尝试从一个组中删除雨滴,然后生成一个新行,但现在,只是想办法从组中删除雨滴。谢谢你!!!顺便说一句,对 Python 和一般编码来说有点新(不包括 HTML5 和 CSS3)。
我已尝试将类设置为变量 (drop = Droplet()),然后尝试运行要删除的函数。我还尝试将类中的函数设置为方法,但也失败了。我真的很感激任何帮助。谢谢你!我对 Stack Overflow 和 Google 进行了详尽的研究。我试过 .kill 和 .remove。
class Droplet(Sprite):
def __init__(self):
super(Droplet, self).__init__(rainfall)
self.screen = screen
self.screen_rect = screen.get_rect
self.image = pygame.image.load('images/Glossy_Raindrop.bmp')
self.rect = self.image.get_rect()
self.rect.x = self.rect.width
self.rect.y = self.rect.height
def blitme(self):
self.screen.blitme(self.image, self.rect)
def dropground(Droplet):
drop = Droplet()
screenie = screen.get_rect()
if not screen.get_rect().contains(drop.rect):
print("delete")
drop.kill()
def update_screen(rainfall):
screen.fill((135, 206, 235))
print(len(rainfall))
rain_y_move(Droplet, rainfall)
dropground(Droplet)
rainfall.draw(screen)
pygame.display.flip()
最终,我立即生成了大量雨滴,这减慢了速度。我希望它删除组中的雨滴,然后从那里生成一个新行。像下雨一样落在屏幕上。
最佳答案
您必须创建一个 Droplet
对象并将该对象传递给函数。
但是,我建议使用 pygame.sprite.Group
.
在 Droplet
类中添加一个 .update
方法,该方法负责 y 轴运动并“杀死”掉落在地上的水滴。传递给 Group
的 .update
方法的所有参数都委托(delegate)给包含元素的 .updtate
方法:
class Droplet(Sprite):
# [...]
def update(self)
self.rect = self.rect.move(0, speed)
screenie = screen.get_rect()
if not screen.get_rect().contains(self.rect):
print("delete")
self.kill()
创建组并添加水滴:
例如
rainfall = pygame.sprite.Group()
my_drop = Droplet()
rainfall.add(my_drop)
Droplet.blitme
可以删除,因为 pygame.sprite.Group
提供了一个 .draw
方法,它“blit”组的每个表面 - 为此,Sprite
的 .rect
和 .image
属性必须设置。
def update_screen(rainfall):
screen.fill((135, 206, 235))
print(len(rainfall))
rainfall.update();
rainfall.draw(screen)
pygame.display.flip()
while run:
update_screen(rainfall)
关于python - 有没有办法在不运行整个类的情况下将类作为参数传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55382669/
我是一名优秀的程序员,十分优秀!