Münzen-Einwurf-Animation

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Münzen-Einwurf-Animation

    Hallo. Bei diesem Einarmigen Banditen würde ich gerne eine Animation in den ActionListener des JButtons Neues Spiel einbringen,bei der eine Münze in einen Münzschlitz eingeworfen wird. Komme allerdings nicht weiter. Würde mich über Hilfe oder Anregungen freuen.



    Quellcode

    1. import java.util.Random;
    2. import java.awt.event.ActionEvent;
    3. import java.awt.event.ActionListener;
    4. import javax.swing.JButton;
    5. public class SPIELAUTOMAT
    6. {
    7. private SPIELWALZE spielwalze1, spielwalze2, spielwalze3;
    8. private int z1, z2, z3;
    9. private Random zufall;
    10. private JButton Spielbutton;
    11. private VOLLKREIS Muenze;
    12. private int Muenzen;
    13. public SPIELAUTOMAT()
    14. {
    15. Muenzen = 10;
    16. Muenze = new VOLLKREIS(400,400,20,6);
    17. Spielbutton = new JButton("Neues Spiel");
    18. Spielbutton.addActionListener(new ActionListener()
    19. {
    20. public void actionPerformed(ActionEvent evt)
    21. {
    22. spiele();
    23. }
    24. });
    25. zufall = new Random();
    26. z1 = 0;
    27. z2 = 0;
    28. z3 = 0;
    29. spielwalze1 = new SPIELWALZE(20,50,150,z1);
    30. spielwalze2 = new SPIELWALZE(170,50,150,z2);
    31. spielwalze3 = new SPIELWALZE(320,50,150,z3);
    32. }
    33. public void zeichne()
    34. {
    35. ZEICHENFENSTER.gibFenster().loescheText("x" +Muenzen,460,400);
    36. ZEICHENFENSTER.gibFenster().loescheText("Kein Geld mehr!",200,400);
    37. Muenze.zeichne();
    38. spielwalze1.zeichne();
    39. spielwalze2.zeichne();
    40. spielwalze3.zeichne();
    41. ZEICHENFENSTER.gibFenster().komponenteHinzufuegen(Spielbutton, "unten");
    42. ZEICHENFENSTER.gibFenster().loescheText("Hauptgewinn! 10€",200,400);
    43. ZEICHENFENSTER.gibFenster().loescheText("Kleiner Gewinn! 2€",200,400);
    44. ZEICHENFENSTER.gibFenster().zeichneText("x" +Muenzen, 460,400);
    45. if (Muenzen <1) ZEICHENFENSTER.gibFenster().zeichneText("Kein Geld mehr!",200,400);
    46. ZEICHENFENSTER.gibFenster().zeichneText("€",398,405);
    47. }
    48. public void setzeFarbmuster(int z1Neu, int z2Neu, int z3Neu)
    49. {
    50. z1 = z1Neu;
    51. z2 = z2Neu;
    52. z3 = z3Neu;
    53. spielwalze1.faerbeUm(z1);
    54. spielwalze2.faerbeUm(z2);
    55. spielwalze3.faerbeUm(z3);
    56. zeichne();
    57. }
    58. public void spiele()
    59. {
    60. if (Muenzen>0)
    61. {
    62. setzeFarbmuster(zufall.nextInt(9),zufall.nextInt(9),zufall.nextInt(9));
    63. ZEICHENFENSTER.gibFenster().loescheText("x" +Muenzen,460,400);
    64. Muenzen--;
    65. zeichne();
    66. if ((z1 == z2) && (z2==z3))
    67. {
    68. ZEICHENFENSTER.gibFenster().loescheText("Hauptgewinn! 10€",200,400);
    69. ZEICHENFENSTER.gibFenster().loescheText("x" +Muenzen,460,400);
    70. Muenzen = Muenzen + 10;
    71. ZEICHENFENSTER.gibFenster().zeichneText("x" +Muenzen, 460,400);
    72. ZEICHENFENSTER.gibFenster().zeichneText("Hauptgewinn! 10€",200,400);
    73. }
    74. else
    75. {
    76. if (( z1 == z2) || ( z2 == z3) || (z1 == z3))
    77. {
    78. ZEICHENFENSTER.gibFenster().loescheText("Hauptgewinn! 10€",200,400);
    79. ZEICHENFENSTER.gibFenster().loescheText("x" +Muenzen,460,400);
    80. Muenzen = Muenzen +2;
    81. ZEICHENFENSTER.gibFenster().zeichneText("x" +Muenzen, 460,400);
    82. ZEICHENFENSTER.gibFenster().zeichneText("Kleiner Gewinn! 2€",200,400);
    83. }
    84. }
    85. }
    86. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Torben Brodt ()

  • Ich hab Probleme dabei, die Zeichenfläche zwischen den einzelnen Schritten anzuhalten und die Münze zu zeichnen, da es bei Thread.sleep lange wartet, anstatt in den Zwischenschritten.
    Hier nochmal der Quellcode:

    Quellcode

    1. import java.util.Random;
    2. import java.awt.event.ActionEvent;
    3. import java.awt.event.ActionListener;
    4. import javax.swing.JButton;
    5. public class SPIELAUTOMAT
    6. {
    7. private SPIELWALZE spielwalze1, spielwalze2, spielwalze3;
    8. private int z1, z2, z3;
    9. private Random zufall;
    10. private JButton Spielbutton, MehrGeld;
    11. private VOLLKREIS Muenze;
    12. private int Muenzen;
    13. private KASTEN Einwurfschlitz;
    14. private EINWURFMUENZE Einwurfmuenze;
    15. public SPIELAUTOMAT()
    16. {
    17. Muenzen = 10;
    18. Einwurfmuenze = new EINWURFMUENZE();
    19. Einwurfschlitz = new KASTEN(500,50,20,150);
    20. Muenze = new VOLLKREIS(400,400,20,6);
    21. Spielbutton = new JButton("Neues Spiel");
    22. MehrGeld = new JButton("Mehr Geld");
    23. MehrGeld.addActionListener(new ActionListener()
    24. {
    25. public void actionPerformed(ActionEvent evt)
    26. {
    27. mehrGeld(10);
    28. }
    29. });
    30. Spielbutton.addActionListener(new ActionListener()
    31. {
    32. public void actionPerformed(ActionEvent evt)
    33. {
    34. spiele();
    35. }
    36. });
    37. zufall = new Random();
    38. z1 = 0;
    39. z2 = 0;
    40. z3 = 0;
    41. spielwalze1 = new SPIELWALZE(20,50,150,z1);
    42. spielwalze2 = new SPIELWALZE(170,50,150,z2);
    43. spielwalze3 = new SPIELWALZE(320,50,150,z3);
    44. }
    45. public void zeichne()
    46. {
    47. ZEICHENFENSTER.gibFenster().loescheText("x" +Muenzen,460,400);
    48. ZEICHENFENSTER.gibFenster().loescheText("Kein Geld mehr!",200,400);
    49. Muenze.zeichne();
    50. Einwurfschlitz.zeichne();
    51. spielwalze1.zeichne();
    52. spielwalze2.zeichne();
    53. spielwalze3.zeichne();
    54. ZEICHENFENSTER.gibFenster().komponenteHinzufuegen(Spielbutton, "unten");
    55. ZEICHENFENSTER.gibFenster().komponenteHinzufuegen(MehrGeld,"rechts");
    56. ZEICHENFENSTER.gibFenster().loescheText("Hauptgewinn! 10€",200,400);
    57. ZEICHENFENSTER.gibFenster().loescheText("Kleiner Gewinn! 2€",200,400);
    58. ZEICHENFENSTER.gibFenster().zeichneText("x" +Muenzen, 460,400);
    59. if (Muenzen <1) ZEICHENFENSTER.gibFenster().zeichneText("Kein Geld mehr!",200,400);
    60. ZEICHENFENSTER.gibFenster().zeichneText("€",398,405);
    61. }
    62. public void setzeFarbmuster(int z1Neu, int z2Neu, int z3Neu)
    63. {
    64. z1 = z1Neu;
    65. z2 = z2Neu;
    66. z3 = z3Neu;
    67. spielwalze1.faerbeUm(z1);
    68. spielwalze2.faerbeUm(z2);
    69. spielwalze3.faerbeUm(z3);
    70. zeichne();
    71. }
    72. public void mehrGeld (int MuenzenNeu)
    73. {
    74. ZEICHENFENSTER.gibFenster().loescheText("x" +Muenzen,460,400);
    75. Muenzen = Muenzen + MuenzenNeu;
    76. ZEICHENFENSTER.gibFenster().zeichneText("x" +Muenzen, 460,400);
    77. zeichne();
    78. }
    79. public void spiele()
    80. {
    81. if (Muenzen>0)
    82. {
    83. Einwurfmuenze.verschiebe(410,380);
    84. Einwurfmuenze.zeichne();
    85. Einwurfmuenze.warte(50);
    86. Einwurfmuenze.loesche();
    87. Einwurfmuenze.verschiebe(420,350);
    88. Einwurfmuenze.zeichne();
    89. Einwurfmuenze.warte(50);
    90. Einwurfmuenze.loesche();
    91. Einwurfmuenze.verschiebe(430,320);
    92. Einwurfmuenze.zeichne();
    93. Einwurfmuenze.warte(50);
    94. Einwurfmuenze.loesche();
    95. Einwurfmuenze.verschiebe(440,290);
    96. Einwurfmuenze.zeichne();
    97. Einwurfmuenze.warte(50);
    98. Einwurfmuenze.loesche();
    99. Einwurfmuenze.verschiebe(450,260);
    100. Einwurfmuenze.zeichne();
    101. Einwurfmuenze.warte(50);
    102. Einwurfmuenze.loesche();
    103. Einwurfmuenze.verschiebe(460,220);
    104. Einwurfmuenze.zeichne();
    105. Einwurfmuenze.warte(50);
    106. Einwurfmuenze.loesche();
    107. Einwurfmuenze.verschiebe(470,170);
    108. Einwurfmuenze.zeichne();
    109. Einwurfmuenze.warte(50);
    110. Einwurfmuenze.loesche();
    111. Einwurfmuenze.verschiebe(480,120);
    112. Einwurfmuenze.zeichne();
    113. Einwurfmuenze.warte(50);
    114. Einwurfmuenze.loesche();
    115. Einwurfmuenze.verschiebe(490,80);
    116. Einwurfmuenze.zeichne();
    117. Einwurfmuenze.warte(50);
    118. Einwurfmuenze.loesche();
    119. Einwurfmuenze.verschiebe(500,50);
    120. Einwurfmuenze.zeichne();
    121. Einwurfmuenze.warte(50);
    122. Einwurfmuenze.loesche();
    123. setzeFarbmuster(zufall.nextInt(9),zufall.nextInt(9),zufall.nextInt(9));
    124. ZEICHENFENSTER.gibFenster().loescheText("x" +Muenzen,460,400);
    125. Muenzen--;
    126. zeichne();
    127. if ((z1 == z2) && (z2==z3))
    128. {
    129. ZEICHENFENSTER.gibFenster().loescheText("Hauptgewinn! 10€",200,400);
    130. ZEICHENFENSTER.gibFenster().loescheText("x" +Muenzen,460,400);
    131. Muenzen = Muenzen + 10;
    132. ZEICHENFENSTER.gibFenster().zeichneText("x" +Muenzen, 460,400);
    133. ZEICHENFENSTER.gibFenster().zeichneText("Hauptgewinn! 10€",200,400);
    134. }
    135. else
    136. {
    137. if (( z1 == z2) || ( z2 == z3) || (z1 == z3))
    138. {
    139. ZEICHENFENSTER.gibFenster().loescheText("Hauptgewinn! 10€",200,400);
    140. ZEICHENFENSTER.gibFenster().loescheText("x" +Muenzen,460,400);
    141. Muenzen = Muenzen +2;
    142. ZEICHENFENSTER.gibFenster().zeichneText("x" +Muenzen, 460,400);
    143. ZEICHENFENSTER.gibFenster().zeichneText("Kleiner Gewinn! 2€",200,400);
    144. }
    145. }
    146. }
    147. }
    Alles anzeigen