PictureBox und Ressourcen brauchen viel auslastung

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Gurke258.

    PictureBox und Ressourcen brauchen viel auslastung

    Hallo zusammen,

    ich bastel gerade an einer "kleinen" Slotmaschine und hatte vorher alles mit Labels gemacht. Jetzt bin ich umgestiegen auf PictureBox um Früchte anzeigen zu lassen.

    Allerings habe ich nun das Problem, das mein Programm fast 10% Prozessorauslastung hat und fast 600MB Arbeitsspeicher benötigt. Vorher kaum etwas vielleicht 30-40MB Arbeitsspeicher.

    GIbt es eine Möglichkleit dies "Schlanker" hinzubekommen?

    Hier mal der Ausschnitt von der "drehen" Sub:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub Drehen()
    2. Feld1 = Int(Rnd() * 10)
    3. Feld2 = Int(Rnd() * 10)
    4. Feld3 = Int(Rnd() * 10)
    5. Feld4 = Int(Rnd() * 10)
    6. Feld5 = Int(Rnd() * 10)
    7. Feld6 = Int(Rnd() * 10)
    8. Feld7 = Int(Rnd() * 10)
    9. Feld8 = Int(Rnd() * 10)
    10. Feld1 = Int(Rnd() * 10)
    11. If Feld1 = 1 Then
    12. Haupt.PBFeld_1.Image = My.Resources.kiwi_2673038_1920
    13. ElseIf Feld1 = 2 Then
    14. Haupt.PBFeld_1.Image = My.Resources.coconuts_575780
    15. ElseIf Feld1 = 3 Then
    16. Haupt.PBFeld_1.Image = My.Resources.pineapple_300038
    17. ElseIf Feld1 = 4 Then
    18. Haupt.PBFeld_1.Image = My.Resources.cherry_105141
    19. ElseIf Feld1 = 5 Then
    20. Haupt.PBFeld_1.Image = My.Resources.apple_336015
    21. ElseIf Feld1 = 6 Then
    22. Haupt.PBFeld_1.Image = My.Resources.bananas_311788
    23. ElseIf Feld1 = 7 Then
    24. Haupt.PBFeld_1.Image = My.Resources.citron_154449
    25. ElseIf Feld1 = 8 Then
    26. Haupt.PBFeld_1.Image = My.Resources.strawberry_34066
    27. ElseIf Feld1 = 9 Then
    28. Haupt.PBFeld_1.Image = My.Resources.pears_1990797_1920
    29. Else
    30. Haupt.PBFeld_1.Image = My.Resources.favorite_153144
    31. End If
    32. If Feld2 = 1 Then
    33. Haupt.PBFeld_2.Image = My.Resources.kiwi_2673038_1920
    34. ElseIf Feld2 = 2 Then
    35. Haupt.PBFeld_2.Image = My.Resources.coconuts_575780
    36. ElseIf Feld2 = 3 Then
    37. Haupt.PBFeld_2.Image = My.Resources.pineapple_300038
    38. ElseIf Feld2 = 4 Then
    39. Haupt.PBFeld_2.Image = My.Resources.cherry_105141
    40. ElseIf Feld2 = 5 Then
    41. Haupt.PBFeld_2.Image = My.Resources.apple_336015
    42. ElseIf Feld2 = 6 Then
    43. Haupt.PBFeld_2.Image = My.Resources.bananas_311788
    44. ElseIf Feld2 = 7 Then
    45. Haupt.PBFeld_2.Image = My.Resources.citron_154449
    46. ElseIf Feld2 = 8 Then
    47. Haupt.PBFeld_2.Image = My.Resources.strawberry_34066
    48. ElseIf Feld2 = 9 Then
    49. Haupt.PBFeld_2.Image = My.Resources.pears_1990797_1920
    50. Else
    51. Haupt.PBFeld_2.Image = My.Resources.favorite_153144
    52. End If
    53. If Feld3 = 1 Then
    54. Haupt.PBFeld_3.Image = My.Resources.kiwi_2673038_1920
    55. ElseIf Feld3 = 2 Then
    56. Haupt.PBFeld_3.Image = My.Resources.coconuts_575780
    57. ElseIf Feld3 = 3 Then
    58. Haupt.PBFeld_3.Image = My.Resources.pineapple_300038
    59. ElseIf Feld3 = 4 Then
    60. Haupt.PBFeld_3.Image = My.Resources.cherry_105141
    61. ElseIf Feld3 = 5 Then
    62. Haupt.PBFeld_3.Image = My.Resources.apple_336015
    63. ElseIf Feld3 = 6 Then
    64. Haupt.PBFeld_3.Image = My.Resources.bananas_311788
    65. ElseIf Feld3 = 7 Then
    66. Haupt.PBFeld_3.Image = My.Resources.citron_154449
    67. ElseIf Feld3 = 8 Then
    68. Haupt.PBFeld_3.Image = My.Resources.strawberry_34066
    69. ElseIf Feld3 = 9 Then
    70. Haupt.PBFeld_3.Image = My.Resources.pears_1990797_1920
    71. Else
    72. Haupt.PBFeld_3.Image = My.Resources.favorite_153144
    73. End If
    74. If Feld4 = 1 Then
    75. Haupt.PBFeld_4.Image = My.Resources.kiwi_2673038_1920
    76. ElseIf Feld4 = 2 Then
    77. Haupt.PBFeld_4.Image = My.Resources.coconuts_575780
    78. ElseIf Feld4 = 3 Then
    79. Haupt.PBFeld_4.Image = My.Resources.pineapple_300038
    80. ElseIf Feld4 = 4 Then
    81. Haupt.PBFeld_4.Image = My.Resources.cherry_105141
    82. ElseIf Feld4 = 5 Then
    83. Haupt.PBFeld_4.Image = My.Resources.apple_336015
    84. ElseIf Feld4 = 6 Then
    85. Haupt.PBFeld_4.Image = My.Resources.bananas_311788
    86. ElseIf Feld4 = 7 Then
    87. Haupt.PBFeld_4.Image = My.Resources.citron_154449
    88. ElseIf Feld4 = 8 Then
    89. Haupt.PBFeld_4.Image = My.Resources.strawberry_34066
    90. ElseIf Feld4 = 9 Then
    91. Haupt.PBFeld_4.Image = My.Resources.pears_1990797_1920
    92. Else
    93. Haupt.PBFeld_4.Image = My.Resources.favorite_153144
    94. End If
    95. If Feld5 = 1 Then
    96. Haupt.PBFeld_5.Image = My.Resources.kiwi_2673038_1920
    97. ElseIf Feld5 = 2 Then
    98. Haupt.PBFeld_5.Image = My.Resources.coconuts_575780
    99. ElseIf Feld5 = 3 Then
    100. Haupt.PBFeld_5.Image = My.Resources.pineapple_300038
    101. ElseIf Feld5 = 4 Then
    102. Haupt.PBFeld_5.Image = My.Resources.cherry_105141
    103. ElseIf Feld5 = 5 Then
    104. Haupt.PBFeld_5.Image = My.Resources.apple_336015
    105. ElseIf Feld5 = 6 Then
    106. Haupt.PBFeld_5.Image = My.Resources.bananas_311788
    107. ElseIf Feld5 = 7 Then
    108. Haupt.PBFeld_5.Image = My.Resources.citron_154449
    109. ElseIf Feld5 = 8 Then
    110. Haupt.PBFeld_5.Image = My.Resources.strawberry_34066
    111. ElseIf Feld5 = 9 Then
    112. Haupt.PBFeld_5.Image = My.Resources.pears_1990797_1920
    113. Else
    114. Haupt.PBFeld_5.Image = My.Resources.favorite_153144
    115. End If
    116. If Feld6 = 1 Then
    117. Haupt.PBFeld_6.Image = My.Resources.kiwi_2673038_1920
    118. ElseIf Feld6 = 2 Then
    119. Haupt.PBFeld_6.Image = My.Resources.coconuts_575780
    120. ElseIf Feld6 = 3 Then
    121. Haupt.PBFeld_6.Image = My.Resources.pineapple_300038
    122. ElseIf Feld6 = 4 Then
    123. Haupt.PBFeld_6.Image = My.Resources.cherry_105141
    124. ElseIf Feld6 = 5 Then
    125. Haupt.PBFeld_6.Image = My.Resources.apple_336015
    126. ElseIf Feld6 = 6 Then
    127. Haupt.PBFeld_6.Image = My.Resources.bananas_311788
    128. ElseIf Feld6 = 7 Then
    129. Haupt.PBFeld_6.Image = My.Resources.citron_154449
    130. ElseIf Feld6 = 8 Then
    131. Haupt.PBFeld_6.Image = My.Resources.strawberry_34066
    132. ElseIf Feld6 = 9 Then
    133. Haupt.PBFeld_6.Image = My.Resources.pears_1990797_1920
    134. Else
    135. Haupt.PBFeld_6.Image = My.Resources.favorite_153144
    136. End If
    137. If Feld7 = 1 Then
    138. Haupt.PBFeld_7.Image = My.Resources.kiwi_2673038_1920
    139. ElseIf Feld7 = 2 Then
    140. Haupt.PBFeld_7.Image = My.Resources.coconuts_575780
    141. ElseIf Feld7 = 3 Then
    142. Haupt.PBFeld_7.Image = My.Resources.pineapple_300038
    143. ElseIf Feld7 = 4 Then
    144. Haupt.PBFeld_7.Image = My.Resources.cherry_105141
    145. ElseIf Feld7 = 5 Then
    146. Haupt.PBFeld_7.Image = My.Resources.apple_336015
    147. ElseIf Feld7 = 6 Then
    148. Haupt.PBFeld_7.Image = My.Resources.bananas_311788
    149. ElseIf Feld7 = 7 Then
    150. Haupt.PBFeld_7.Image = My.Resources.citron_154449
    151. ElseIf Feld7 = 8 Then
    152. Haupt.PBFeld_7.Image = My.Resources.strawberry_34066
    153. ElseIf Feld7 = 9 Then
    154. Haupt.PBFeld_7.Image = My.Resources.pears_1990797_1920
    155. Else
    156. Haupt.PBFeld_7.Image = My.Resources.favorite_153144
    157. End If
    158. If Feld8 = 1 Then
    159. Haupt.PBFeld_8.Image = My.Resources.kiwi_2673038_1920
    160. ElseIf Feld8 = 2 Then
    161. Haupt.PBFeld_8.Image = My.Resources.coconuts_575780
    162. ElseIf Feld8 = 3 Then
    163. Haupt.PBFeld_8.Image = My.Resources.pineapple_300038
    164. ElseIf Feld8 = 4 Then
    165. Haupt.PBFeld_8.Image = My.Resources.cherry_105141
    166. ElseIf Feld8 = 5 Then
    167. Haupt.PBFeld_8.Image = My.Resources.apple_336015
    168. ElseIf Feld8 = 6 Then
    169. Haupt.PBFeld_8.Image = My.Resources.bananas_311788
    170. ElseIf Feld8 = 7 Then
    171. Haupt.PBFeld_8.Image = My.Resources.citron_154449
    172. ElseIf Feld8 = 8 Then
    173. Haupt.PBFeld_8.Image = My.Resources.strawberry_34066
    174. ElseIf Feld8 = 9 Then
    175. Haupt.PBFeld_8.Image = My.Resources.pears_1990797_1920
    176. Else
    177. Haupt.PBFeld_8.Image = My.Resources.favorite_153144
    178. End If
    179. If Feld9 = 1 Then
    180. Haupt.PBFeld_9.Image = My.Resources.kiwi_2673038_1920
    181. ElseIf Feld9 = 2 Then
    182. Haupt.PBFeld_9.Image = My.Resources.coconuts_575780
    183. ElseIf Feld9 = 3 Then
    184. Haupt.PBFeld_9.Image = My.Resources.pineapple_300038
    185. ElseIf Feld9 = 4 Then
    186. Haupt.PBFeld_9.Image = My.Resources.cherry_105141
    187. ElseIf Feld9 = 5 Then
    188. Haupt.PBFeld_9.Image = My.Resources.apple_336015
    189. ElseIf Feld9 = 6 Then
    190. Haupt.PBFeld_9.Image = My.Resources.bananas_311788
    191. ElseIf Feld9 = 7 Then
    192. Haupt.PBFeld_9.Image = My.Resources.citron_154449
    193. ElseIf Feld9 = 8 Then
    194. Haupt.PBFeld_9.Image = My.Resources.strawberry_34066
    195. ElseIf Feld9 = 9 Then
    196. Haupt.PBFeld_9.Image = My.Resources.pears_1990797_1920
    197. Else
    198. Haupt.PBFeld_9.Image = My.Resources.favorite_153144
    199. End If
    200. 'Haupt.Lbl_Feld1.Text = CType(Feld1, String)
    201. 'Haupt.Lbl_Feld2.Text = CType(Feld2, String)
    202. 'Haupt.Lbl_Feld3.Text = CType(Feld3, String)
    203. 'Haupt.Lbl_Feld4.Text = CType(Feld4, String)
    204. 'Haupt.Lbl_Feld5.Text = CType(Feld5, String)
    205. 'Haupt.Lbl_Feld6.Text = CType(Feld6, String)
    206. 'Haupt.Lbl_Feld7.Text = CType(Feld7, String)
    207. 'Haupt.Lbl_Feld8.Text = CType(Feld8, String)
    208. 'Haupt.Lbl_Feld9.Text = CType(Feld9, String)
    209. End Sub


    Vielleicht habt ihr ja ne Idee :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gurke258“ ()

    ein punkt ist, dass das Abrufen eines Resourcen-Bildes immer ein neues Bild generiert.
    Dieselbe Resource also 2mal abzurufen generiert den doppelten Speicherverbrauch.
    Besser, die Resourcen einmalig in Bitmaps überführen, und die Bitmaps dann mehrfach verwenden.

    Aber das reicht eiglich noch nicht, um den riesigen Speicherverbrauch zu erklären.
    Da würde ich vermuten, dass deine Methode öfter aufgerufen wird, und die entstehenden Bitmaps nicht disposed werden.

    Jo, da wäre das mit dem einmaligen Überführen in wiederverwendbare Bitmaps ja auch eine Lösung - die wiederverwendbaren Bitmaps sind ja grade nicht zu disposen.

    (ansonsten weiss ich leider nicht, was eine "SlotMaschine" eiglich ist)
    Okay das wäre ein Lösungsansatz dem ich aufjeden fall mal nach gehe wenn ich weiß wie das mit den Bitmaps funktioniert ^^

    Eine Slotmaschine ist ein kleiner Spielautomat :)

    Hier mal ein kleines Bild:


    Noch in der Alpha-Phase ^^


    Edit:
    Habs jetzt so gelöst und hab aktuell nur 170-180MB Arbeitsspeicher auslastung und ca. 2% Prozessorleistung.

    VB.NET-Quellcode

    1. Public Kiwi As Bitmap = My.Resources.kiwi_2673038_1920
    2. Public Banane As Bitmap = My.Resources.bananas_311788
    3. Public Kokusnuss As Bitmap = My.Resources.coconuts_575780
    4. Public Kirsche As Bitmap = My.Resources.cherry_105141
    5. Public Stern As Bitmap = My.Resources.favorite_153144
    6. Public Zitrone As Bitmap = My.Resources.citron_154449
    7. Public Birne As Bitmap = My.Resources.pears_1990797_1920
    8. Public Erdbeere As Bitmap = My.Resources.strawberry_34066
    9. Public Ananas As Bitmap = My.Resources.pineapple_300038
    10. Public Apfel As Bitmap = My.Resources.apple_336015


    Hier nochmal der Sub:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub Drehen()
    2. Feld1 = Int(Rnd() * 10)
    3. Feld2 = Int(Rnd() * 10)
    4. Feld3 = Int(Rnd() * 10)
    5. Feld4 = Int(Rnd() * 10)
    6. Feld5 = Int(Rnd() * 10)
    7. Feld6 = Int(Rnd() * 10)
    8. Feld7 = Int(Rnd() * 10)
    9. Feld8 = Int(Rnd() * 10)
    10. Feld1 = Int(Rnd() * 10)
    11. If Feld1 = 1 Then
    12. Haupt.PBFeld_1.Image = Kiwi
    13. ElseIf Feld1 = 2 Then
    14. Haupt.PBFeld_1.Image = Kokusnuss
    15. ElseIf Feld1 = 3 Then
    16. Haupt.PBFeld_1.Image = Ananas
    17. ElseIf Feld1 = 4 Then
    18. Haupt.PBFeld_1.Image = Kirsche
    19. ElseIf Feld1 = 5 Then
    20. Haupt.PBFeld_1.Image = Apfel
    21. ElseIf Feld1 = 6 Then
    22. Haupt.PBFeld_1.Image = Banane
    23. ElseIf Feld1 = 7 Then
    24. Haupt.PBFeld_1.Image = Zitrone
    25. ElseIf Feld1 = 8 Then
    26. Haupt.PBFeld_1.Image = Erdbeere
    27. ElseIf Feld1 = 9 Then
    28. Haupt.PBFeld_1.Image = Birne
    29. Else
    30. Haupt.PBFeld_1.Image = Stern
    31. End If
    32. If Feld2 = 1 Then
    33. Haupt.PBFeld_2.Image = Kiwi
    34. ElseIf Feld2 = 2 Then
    35. Haupt.PBFeld_2.Image = Kokusnuss
    36. ElseIf Feld2 = 3 Then
    37. Haupt.PBFeld_2.Image = Ananas
    38. ElseIf Feld2 = 4 Then
    39. Haupt.PBFeld_2.Image = Kirsche
    40. ElseIf Feld2 = 5 Then
    41. Haupt.PBFeld_2.Image = Apfel
    42. ElseIf Feld2 = 6 Then
    43. Haupt.PBFeld_2.Image = Banane
    44. ElseIf Feld2 = 7 Then
    45. Haupt.PBFeld_2.Image = Zitrone
    46. ElseIf Feld2 = 8 Then
    47. Haupt.PBFeld_2.Image = Erdbeere
    48. ElseIf Feld2 = 9 Then
    49. Haupt.PBFeld_2.Image = Birne
    50. Else
    51. Haupt.PBFeld_2.Image = Stern
    52. End If
    53. If Feld3 = 1 Then
    54. Haupt.PBFeld_3.Image = Kiwi
    55. ElseIf Feld3 = 2 Then
    56. Haupt.PBFeld_3.Image = Kokusnuss
    57. ElseIf Feld3 = 3 Then
    58. Haupt.PBFeld_3.Image = Ananas
    59. ElseIf Feld3 = 4 Then
    60. Haupt.PBFeld_3.Image = Kirsche
    61. ElseIf Feld3 = 5 Then
    62. Haupt.PBFeld_3.Image = Apfel
    63. ElseIf Feld3 = 6 Then
    64. Haupt.PBFeld_3.Image = Banane
    65. ElseIf Feld3 = 7 Then
    66. Haupt.PBFeld_3.Image = Zitrone
    67. ElseIf Feld3 = 8 Then
    68. Haupt.PBFeld_3.Image = Erdbeere
    69. ElseIf Feld3 = 9 Then
    70. Haupt.PBFeld_3.Image = Birne
    71. Else
    72. Haupt.PBFeld_3.Image = Stern
    73. End If
    74. If Feld4 = 1 Then
    75. Haupt.PBFeld_4.Image = Kiwi
    76. ElseIf Feld4 = 2 Then
    77. Haupt.PBFeld_4.Image = Kokusnuss
    78. ElseIf Feld4 = 3 Then
    79. Haupt.PBFeld_4.Image = Ananas
    80. ElseIf Feld4 = 4 Then
    81. Haupt.PBFeld_4.Image = Kirsche
    82. ElseIf Feld4 = 5 Then
    83. Haupt.PBFeld_4.Image = Apfel
    84. ElseIf Feld4 = 6 Then
    85. Haupt.PBFeld_4.Image = Banane
    86. ElseIf Feld4 = 7 Then
    87. Haupt.PBFeld_4.Image = Zitrone
    88. ElseIf Feld4 = 8 Then
    89. Haupt.PBFeld_4.Image = Erdbeere
    90. ElseIf Feld4 = 9 Then
    91. Haupt.PBFeld_4.Image = Birne
    92. Else
    93. Haupt.PBFeld_4.Image = Stern
    94. End If
    95. If Feld5 = 1 Then
    96. Haupt.PBFeld_5.Image = Kiwi
    97. ElseIf Feld5 = 2 Then
    98. Haupt.PBFeld_5.Image = Kokusnuss
    99. ElseIf Feld5 = 3 Then
    100. Haupt.PBFeld_5.Image = Ananas
    101. ElseIf Feld5 = 4 Then
    102. Haupt.PBFeld_5.Image = Kirsche
    103. ElseIf Feld5 = 5 Then
    104. Haupt.PBFeld_5.Image = Apfel
    105. ElseIf Feld5 = 6 Then
    106. Haupt.PBFeld_5.Image = Banane
    107. ElseIf Feld5 = 7 Then
    108. Haupt.PBFeld_5.Image = Zitrone
    109. ElseIf Feld5 = 8 Then
    110. Haupt.PBFeld_5.Image = Erdbeere
    111. ElseIf Feld5 = 9 Then
    112. Haupt.PBFeld_5.Image = Birne
    113. Else
    114. Haupt.PBFeld_5.Image = Stern
    115. End If
    116. If Feld6 = 1 Then
    117. Haupt.PBFeld_6.Image = Kiwi
    118. ElseIf Feld6 = 2 Then
    119. Haupt.PBFeld_6.Image = Kokusnuss
    120. ElseIf Feld6 = 3 Then
    121. Haupt.PBFeld_6.Image = Ananas
    122. ElseIf Feld6 = 4 Then
    123. Haupt.PBFeld_6.Image = Kirsche
    124. ElseIf Feld6 = 5 Then
    125. Haupt.PBFeld_6.Image = Apfel
    126. ElseIf Feld6 = 6 Then
    127. Haupt.PBFeld_6.Image = Banane
    128. ElseIf Feld6 = 7 Then
    129. Haupt.PBFeld_6.Image = Zitrone
    130. ElseIf Feld6 = 8 Then
    131. Haupt.PBFeld_6.Image = Erdbeere
    132. ElseIf Feld6 = 9 Then
    133. Haupt.PBFeld_6.Image = Birne
    134. Else
    135. Haupt.PBFeld_6.Image = Stern
    136. End If
    137. If Feld7 = 1 Then
    138. Haupt.PBFeld_7.Image = Kiwi
    139. ElseIf Feld7 = 2 Then
    140. Haupt.PBFeld_7.Image = Kokusnuss
    141. ElseIf Feld7 = 3 Then
    142. Haupt.PBFeld_7.Image = Ananas
    143. ElseIf Feld7 = 4 Then
    144. Haupt.PBFeld_7.Image = Kirsche
    145. ElseIf Feld7 = 5 Then
    146. Haupt.PBFeld_7.Image = Apfel
    147. ElseIf Feld7 = 6 Then
    148. Haupt.PBFeld_7.Image = Banane
    149. ElseIf Feld7 = 7 Then
    150. Haupt.PBFeld_7.Image = Zitrone
    151. ElseIf Feld7 = 8 Then
    152. Haupt.PBFeld_7.Image = Erdbeere
    153. ElseIf Feld7 = 9 Then
    154. Haupt.PBFeld_7.Image = Birne
    155. Else
    156. Haupt.PBFeld_7.Image = Stern
    157. End If
    158. If Feld8 = 1 Then
    159. Haupt.PBFeld_8.Image = Kiwi
    160. ElseIf Feld8 = 2 Then
    161. Haupt.PBFeld_8.Image = Kokusnuss
    162. ElseIf Feld8 = 3 Then
    163. Haupt.PBFeld_8.Image = Ananas
    164. ElseIf Feld8 = 4 Then
    165. Haupt.PBFeld_8.Image = Kirsche
    166. ElseIf Feld8 = 5 Then
    167. Haupt.PBFeld_8.Image = Apfel
    168. ElseIf Feld8 = 6 Then
    169. Haupt.PBFeld_8.Image = Banane
    170. ElseIf Feld8 = 7 Then
    171. Haupt.PBFeld_8.Image = Zitrone
    172. ElseIf Feld8 = 8 Then
    173. Haupt.PBFeld_8.Image = Erdbeere
    174. ElseIf Feld8 = 9 Then
    175. Haupt.PBFeld_8.Image = Birne
    176. Else
    177. Haupt.PBFeld_8.Image = Stern
    178. End If
    179. If Feld9 = 1 Then
    180. Haupt.PBFeld_9.Image = Kiwi
    181. ElseIf Feld9 = 2 Then
    182. Haupt.PBFeld_9.Image = Kokusnuss
    183. ElseIf Feld9 = 3 Then
    184. Haupt.PBFeld_9.Image = Ananas
    185. ElseIf Feld9 = 4 Then
    186. Haupt.PBFeld_9.Image = Kirsche
    187. ElseIf Feld9 = 5 Then
    188. Haupt.PBFeld_9.Image = Apfel
    189. ElseIf Feld9 = 6 Then
    190. Haupt.PBFeld_9.Image = Banane
    191. ElseIf Feld9 = 7 Then
    192. Haupt.PBFeld_9.Image = Zitrone
    193. ElseIf Feld9 = 8 Then
    194. Haupt.PBFeld_9.Image = Erdbeere
    195. ElseIf Feld9 = 9 Then
    196. Haupt.PBFeld_9.Image = Birne
    197. Else
    198. Haupt.PBFeld_9.Image = Stern
    199. End If
    200. 'Kiwi.Dispose()
    201. 'Banane.Dispose()
    202. 'Kokusnuss.Dispose()
    203. 'Kirsche.Dispose()
    204. 'Stern.Dispose()
    205. 'Zitrone.Dispose()
    206. 'Birne.Dispose()
    207. 'Erdbeere.Dispose()
    208. 'Ananas.Dispose()
    209. 'Apfel.Dispose()
    210. 'Haupt.Lbl_Feld1.Text = CType(Feld1, String)
    211. 'Haupt.Lbl_Feld2.Text = CType(Feld2, String)
    212. 'Haupt.Lbl_Feld3.Text = CType(Feld3, String)
    213. 'Haupt.Lbl_Feld4.Text = CType(Feld4, String)
    214. 'Haupt.Lbl_Feld5.Text = CType(Feld5, String)
    215. 'Haupt.Lbl_Feld6.Text = CType(Feld6, String)
    216. 'Haupt.Lbl_Feld7.Text = CType(Feld7, String)
    217. 'Haupt.Lbl_Feld8.Text = CType(Feld8, String)
    218. 'Haupt.Lbl_Feld9.Text = CType(Feld9, String)
    219. End Sub

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Gurke258“ ()

    @Gurke258 Um das vielleicht etwas eleganter zu machen:
    Mach Dir ein Array, in dem Du die Bilder der Reihenfolge nach ablegst.
    Dann musst Du nur noch den Index generieren und mit diesem das korrekte Bild abgreifen.
    Da fallen fast 90% Deines Codes weg und Du kannst ihn selbst pflegen. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich weiß nicht genau, ob das helfen kann.
    Speichere deine Bilder nicht in die Ressource, sondern lade Sie als Datei.
    Dadurch wird das Programm kleiner, und benötigt weniger Systemressourcen.

    VB.NET-Quellcode

    1. Me.PictureBox1.Image = Image.FromFile(pfad)
    Visual Basic.NET 8o
    MS-SQL
    8o
    *unnötiges Vollzitat entfernt*

    Ich wollte eig die beiliegenden Dateien so schlank wie möglich halten und hatte mich jetzt nur auf die .exe beschränkt, die man zum spielen benötigt :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @Gurke258 In welchem Format liegen die Dateien denn vor?
    BMP frisst viel Platz.
    PNG ist kleiner und komprimiert verlustfrei,
    JPG ist noch kleiner und komprimiert verlustbehaftet.
    Und:
    Pack um Deinen Code im Post einen
    Spoiler
    Spoiler.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    So, und jetzt mal was wirklich wichtiges: Du solltest unbedingt die Visual Studio - Empfohlene Einstellungen tätigen.
    Dein Code an einer Stelle ein Beispiel, wie der Microsoft.VisualBasic - GeneralImport verhindert, dass du die .Net-Power kennenlernst.
    Weil in .Net sollte man die olle Rnd-Funktion nicht benutzen - stattdessen steht das elegantere System.Random-Objekt zur Verfügung.
    Also Option Strict on habe ich ja schon gelernt und habe mir auch deinen dazu angesehen. Allerdings kann ich die Microsoft.VisualBasic.ControlChars bei mir nicht finden und auch die Microsoft.VisualBasic kann ich nicht abhaken, da der Haken direkt wieder rein springt.

    Bei:

    RodFromGermany schrieb:

    Mach Dir ein Array, in dem Du die Bilder der Reihenfolge nach ablegst.
    Dann musst Du nur noch den Index generieren und mit diesem das korrekte Bild abgreifen.


    Stell ich mich grad schwer glaub ich.. das Array habe ich erstellt aber was meinst du genau mit Index?

    Hatte es jetzt so im Kopf:

    VB.NET-Quellcode

    1. Public slotbilder(10) As Bitmap
    2. slotbilder(1) = My.Resources.kiwi_2673038_1920
    3. If Feld1 = 1 Then
    4. Haupt.PBFeld_1.Image = slotbilder(1)
    5. ElseIf Feld1 = 2 Then
    6. Haupt.PBFeld_1.Image = Kokusnuss
    7. 'etc...


    Edit:

    Rnd() rausgeschmissen und System.Random wird jetzt verwendet :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Gurke258“ ()

    Gurke258 schrieb:

    auch die Microsoft.VisualBasic kann ich nicht abhaken, da der Haken direkt wieder rein springt.
    Das kann nicht sein, oder du bist der Einzige mir bekannte, bei dem das so ist.
    Schau die Videos im Tut nochmal genau an - irgendwas wirst du anders machen, als da gezeigt.

    Microsoft.VisualBasic.ControlChars wird nicht zum Aussuchen angeboten, sondern man musses selbst hinschreiben, und dann "Import hinzufügen" klicksen.
    Jo - sorry, ist dort nicht erklärt. Komisch dass du der erste bist, dem's auffällt.
    @Gurke258 So was:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Images() As Bitmap = {My.Resources.Banane, My.Resources.Citrone, My.Resources.Cocos, My.Resources.Kiwi}
    3. Private Rnd As New Random
    4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. Dim index = Me.Rnd.Next(Me.Images.Length)
    6. Me.PictureBox1.Image = Me.Images(index)
    7. End Sub
    8. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Dank für eure Antworten und Hilfe :)

    Mein Sub ist wesentlich kleiner und die Speicherauslastung geringer :D

    VB.NET-Quellcode

    1. Public Sub Drehen()
    2. Dim Rnd As New Random
    3. Feld1 = Rnd.Next(Slotbilder.Length)
    4. Feld2 = Rnd.Next(Slotbilder.Length)
    5. Feld3 = Rnd.Next(Slotbilder.Length)
    6. Feld4 = Rnd.Next(Slotbilder.Length)
    7. Feld5 = Rnd.Next(Slotbilder.Length)
    8. Feld6 = Rnd.Next(Slotbilder.Length)
    9. Feld7 = Rnd.Next(Slotbilder.Length)
    10. Feld8 = Rnd.Next(Slotbilder.Length)
    11. Feld9 = Rnd.Next(Slotbilder.Length)
    12. Haupt.PBFeld_1.Image = Slotbilder(Feld1)
    13. Haupt.PBFeld_2.Image = Slotbilder(Feld2)
    14. Haupt.PBFeld_3.Image = Slotbilder(Feld3)
    15. Haupt.PBFeld_4.Image = Slotbilder(Feld4)
    16. Haupt.PBFeld_5.Image = Slotbilder(Feld5)
    17. Haupt.PBFeld_6.Image = Slotbilder(Feld6)
    18. Haupt.PBFeld_7.Image = Slotbilder(Feld7)
    19. Haupt.PBFeld_8.Image = Slotbilder(Feld8)
    20. Haupt.PBFeld_9.Image = Slotbilder(Feld9)
    21. End Sub
    Ein Random pro Klasse ist genug. Befördere Zeile#3 aus der Sub raus.
    Wenn Du Deine PicBoxen in einer List(Of PictureBox) hättest, könntest Du sogar schreiben:

    VB.NET-Quellcode

    1. For Each PicBox In DeinePicBoxList
    2. DeinePicBoxList.Image = Slotbilder(Rnd.Next(Slotbilder.Length))
    3. Next

    Aber Moment mal. Was ist denn bitte Haupt? Ist das etwa der Name eines Formulars? Dann hoffentlich einer Instanz und nicht einer Klasse.
    Schau mal zur Sicherheit hier rein, um sicher zu gehen: Dialoge richtig instanziieren
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Gurke258 In Deinem Code ist nicht gesichert, dass aller Bilder vorkommen!
    Feld1 ... Feld9 könnten im Prinzip alle identisch sein.
    Mach Dir ein Array mit den Werten 0...9 und hol Dir zufällig den nächsten Index raus (ist ein wenig tricky).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    In Deinem Code ist nicht gesichert, dass aller Bilder vorkommen!
    Muss ja auch nicht. Wie in Post#2 zu sehen ist, darf es Duplikationen geben. Nur innerhalb der drei Walzen jeweils nicht. Zumindest ist es m.E. bei "normalen" Spielautomaten so. Allerdings ist das wohl auch von des TEs Spielmodell abhängig, wo es Duplikationen geben darf und wo nicht. Denn das zufällige Auswählen von Bildern in einer Sub namens "Drehen" impliziert eine nichtkonstante Reihenfolge der Bilder auf einer Walze.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    nichtkonstante Reihenfolge
    ist klar, aber Dubletten auf einer Walze darf es nicht geben.
    So wäre es ja möglich, dass ein "Dreier" nicht vorkommen kann, wenn die Bilder auf zwei Walzen disjunkt sind, und das wäre Betrug :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Dafür gibt es ja den "Stern" der als "Platzhalter" dient... das heißt habe ich 2 Bananen und 1 Stern so habe ich trotzdem gewonnen, genauso wie 2 sterne und 1 Banane :) Bei 3 sternen in einer Reihe gibts nen Bonus :D