作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图通过检测玩家矩形下方像素的颜色来检测 Pygame 中的玩家(红色矩形)是否与红色框发生碰撞;然而,当我在 Pygame 中使用 get_at() 方法时,即使玩家处于某种颜色上,它也会始终返回“None”。
这是检测颜色的函数:
def get_color(x, y):
screen.get_at((x, y))
这是我调用该函数的地方(p1.x是玩家1的x坐标,p1.y是玩家1的y坐标,而且,我的背景是黑色的,因为我没有用任何填充背景整个程序的颜色):
if get_color(p1.x, p1.y) != black:
print(get_color(p1.x, p1.y))
即使玩家明显位于红色框的顶部,上面的最后一个打印语句也会继续返回“None”。
最佳答案
您必须在函数中使用 return
才能从 get_at()
返回值
def get_color(x, y):
return screen.get_at((x, y))
如果你不使用return
,那么Python默认使用return None
,所以它的工作方式就像
def get_color(x, y):
screen.get_at((x, y))
return None
关于python - Pygame:get_at 始终返回 'None',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56226583/
我试图通过检测玩家矩形下方像素的颜色来检测 Pygame 中的玩家(红色矩形)是否与红色框发生碰撞;然而,当我在 Pygame 中使用 get_at() 方法时,即使玩家处于某种颜色上,它也会始终返回
我创建了一个类似蛇的游戏,其中用户移动 Sprite , Sprite 会留下痕迹。如果用户遇到了他创建的踪迹,我希望游戏结束,玩家失败。 当 Sprite 移动时,它会在黑色背景上留下一条白色轨迹。
我是一名优秀的程序员,十分优秀!