python - Python Canvas bbox 返回无
问题描述
所以我正在制作一个游戏(Minecraft 2D(磨损版)),如果你在洞穴的地下,我希望背景是黑暗的,而不是如果你在洞穴中你可以看到太阳,所以我要做的是我想检查屏幕上最低的草块(女巫是地面),然后将洞穴背景放在那个位置,但是当我试图在画布上获取 bbox 或块对象的坐标时,它只是给了我None
。
所以我现在有了这个:(每次玩家移动时相机功能都会运行)
def camera(self):
for i in self.block_sprites:
self.canvas.delete(i.get_image())
for i in self.sprites:
self.canvas.delete(i)
self.draw_current_pos()
self.draw_background()
def add_block_sprite(self, x, y, block_type):
self.current_sprite = Block(x, y, self, block_type)
self.block_sprites.append(self.current_sprite)
def draw_current_pos(self):
self.sprites = []
self.block_sprites = []
for x in range(0, 20):
for y in range(0, 21):
if self.world.world[self.posx+x][self.posy+y] == 0 :
continue
else:
self.add_block_sprite(x, y, self.world.world[self.posx + x][self.posy + y])
def draw_background(self):
grass_y = 1000
test_for_grass = False
for block in self.block_sprites:
if block.get_type() == 1:
print(self.canvas.bbox(block)) #prints "None"
if self.canvas.bbox(block)[1] > grass_y: ####error here####
grass_y = self.canvas.coords(block)[1]
test_for_grass = True
if not test_for_grass and self.posy < 30:
grass_y = 1000 - grass_y
cave = self.canvas.create_image(0, grass_y, image=self.cavebg, anchor="nw")
self.sprites.append(cave)
你知道问题是什么吗?我希望你能帮忙!(如果这个问题的代码很少告诉我)
解决方案
推荐阅读
- elasticsearch - 弹性搜索中的模糊性按字母而不是按单词搜索
- mysql - docker compose 中的 Airflow + MySQL - 未知主机和访问被拒绝
- docker - 无法使用 puppeter 和 docker 映像启动浏览器进程
- azure-data-factory-2 - Azure 数据工厂中的自定义活动
- ethereum - 签名到期日
- javascript - 快照错误 - 用户之间不需要的切换
- kubernetes - 使用 kubectl port-forward 时未找到 Pod
- html - 相对 URL 真的需要基本标记吗?
- javascript - Dropzone:未捕获的 ReferenceError:未定义 UploadFilesToServer
- ios - 提取 4 位与 2 位蓝牙 HEX 数据,为什么相同的方法会导致错误