A voir également:
- Problème avec python (pysfml et le xml)
- Xml viewer - Télécharger - Édition & Programmation
- Citizen code python avis - Accueil - Outils
- Office xml handler - Télécharger - Traitement de texte
- Driveimage xml - Télécharger - Sauvegarde
2 réponses
Bon j'ai corrigé mon problème maintenant ça marche :)
Voici le code :
Mais il reste mon deuxième problème :
Sur le PC que j'utilise actuellement, le pysfml ne marche pas a 100%, enfin le code si mais la page de mon programme ne s'affiche pas correctement, je vois l'onglet "mon programme" en bas mais en cliquant dessus rien ne se passe.
J'aimerais savoir comment faire pour visualiser ma page merci :)
Voici le code :
class Level: def __init__( self, filename ): # ouvrir le fichier if niveau == 1: level_file = open( "levels/level01.tmx" ) elif niveau == 2: level_file = open( "levels/level02.tmx" ) elif niveau == 3: level_file = open( "levels/level03.tmx" ) # lire le contenu dans une chaine level_data = level_file.read() # passer la chaine a ElementTree.fromstring() pour creer l'arbre XMl level_tree = ElementTree.fromstring(level_data) # recuperer largeur & hauteur dans self.width & self.height self.width = int(level_tree.attrib["width"]) self.height = int(level_tree.attrib["height"]) # recuperer le contenu du niveau, le decouper a coup de split('\n') et split(',') level_content = level_tree.find("layer").find("data").text # mettre tout ca dans self.tiles self.tiles = [] for row in level_content.split('\n'): cols = row.split(',') for col in cols: if col != "": self.tiles.append( int(col) ) def Draw( self, window ): for y in range( self.height ): for x in range( self.width ): tile_value = self.tiles[ y * self.width + x ] if tile_value == 0: pass elif tile_value == 1: mur_sprite.SetPosition( x * tile_size - camera.x, y * tile_size - camera.y ) window.Draw( mur_sprite ) elif tile_value == 2: coin_sprite.SetPosition( x * tile_size - camera.x, y * tile_size - camera.y ) window.Draw( coin_sprite ) elif tile_value == 3: bloc_ralentisseur_sprite.SetPosition( x * tile_size - camera.x, y * tile_size - camera.y ) window.Draw( bloc_ralentisseur_sprite ) elif tile_value == 4: bloc_tueur_sprite.SetPosition( x * tile_size - camera.x, y * tile_size - camera.y ) window.Draw( bloc_tueur_sprite ) elif tile_value == 5: bloc_fin_sprite.SetPosition( x * tile_size - camera.x, y * tile_size - camera.y ) window.Draw( bloc_fin_sprite ) def GetTileAt( self, tile_x, tile_y ): # anciennement get_level_at if tile_x < 0 or tile_x >= self.width: return 1 if tile_y < 0 or tile_y >= self.height: return 0 return self.tiles[ tile_y * self.width + tile_x ] def SetLevelAt( self, tileX, tileY, tileValue ): self.tiles[ tileY * self.width + tileX ] = tileValue def GetTileAtPosition( self, x, y ): return self.GetTileAt( int( x / tile_size ), int( y / tile_size ) ) def SetTileAtPosition( self, x, y, tileValue ): self.SetLevelAt( int( x / tile_size ), int( y / tile_size ), tileValue ) current_level = Level( "levels/level01.tmx" ) collidable_tiles = [ 1, 3, 4 ]
Mais il reste mon deuxième problème :
Sur le PC que j'utilise actuellement, le pysfml ne marche pas a 100%, enfin le code si mais la page de mon programme ne s'affiche pas correctement, je vois l'onglet "mon programme" en bas mais en cliquant dessus rien ne se passe.
J'aimerais savoir comment faire pour visualiser ma page merci :)