habe voll das Problem gerade und ich verstehe es einfach nicht... weiss jemand eine Lösung?
Es geht darum, dass ich in meinem Ballerspiel den Soldaten(Soldat Klasse) diverse Imagesets verpassen möchte in Form eines dicts. In diesem dict sind die Keys die Namen der Imagesets (z.Bsp. "splatter") und diese verweisen auf eine Liste mit Bildern, also etwa so: imageset = {"splatter" : [Bild, Bild, Bild], "walk" : [Bild, Bild, Bild], etc etc}
Nun ist die Sache, dass ich beim "dead" imageset verschiedene Imagesets habe, und jeder Soldat soll sich quasi beim initialisieren ein zufälliges solches "dead" imageset zuweisen, also self.images["dead"] = #zufälliges imageset#.
Und genau DA liegt das Problem! Eine Armee erzeugt jeweils 6 Soldaten, und diese haben immer dasselbe "dead" imageset - egal, wie ich das code. Es kommen schon beide Imagesets zum Zuge; es wäre also alles da, aber die Soldaten derselben Armee haben immer dasselbe dead imageset.
Evtl. hilft dies hier, mir zu helfen:
Code: Alles auswählen
import pygame
import random
from sprite import My_Sprite
from grafik import bild_laden, bild_spiegeln
from sound import sound_laden
from zufall import fifty_fifty
from soldat_shot import Soldat_Shot
#----------------------------------------------------------------------------------------------------#
#------------------------------ Death Animation Imagesets laden ------------------------------#
#----------------------------------------------------------------------------------------------------#
bildordner = """Characters\The Good\Soldaten"""
player_numbers = (1, 2)
death_animation_imagesets = {}
anzahl_death_sets = 2
for player_nr in player_numbers:
death_animation_imagesets[player_nr] = {}
for n in range(1, anzahl_death_sets + 1):
death_animation_imagesets[player_nr][n] = []
for buchstabe in ("a", "b", "c", "d"):
bildname = "soldat_" + str(player_nr) + "_dead_" + str(n) + "_" + buchstabe + ".png"
bild = bild_laden(bildordner, bildname, True)
death_animation_imagesets[player_nr][n].append(bild)
#----------------------------------------------------------------------------------------------------#
class Soldat(My_Sprite):
splatter_sound = sound_laden("Sound FX", "splatter.wav")
splatter_sound.set_volume(0.3)
imagesets = {}
imageset_types = ("stand", "walk", "splatter")
for player_nr in player_numbers:
imagesets[player_nr] = {}
for imageset_type in imageset_types:
imagesets[player_nr][imageset_type] = []
if imageset_type == "stand":
bildname = "soldat_" + str(player_nr) + ".png"
bild = bild_laden(bildordner, bildname, True)
imagesets[player_nr][imageset_type].append(bild)
else:
image_types = ("a", "b")
for image_type in image_types:
bildname = "soldat_" + str(player_nr) + "_" + imageset_type + "_" + image_type + ".png"
bild = bild_laden(bildordner, bildname, True)
imagesets[player_nr][imageset_type].append(bild)
def __init__(self, army, pos):
self.army = army
self.speed = army.speed
self.number = self.army.player.number
self.shot = False
self.corpse = False
self.images = Soldat.imagesets[self.number]
self.images["dead"] = death_animation_imagesets[self.number][random.randint(1, anzahl_death_sets)]
Danke (auch für's Lesen )