Inventar nachstellen ?!

  • Hallo stagetwo,


    habe grade ein Problem bzw. weiß ich nicht wirklich wie ich ein Invetar mit den Items nachstellen soll die auch im Inventar sind.
    Habe schon eine TabControl mit 3 Tabs für die Inventar Pages.
    PictureBoxes über jeden Slot drüber gelegt und auf Visibiel = false gestellt, wenn ich jetzt den Refresh button drücke sollen die Items die ich im Inventar habe im Programm als Bild angezeigt werden.


    Habe alle Informationen vom Item gespeichert, welcher Slot, Amount, Pk2Name, Pk2Id etc.
    Die ganzen Bilder die in der Media.pk2 sind habe ich auch in den Resources Ordner gepackt mit dem gleichen aufbau wie es in der Media.pk2 ist.


    Nur ich weiß jetzt nicht so ganz wie die Funktion aussehen sollte wenn ich Refresh drücke.


    (Pk2Name prüfen mit den Bildern. SlotID nehmen und dem PictureBox zuweisen)


    Ihr könnt auch gerne über TV helfen ;)

  • Erstelle die pictureBoxen von Hand über ne FOR-Schleife im Konstruktor der Form. Bei der Erstellung steckst du die in ein Array. Dann kannst du über pb_array[Slot] auf die PictureBox zugreifen :)
    Dann noch durch die ItemListe gehen und die Items updaten (oder durch das pb_array und dann schauen ob an einem Slot ein Item ist).


    Wäre so die einzig sinnvolle Methode um Ultimative Code-Redundanzen zu vermeiden ...


    Gruß
    florian0

  • Ist für mich bisschen schwer, weil ich sau selten bzw. nie mit Bildern in C# arbeite :O
    Ich schau mal ob ich das schaffe , danke ^^



    komme grade nicht klar wie ich das mit dem neuen Abstand machen soll.
    Jedes neues Bild soll +36 weiter nach rechts.
    Davon 4 in einer Reihe dann nach unten

  • Warum denn überhaupt für jeden Slot eine pictureBox/Image? Einfach eine pictureBox/Image pro Seite wäre doch viel einfacher.
    Einfach die Position auf dem Image durch den Slot ausrechnen.
    Beispielcode (von einer Icon Größe von 36*36px ausgehend):

    Code
    1. slot -= 13;
    2. Point tmp = new Point();
    3. int row = slot / 4;
    4. tmp.Y = row * 36;
    5. int column = slot % 4;
    6. tmp.X = column * 36;


    Die -13 kommen daher, dass die ersten Slots für die Items sind die getragen werden.
    Mit Graphics.DrawImage kannst du dann die ItemIcons auf die einzelnen Slot draufzeichnen.

    Zitat

    Dr. Gregory House: You've gotta get down here. They've got a satellite aimed directly into Cuddy's vagina. I told them that chances of invasion are slim to none but...

  • Ich weiß jetzt nicht wie du das mit dem Inventar darstellen meinst (ich habe nie silkroad gespielt) aber ich würde es mit einem dynamischen datagrid (in die rows und columns dann pictureboxen) in forms und mit einer listbox mit databinding in wpf machen.

    And the reign will kill us all 
    We throw ourselves against the wall
    But no one else can see
    The preservation of the martyr in me


    Slipknot - Psychosocial

  • Das meiste ist für mich Spanisch, da ich nie mit Bildern gearbeitet habe.
    Werde es trozdem mal probieren, danke


    //Update: Dank florian0 klappt es nun :*