Я пытаюсь заставить спрайт игрока не падать на верхнюю часть прямоугольника платформы. Я много чего перепробовал за последние два дня, и я потерялся больше, чем когда-либо. Большое спасибо. Я использую tmx для загрузки мозаичной карты. Я добавляю объект Platform при каждом обнаружении имени, а затем добавляю его в список. Я просматриваю список, чтобы проверить столкновение, используя sprite.collide (self.player, plat). Это не работает.
def update(self):
for plat in self.platList:
self.hits = pg.sprite.spritecollide(self.player,self.platList,False)
if self.hits:
if self.player.pos.y > self.hits[0].y:
self.player.pos.y = self.hits[0].rect.top
for tile in self.map.tmxdata.objects:
if tile.name == "player":
self.player = Player(self,tile.x,tile.y)
if tile.name == "Platform":
self.platList.append(Platform(self, tile.x, tile.y,tile.width,tile.height))
class Platform(pg.sprite.Sprite):
def __init__(self,game,x,y,width,height):
self.game = game
pg.sprite.Sprite.__init__(self)
self.rect = pg.Rect(x,y,width,height)
self.y = y
self.rect.x = x
self.rect.y = y