Pygame TypeError surface
Résolu
worox
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
worox Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
worox Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je suis en python et je ne comprend pas pour quoi mon self.screen ne marche pas ?
L'image que vous voyez en dessous représente l'érreur, et les pages de code en dessous, tous mon code.
Le problème agis lorsque je lance le programme.

import pygame
from game import Game
if __name__ == '__main__':
pygame.init()
game = Game()
game.run()
import pygame
import pytmx
import pyscroll
from lumbertown.player import Player
class Game:
def __init__(self):
# frst fenêtre
self.screen = pygame.display.set_mode((500, 500))
pygame.display.set_caption("LumberTown")
# charger la carte
tmx_data = pytmx.util_pygame.load_pygame('lumbertown/map/carte.tmx')
map_data = pyscroll.data.TiledMapData(tmx_data)
map_layer = pyscroll.orthographic.BufferedRenderer(map_data, self.screen.get_size())
map_layer.zoom = 2
# genérer le joueur
player_position = tmx_data.get_object_by_name('player')
self.player = Player(player_position.x, player_position.y)
# dessiner le groupe de camque.
self.group = pyscroll.PyscrollGroup(map_layer=map_layer, default_layer=3)
self.group.add(self.player)
def handle_input(self):
pressed = pygame.key.get_pressed()
if pressed[pygame.K_UP]:
self.player.move_up()
self.player.change_animation('up')
elif pressed[pygame.K_DOWN]:
self.player.move_down()
self.player.change_animation('down')
elif pressed[pygame.K_RIGHT]:
self.player.move_rig()
self.player.change_animation('right')
elif pressed[pygame.K_LEFT]:
self.player.move_left()
self.player.change_animation('left')
def run(self):
clock = pygame.time.Clock()
# var light game
running = True
# boucle tant que la condition = True
while running:
self.handle_input()
self.group.update()
self.group.center(self.player.rect.center)
self.group.draw(self.screen)
pygame.display.flip()
# fenetre fermé
for event in pygame.event.get():
# if fermeture
if event.type == pygame.QUIT:
running = False
pygame.quit()
print("fermé")
clock.tick(60)
import pygame
class Player(pygame.sprite.Sprite):
def __init__(self, x, y):
super().__init__()
self.sprite_sheet = pygame.image.load('lumbertown/map/player.png')
self.image = self.get_image(0, 0)
self.image.set_colorkey([0, 0, 0])
self.rect = self.image.get_rect()
self.position = [x, y]
self.image = {
'down' : self.get_image(0, 0),
'left' : self.get_image(0, 32),
'right' : self.get_image(0, 64),
'up' : self.get_image(0, 96)
}
self.speed = 5
def change_animation(self, name):
self.image = self.images
self.image.set_colorkey(0, 0, 0)
def move_rig(self): self.position[0] += self.speed
def move_left(self): self.position[0] -= self.speed
def move_down(self): self.position[1] += self.speed
def move_up(self): self.position[1] -= self.speed
def update(self):
self.rect.topleft = self.position
def get_image(self, x, y):
image = pygame.Surface([32, 32])
image.blit(self.sprite_sheet, (0, 0), (x, y, 32, 32))
return image
Configuration: Windows / Chrome 101.0.4951.67
A voir également:
- Pygame TypeError surface
- Logiciel gratuit calcul surface m2 - Télécharger - Outils professionnels
- Télécharger surface - Télécharger - Bureautique
- Windows Surface Scanner - Télécharger - Divers Utilitaires
- Calcul surface cercle - Forum C
- Geometry dash pygame ✓ - Forum Python
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
merci de partager du texte, pas des images.
quand tu partages du code:
- précise le nom de chaque module
- spécifie le langage dans les balises de code (https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code)
merci de partager du texte, pas des images.
quand tu partages du code:
- précise le nom de chaque module
- spécifie le langage dans les balises de code (https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code)
Bonjour,
Ok, mais il vaut mieux copier le code ici, au lieu d'une image
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ça:
Ok, mais il vaut mieux copier le code ici, au lieu d'une image
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ça:
for k in range(10): print(k)
la première c'est main.py, la 2eme game.py et la 3eme, player.py
et j'avais spécifié le langage mais je vois que ca n'a pas marché. C'est du Python
d'où vient lumbertown.player?
et le fichier lumbertown/map/carte.tmx?
https://forums.commentcamarche.net/forum/affich-37598786-pygame-typeerror-surface?y0a-ot_AKQZ8K2SymHNQD89OJMpBRbYB8sdNXQzN-g8