首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pytmx和make Rects

如何使用pytmx和make Rects
EN

Stack Overflow用户
提问于 2021-09-09 16:45:08
回答 1查看 53关注 0票数 1

我试着让这个pytmx工作几天,但我似乎不知道如何继续下去,我只想加载所有的层,并在这里创建一些层作为Rect,我只是想让它在屏幕上显示blit,但这也不起作用

代码语言:javascript
复制
import pygame
import pytmx

pygame.init()

W, H = 800, 400
FPS = 60

win = pygame.display.set_mode((W, H), 0, 32)
pygame.display.set_caption('trying to make this work somewhow')

game_map = pytmx.load_pygame('map/map.tmx')

run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    win.fill((146, 244, 200))

    for layer in game_map.visible_layers:
        for x, y, gid, in layer:
            tile = game_map.get_tile_image_by_gid(gid)
            win.blit(tile, (x * 16, y * 16))


    pygame.display.update()
pygame.quit()
EN

回答 1

Stack Overflow用户

发布于 2021-09-09 17:11:18

并不是所有的平铺都有图像(pygame.Surface)。如果tile不是None,只需评估

代码语言:javascript
复制
while run:
    # [...]

    for layer in game_map.visible_layers:
        for x, y, gid, in layer:
            tile = game_map.get_tile_image_by_gid(gid)
            if tile:
                win.blit(tile, (x * 16, y * 16))

或者,也可以在拼贴的位置绘制一个彩色矩形:

代码语言:javascript
复制
while run:
    # [...]

    for layer in game_map.visible_layers:

        for x, y, gid, in layer:
            tile = game_map.get_tile_image_by_gid(gid)
            if tile:
                win.blit(tile, (x * 16, y * 16))
            else:
                pygame.draw.rect(win, "pink", (x * 16, y * 16, 16, 16))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69121981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档