Keyboard Funktions problem

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

  • Keyboard Funktions problem

    hy

    also ich will so ein kleines reflexspiel machen .das hab ich bis jetzt so gemacht

    GML-Quellcode

    1. if (zeichnen) // zeichnen wird true wenn man einen betimmten punkt erreicht hat und enter drückt
    2. {
    3. zeichnen = false;
    4. now = true;
    5. }
    6. if (now)
    7. {
    8. setback = false;
    9. timer = true;
    10. randomize();
    11. image_angle = choose(0,90,180,270); // hier lasse ich den image_angle eine random angle wählen
    12. now = false;
    13. }
    14. if (timer)
    15. {
    16. time++;
    17. taste = true;
    18. if (xscale < 2)&&(yscale <2) // hier sage ich das solange xscale kleiner 2 ist soll es jeden step um 0.2 grösser werden und dasselbe für yscale
    19. {
    20. xscale +=0.2;
    21. yscale +=0.2;
    22. }
    23. if (alpha < 1) // hier lasse ich alpha langsam einblenden
    24. {
    25. alpha +=0.04;
    26. }
    27. draw_sprite_ext(spr_reflex,0,obj_player.x+450,obj_player.y-300,xscale,yscale,image_angle,c_white,alpha); // hier lasse ich das pfeil sprite drawen mit alpha und xscale und yscale
    28. }
    29. if (time >= 360)
    30. {
    31. point-=20;
    32. setback = true;
    33. }
    34. if (setback)
    35. {
    36. timer = false;
    37. taste = false;
    38. time = 0;
    39. now = true;
    40. alpha = 0;
    41. xscale= 0;
    42. yscale= 0;
    43. }
    44. if (taste)
    45. {
    46. switch(image_angle) // hier hab ich ein switch gemacht das den image angle durchgeht
    47. {
    48. case 0:
    49. if (time < 360)&& keyboard_check(global.key_right)
    50. {
    51. point += 20;
    52. setback = true;
    53. }
    54. break;
    55. case 90:
    56. if (time < 360)&& keyboard_check(global.key_up)
    57. {
    58. point += 20;
    59. setback = true;
    60. }
    61. break;
    62. case 180:
    63. if (time < 360)&& keyboard_check(global.key_left)
    64. {
    65. point += 20;
    66. setback = true;
    67. }
    68. break;
    69. case 270:
    70. if (time < 360)&& keyboard_check(global.key_down)
    71. {
    72. point += 20;
    73. setback = true;
    74. }
    75. break;
    76. }
    77. }
    Alles anzeigen


    mein problem ist ich wollte jetzt auch noch buttons hinzufügen . Also E,G,Q usw.
    hierdurch

    GML-Quellcode

    1. TasteE = draw_sprite_ext(spr_reflex,0,obj_player.x+450,obj_player.y-300,xscale,yscale,0,c_white,alpha);
    2. TasteQ = draw_sprite_ext(spr_reflex,1,obj_player.x+450,obj_player.y-300,xscale,yscale,0,c_white,alpha);
    3. TasteG = draw_sprite_ext(spr_reflex,2,obj_player.x+450,obj_player.y-300,xscale,yscale,0,c_white,alpha);
    4. Pfeil = draw_sprite_ext(spr_reflex,3,obj_player.x+450,obj_player.y-300,xscale,yscale,image_angle,c_white,alpha);
    5. pick = choose (Pfeil,TasteE,TasteG,TasteQ)


    das mit dem zeichnen funktioniert auch...
    aber ich weiß nicht wie ich jetzt die abfragen machen soll weil das hier funktioniert nicht

    GML-Quellcode

    1. if (taste)&&(TasteE)// für die E taste
    2. {
    3. if keyboard_check(ord("E"))
    4. {
    5. point+=20;
    6. setback = true;
    7. }
    8. }



    EDIT: ok bin schon draufgekommen ....das mit dem zeichnen klappt doch nicht wirklich deshalb meine lösung:
    ich arbeite mit dem image_index


    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von acidrain833 ()

  • Kurze Anmerkung am Rande übrigens: Ein switch/case über image_angle kommt mir ein wenig gefährlich vor, das ist nämlich eine Fließkommazahl. Wenn du nicht garantieren kannst, dass du nur ganzzahlige Teiler von 0, 90, 180 und 270 draufaddierst oder abziehst, sondern stattdessen bei Werten wie 269.9335 oder 90.67 landest, weiß ich nicht wie der GM sich verhält. Rein naiv würd ich sagen, dass die entsprechenden cases dann nicht eintreten.
    kA, vielleicht in deinem Beispiel nicht so wild. Aber allgemein klingt's für mich nach potentieller Fehlerquelle. ^^