Gedrawtes Rechteck ziehen

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

  • Gedrawtes Rechteck ziehen

    hallo

    ich hab ein problem ich hab ein rechteck gedrawt...wie kann ich das jetzt ziehen...also das wenn ich draufklicke und halte es mit der maus mitgeht....??? ich weiß ich muss ne variable für hold machen usw aber ich bekomms nicht hin...was mach ich falsch..

    könntet ihr mir erklären wie es nochmal funktioniert


    also hier mal ein code:
    create event

    GML-Quellcode

    1. ​hold = false;
    2. switchrect = false;
    3. selected = false;
    4. kllick_x = x;
    5. klick_y = y;



    draw_event

    GML-Quellcode

    1. ///Switchrect wird wo anders auf true gesetzt wollte ich aber nicht posten weil das zuviel wäre
    2. if (switchrect)&& collision_rectangle(xx-200,yy+120,xx2+200,yy2-60,obj_mouse,false,false)&&mouse_check_button(mb_left) // wenn das rechteck gezeichnet ist und ich draufklicke wird es selektiert
    3. {
    4. selected = true;
    5. }
    6. if (switchrect)&& mouse_check_button(mb_right) // hier zum abbrechen wenn man doch nicht will
    7. {
    8. switchrect = false;;
    9. selected = false;
    10. hold = false;
    11. }
    12. if (selected) // wenn selektiert dann zeichne einen grünen hintergrund um das rechteck
    13. {
    14. draw_set_color(c_green);
    15. draw_set_alpha(0.6);
    16. draw_rectangle(xx-205,yy+125,xx2+205,yy2-65,false);
    17. draw_set_alpha(1);
    18. draw_rectangle(xx-205,yy+125,xx2+205,yy2-65,true);
    19. }
    20. ​if (switchrect) // zeichnet das rechteck das ich in der variable box1 speichere
    21. {
    22. xx = klick_x; // ist mouse_x und y
    23. yy = klick_y;
    24. padding = 8;
    25. popup = false;
    26. draw_set_color(merge_colour(c_lime,c_white,0.5));
    27. draw_set_alpha(0.7);
    28. box1 =draw_rectangle(xx-200,yy+120,xx+200,yy-60,false);
    29. draw_set_alpha(1);
    30. draw_set_color(c_black);
    31. box1 =draw_rectangle(xx-200,yy+120,xx+200,yy-60,true);
    32. if (selected)&& (switchrect)&& mouse_check_button(mb_left) // wenn selektiert und rechteck existiert und linke maustaste gedrückt wird hold auf true gesetzt
    33. {
    34. hold = true;
    35. }
    36. if (hold) // wenn hold true dann ist x mouse_x..... aber es geht nicht
    37. {
    38. with (box1)
    39. {
    40. box1.x = mouse_x;
    41. box1.y = mouse_y;
    42. }
    43. }
    44. if (hold)&& mouse_check_button_released(mb_left) // wenn wir auslassen wird hold false und speichert die koordinaten
    45. {
    46. rkey_x = mouse_x;
    47. rkey_y = mouse_y;
    48. hold = false;
    49. }
    50. if (hold == false) // wenn hold false setze das rechteck zu letzer mouse_x position aber geht auch nicht
    51. {
    52. with (box1)
    53. {
    54. box1.x = rkey_x;
    55. box1.y = rkey_y;
    56. }
    57. }
    Alles anzeigen

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

  • ok hab doch noch ein problem:


    ok also mein problem ist jetzt noch wie sag ich das wenn er nicht auf das rechteck klickt das er dann nicht mehr selektiert ist usw.

    ja weiß schon mit collision_rectangle usw aber das ging nicht

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

  • also ich hab voll das problem also hier mal mein ganzer code davon:


    create event

    GML-Quellcode

    1. switchrect = false; // wird das rechteck gezeichnet?
    2. popup = false// wird das popup gezeichnet mit text switch?
    3. hold = false; // wird das rechteck gehalten und gezogen?
    4. selected = false;// wird das rechteck ausgewählt?



    draw_event:

    GML-Quellcode

    1. if (popup) // zeichnet ein popup rechteck sobald man irgendwo klickt wo switch draufsteht
    2. {
    3. xx = klick_x;
    4. yy = klick_y;
    5. xx2= klick_x;
    6. yy2= klick_y;
    7. padding = 8;
    8. //----Switchpopup----//
    9. draw_set_colour(merge_colour(c_gray,c_white,0.6));
    10. draw_set_alpha(0.5);
    11. draw_rectangle(xx-65,yy-120,xx2+65,yy2-80,false);
    12. draw_set_alpha(1);
    13. draw_set_color(c_black);
    14. draw_rectangle(xx-65,yy-120,xx2+65,yy2-80,true);
    15. draw_set_font(font1);
    16. draw_set_halign(fa_left);
    17. draw_set_valign(fa_top);
    18. draw_text(xx-65+padding*3,yy-120+padding,"Switch")
    19. if mouse_check_button(mb_left)&& collision_rectangle(xx-65,yy-120,xx2+65,yy2-80,obj_mouse,false,false) // setzt switchrect auf true was das rechteck zeichnet...die koordinaten für collision_rectangle sind die des rechtecks
    20. {
    21. switchrect = true;
    22. }
    23. if (switchrect)&& collision_rectangle(xx-200,yy+120,xx2+200,yy2-60,obj_mouse,false,false)&&mouse_check_button(mb_left)// hier wird selected auf true gesetzt wenn man auf das rechteck klickt
    24. {
    25. selected = true;
    26. }
    27. if (selected)&& collision_rectangle(xx-200,yy+120,xx2+200,yy2-60,obj_mouse,false,false)&& mouse_check_button(mb_left)// Hier wenn selektiert ist und man auf das rechteck klickt speichert man die koordinaten und setzt hold auf true
    28. {
    29. klickend_x = mouse_x;
    30. klickend_y = mouse_y;
    31. hold = true;
    32. }
    33. if (switchrect)// Hier wird das rechteck gezeichnet
    34. {
    35. xx = klick_x;
    36. yy = klick_y;
    37. xx2= klick_x;
    38. yy2= klick_y;
    39. if (hold) // wenn hold true ist dann speichere ist xx mouse_x
    40. {
    41. xx = mouse_x;
    42. yy = mouse_y;
    43. xx2 = mouse_x;
    44. yy2 = mouse_y;
    45. }
    46. if (selected)&& (hold == false)
    47. {
    48. xx = klicken_x;
    49. yy = klicken_y;
    50. xx2 = klicken_x;
    51. yy2 = klicken_y;
    52. }
    53. if (selected)&& collision_rectangle(xx-200,yy+120,xx2+200,yy2-60,obj_mouse,false,false)&& mouse_check_button_released(mb_left)
    54. {
    55. klicken_x = mouse_x;
    56. klicken_y = mouse_y;
    57. hold = false;
    58. }
    59. if (selected) // wenn selektiert dann zeichne ein grünes rechteck unter dem switchrect
    60. {
    61. draw_set_color(c_green);
    62. draw_set_alpha(0.6);
    63. draw_rectangle(xx-205,yy+125,xx2+205,yy2-65,false);
    64. draw_set_alpha(1);
    65. draw_rectangle(xx-205,yy+125,xx2+205,yy2-65,true);
    66. }
    67. padding = 8;
    68. popup = false;
    69. // ab hier wird das switchrect gezeichnet
    70. draw_set_color(merge_colour(c_lime,c_white,0.5));
    71. draw_set_alpha(0.7);
    72. box1 =draw_rectangle(xx-200,yy+120,xx2+200,yy2-60,false);
    73. draw_set_alpha(1);
    74. draw_set_color(c_black);
    75. box1 =draw_rectangle(xx-200,yy+120,xx2+200,yy2-60,true);
    76. if (switchrect)&& mouse_check_button(mb_right) // hier nur zum abbrechen wenn man es doch nicht machen will oder etwas anderes will
    77. {
    78. switchrect = false;
    79. box = false;
    80. selected = false;
    81. hold = false;
    82. }
    Alles anzeigen



    kann mir jemand helfen...also es ist so ich kann es nicht mehr ab selektieren........ und zweitens: wenn das switchrect grade erstellt wurde und es noch nicht selektiert ist und man irgendwo im raum klickt wird das rechteck plötzlich auf diese position gesetzt und es wird selektiert was eigentlich nicht sein sollte das es nur selektiert werden sollte wenn man auf das rechteck klickt...



    bitte um hilfe

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

  • danke für die antwort @Jomnitech


    aber nein das ist es nicht... ich denke ihr habt mich alle falsch verstanden....wenn ich irgendwo im raum klicke habe ich ein rechteck zeichnen lassen und wenn ich auf dieses rechteck klicke wird es ausgewählt.und wenn ich die maustaste währendessen noch halte kann ich das rechteck an eine andere position schieben.und wenn ich auslasse bleibt es an dieser position und ist noch selektiert.


    das problem jetzt ist...das wenn ich das alles gemacht habe und es noch selektiert ist und ich irgendwo in den raum klicke es wieder zu dieser position geht....was es nicht soll....(es sollte einfach dort bleiben wo es ist und nicht mehr ausgewählt sein)....


    ich komm einfach nicht dahinter.
  • also man muss auf das rechteck drücken wenn man es auswählen will. und wenn man dann den mb hält dann kann man es ziehen...und wenn man loslässt bleibt es bei dieser position stehn.

    aber klicke ich dann irgendwo im raum sollte es eigentlich nicht mehr ausgewählt sein und es sollte auch nicht zu dieser position springen.
  • @Aku_Ryou
    ja was ich so gesehn hab beim code passt alles.(stimmt jetzt aber nicht mehr überein mit dem von oben)

    das problem ist das ich ja das rechteck zeichnen lasse mit xx,yy,xx2,yy2 und das ist halt immer mouse_x und y,,,,und beim hold ist auch xx,yy,xx2,yy2 nur das ich dort dann xx = klicke_x mache...

    und bei release mache ich xx = klickend_x für das ziehen und dann auslassen.und wie gesagt bleibt es dann bei der position stehn wie gewünscht bleibt aber dann selektiert und wenn ich dann irgendwo klicke geht es aufeinmal dort hin....

    ich post mal meinen code:


    obj_controll
    create event

    GML-Quellcode

    1. popup = false; // eine variable für ein rechteck das ich anklicken kann um dann das rechteck zu zeichnen um das es geht
    2. klick_x = false; //
    3. klick_y = false;
    4. switchrect= false; // variable für das rechteck um das es geht
    5. writerect = false; // gehört zum switchrect es wird darin noch ein rechteck gezeichnet
    6. hold = false; // für die steuerung wann mb gehalten wird
    7. selected = false;// um ein rechteck auszuwählen



    obj_controll
    global left pressed

    GML-Quellcode

    1. if popup != true // wenn man irgendwo im raum klickt setzt popup auf true und zeichnet dann ein anderes rechteck auf das ich klicken kann und wenn ich dann drauf klicke wird das rechteck gedrawt das ich meine
    2. {
    3. popup = true;
    4. klick_x = mouse_x;
    5. klick_y = mouse_y;
    6. }


    obj_controll
    draw event

    GML-Quellcode

    1. draw_text(x+100,y+10,"Popup:"+string(popup))
    2. if (popup) // variable zum zeichnen eines rechtecks aber nicht um das es geht
    3. {
    4. xx = klick_x;
    5. yy = klick_y;
    6. xx2= klick_x;
    7. yy2= klick_y;
    8. padding = 8;
    9. //----Switchpopup----//
    10. draw_set_colour(merge_colour(c_gray,c_white,0.6)); // hier wird das rechteck für popup gezeichnet...(was aber nicht das ist um welches es geht)
    11. draw_set_alpha(0.5);
    12. draw_rectangle(xx-65,yy-120,xx2+65,yy2-80,false);
    13. draw_set_alpha(1);
    14. draw_set_color(c_black);
    15. draw_rectangle(xx-65,yy-120,xx2+65,yy2-80,true);
    16. draw_set_font(font1);
    17. draw_set_halign(fa_left);
    18. draw_set_valign(fa_top);
    19. draw_text(xx-65+padding*3,yy-120+padding,"Switch");
    20. if mouse_check_button(mb_left)&& collision_rectangle(xx-65,yy-120,xx2+65,yy2-80,obj_mouse,false,false) // wenn man die linke maustaste drückt während man auf das popup rechteck klickt wird switchrect true
    21. {
    22. switchrect = true; // ist das rechteck um das es geht
    23. }
    24. if (switchrect)&& collision_rectangle(xx-200,yy+120,xx2+200,yy2-60,obj_mouse,false,false)&&mouse_check_button(mb_left)
    25. {
    26. selected = true; // wenn das rechteck existiert(switchrect) und man mit der linken maustaste auf das rechteck klickt wird es ausgewählt
    27. }
    28. if (selected)&& collision_rectangle(xx-200,yy+120,xx2+200,yy2-60,obj_mouse,false,false)&& mouse_check_button(mb_left)
    29. {
    30. hold = true; // wenn das rechteck ausgewählt ist und man draufdrückt und hält wird hold auf true gesetzt zum ziehn(was funktioniert)
    31. }
    32. if (switchrect) // das rechteck um das es geht
    33. {
    34. xx = klick_x;
    35. yy = klick_y;
    36. xx2= klick_x;
    37. yy2= klick_y;
    38. popup = false;
    39. draw_set_color(merge_colour(c_lime,c_white,0.5)); // hier wird es endlich mal gezeichnet
    40. draw_set_alpha(0.7);
    41. box1 =draw_rectangle(xx-200,yy+120,xx2+200,yy2-60,false);
    42. draw_set_alpha(1);
    43. draw_set_color(c_black);
    44. box1 =draw_rectangle(xx-200,yy+120,xx2+200,yy2-60,true);
    45. draw_set_colour(c_white);
    46. box1 =draw_rectangle(xx-200,yy-60,xx2+200,yy2-30,false);
    47. draw_set_colour(c_black)
    48. box1 =draw_rectangle(xx-200,yy-60,xx2+200,yy2-30,true);
    49. draw_set_font(font1);
    50. draw_set_halign(fa_left);
    51. draw_set_valign(fa_top);
    52. box1 =draw_text(xx-55,yy-78+padding*2,"SWITCH");
    53. draw_set_colour(c_gray);
    54. box1 =draw_rectangle(xx-195,yy-57,xx2-145,yy2-33,false);
    55. draw_set_colour(c_black)
    56. box1 =draw_rectangle(xx-195,yy-57,xx2-145,yy2-33,true);
    57. draw_set_font(font2);
    58. box1 =draw_text(xx-195+padding+5,yy-55,"IN:");
    59. draw_set_colour(c_gray);
    60. box1 =draw_rectangle(xx+145,yy-57,xx2+195,yy2-33,false);
    61. draw_set_colour(c_black)
    62. box1 =draw_rectangle(xx+145,yy-57,xx2+195,yy2-33,true);
    63. draw_set_font(font2);
    64. box1 =draw_text(xx+145+padding+5,yy-55,"OUT:");
    65. draw_set_color(c_gray);
    66. draw_set_alpha(1);
    67. box1 =draw_rectangle(xx-199,yy-29,xx2+198,yy2+80,false);
    68. draw_set_alpha(1);
    69. draw_set_color(c_black);
    70. box1 =draw_rectangle(xx-199,yy-29,xx2+198,yy2+80,true);
    71. if (selected) // wenn switchrect ausgewählt ist wird ein grünes rechteck dahinter gezeichnet
    72. {
    73. draw_set_color(c_green);
    74. draw_set_alpha(0.6);
    75. draw_rectangle(xx-205,yy+125,xx2+205,yy2-65,false);
    76. draw_set_alpha(1);
    77. draw_rectangle(xx-205,yy+125,xx2+205,yy2-65,true);}
    78. if (hold) // wenn die maustaste gehalten wird und man zieht ist die x position die der mouse und auch die y
    79. {
    80. xx = mouse_x;
    81. yy = mouse_y;
    82. xx2 = mouse_x;
    83. yy2 = mouse_y;
    84. }
    85. if (selected)&& (hold == false)
    86. {
    87. xx = klicken_x;
    88. yy = klicken_y;
    89. xx2 = klicken_x;
    90. yy2 = klicken_y;
    91. }
    92. if (selected)&& collision_rectangle(xx-200,yy+120,xx2+200,yy2-60,obj_mouse,false,false)&& mouse_check_button_released(mb_left)
    93. {
    94. klicken_x = mouse_x; // und hier wenn man auslässt wenn es ausgewählt war und man es gezogen hat bleibt es bei der position wo man den button ausgelassen hat(funktioniert auch) aber es bleibt selektiert und wenn man //irgendwo im raum klickt geht es plötzlich dort hin.....und ja ich hab hier auch schon selected = false probiert was aber nicht ging
    95. klicken_y = mouse_y;
    96. hold = false;
    97. }
    98. if (switchrect)&& mouse_check_button(mb_right) // hier falls man währendessen abbrechen will
    99. {
    100. switchrect = false;
    101. box = false;
    102. selected = false;
    103. hold = false;
    104. }
    Alles anzeigen






    bitte wäre wirklich super wenn mir da jemand helfen würde
  • Hallo acidrain833!!!

    Deinen Codefehler habe ich jetzt zwar nicht gefunden, aber eine *.gmx die dir vielleicht weiterhilft.

    Das mit den Rechtecken als selektierbare Objekte fand ich interessant und deshalb habe ich das ganze mal getestet.

    Hier meine .gmx -Datei :
    http://workupload.com/file/JKzrF4y

    ...und hier als .gmz -Datei: :)
    workupload.com/file/gNFsDF2

    Vielleicht hilft es dir ja.

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

  • Mit einer gmx kann man nicht viel anfangen. Exportier das mal oben links unter "File" zu einer .gmz Datei und lad es hoch.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • ich hab ein problem und zwar erstell ich mit einen mausklick ein kleines rechteck und wenn ich auf dieses klicke wird ein grosses erstellt...und wenn ich auf dieses grosse klicke wird es ausgewählt und ich kann es ziehen an eine andere position.

    mein problem jetzt ist:

    wenn ich es gezogen habe und es dann nicht mehr ausgewählt ist wie kann ich dann sagen das dieses rechteck an der richtigen position steht und man es nicht mehr bewegen kann bis man halt wieder darauf klickt???
    und wenn man irgendwie im raum klickt sich ein neues davon erstellt wird...
  • also habs jetzt überarbeitet und es funktioniert endlich ..also das mit dem ziehn und dort bleiben ..aber jetzt hab ich gleich ein neues problem und zwar wenn ich jetzt eins erstellt hab..(switchrect)
    und dann irgendwo im raum klicke öffnet sich wieder das popup und wenn ich auf dieses popup klicke sollte ein neues switchrect erstellt werden was es aber nicht tut...warum nicht..bitte um hilfe..
    die variablen sind alle im create event initialisiert aber wollte ich jetzt nicht posten wegen dem platz

    hier mein code:

    obj_controll
    global left pressed

    GML-Quellcode

    1. ​if (popup != true)&& (selected == false)&&(hold == false)
    2. {
    3. popup = true;
    4. klick_x = mouse_x;
    5. klick_y = mouse_y;
    6. }
    7. else
    8. if (popup != true)&& (selected == false)&& (jetzt)
    9. {
    10. popup = true;
    11. klick_x = mouse_x;
    12. klick_y = mouse_y;
    13. }
    Alles anzeigen


    obj_controll
    draw_event

    GML-Quellcode

    1. [b][/b]if (popup)
    2. {
    3. x_x = klick_x;
    4. y_y = klick_y;
    5. x_x2= klick_x;
    6. y_y2= klick_y;
    7. padding = 8;
    8. start_x = mouse_x;
    9. start_y = mouse_y;
    10. [b][/b]//----Switchpopup----//
    11. draw_set_colour(merge_colour(c_gray,c_white,0.6));
    12. draw_set_alpha(0.5);
    13. draw_rectangle(x_x-65,y_y-120,x_x2+65,y_y2-80,false);
    14. draw_set_alpha(1);
    15. draw_set_color(c_black);
    16. draw_rectangle(x_x-65,y_y-120,x_x2+65,y_y2-80,true);
    17. draw_set_font(font1);
    18. draw_set_halign(fa_left);
    19. draw_set_valign(fa_top);
    20. draw_text(x_x-65+padding*3,y_y-120+padding,"Switch")
    21. ]
    22. [b][/b]if mouse_check_button(mb_left)&&(popup)&& collision_rectangle(x_x-65,y_y-120,x_x2+65,y_y2-80,obj_mouse,false,false)
    23. {
    24. popup = false;
    25. xx = start_x;
    26. yy = start_y;
    27. xx2= start_x;
    28. yy2= start_y;
    29. switchrect = true;
    30. writerect = false;
    31. }
    32. if (switchrect)
    33. {
    34. switch_x = mouse_x;
    35. switch_y = mouse_y;
    36. if (hold)
    37. {
    38. xx = switch_x;
    39. yy = switch_y;
    40. xx2= switch_x;
    41. yy2= switch_y;
    42. }
    43. else if (hold == false)&&(selected == false)&& (jetzt)
    44. {
    45. xx = endposition_x;
    46. yy = endposition_y;
    47. xx2= endposition_x;
    48. yy2= endposition_y;
    49. }
    50. if (selected)
    51. {
    52. draw_set_color(c_green);
    53. draw_set_alpha(0.6);
    54. draw_rectangle(xx-205,yy+125,xx2+205,yy2-65,false);
    55. draw_set_alpha(1);
    56. draw_rectangle(xx-205,yy+125,xx2+205,yy2-65,true);
    57. }
    58. padding = 8;
    59. draw_set_color(merge_colour(c_lime,c_white,0.5));
    60. draw_set_alpha(0.7);
    61. box1 =draw_rectangle(xx-200,yy+120,xx2+200,yy2-60,false);
    62. draw_set_alpha(1);
    63. draw_set_color(c_black);
    64. box1 =draw_rectangle(xx-200,yy+120,xx2+200,yy2-60,true);
    65. draw_set_colour(c_white);
    66. box1 =draw_rectangle(xx-200,yy-60,xx2+200,yy2-30,false);
    67. draw_set_colour(c_black)
    68. box1 =draw_rectangle(xx-200,yy-60,xx2+200,yy2-30,true);
    69. draw_set_font(font1);
    70. draw_set_halign(fa_left);
    71. draw_set_valign(fa_top);
    72. box1 =draw_text(xx-55,yy-78+padding*2,"SWITCH");
    73. draw_set_colour(c_gray);
    74. box1 =draw_rectangle(xx-195,yy-57,xx2-145,yy2-33,false);
    75. draw_set_colour(c_black)
    76. box1 =draw_rectangle(xx-195,yy-57,xx2-145,yy2-33,true);
    77. draw_set_font(font2);
    78. box1 =draw_text(xx-195+padding+5,yy-55,"IN:");
    79. draw_set_colour(c_gray);
    80. box1 =draw_rectangle(xx+145,yy-57,xx2+195,yy2-33,false);
    81. draw_set_colour(c_black)
    82. box1 =draw_rectangle(xx+145,yy-57,xx2+195,yy2-33,true);
    83. draw_set_font(font2);
    84. box1 =draw_text(xx+145+padding+5,yy-55,"OUT:");
    85. draw_set_color(c_gray);
    86. draw_set_alpha(1);
    87. box1 =draw_rectangle(xx-199,yy-29,xx2+198,yy2+80,false);
    88. draw_set_alpha(1);
    89. draw_set_color(c_black);
    90. box1 =draw_rectangle(xx-199,yy-29,xx2+198,yy2+80,true);
    91. if (switchrect)&& mouse_check_button(mb_middle)
    92. {
    93. switchrect = false;
    94. selected = false;
    95. hold = false;
    96. popup = false;
    97. writerect = false;
    98. }
    99. boxheight = 100;
    100. boxwidth = 380;
    101. font_size =font_get_size(font1);
    102. if (writerect)
    103. {
    104. str = keyboard_string;
    105. draw_text_ext(xx-199,yy-29+padding,str,font_size*0.7,boxwidth);
    106. if keyboard_check(vk_enter)
    107. {
    108. ini_open("dialoglernen.ini")
    109. ini_write_string("Switch",+string(_switch),str);
    110. _switch++;
    111. ini_close();
    112. keyboard_string="";
    113. writerect = false;
    114. }
    115. }
    116. if (selected == false)&& collision_rectangle(xx-199,yy,xx2+198,yy2+80,obj_mouse,false,false)&& (switchrect)&& mouse_check_button_pressed(mb_left)
    117. {
    118. popup = false;
    119. writerect = true;
    120. }
    121. if (selected)&& collision_rectangle(xx-200,yy-600,xx2+200,yy2-30,obj_mouse,false,false)&& mouse_check_button(mb_left)
    122. {
    123. popup = false;
    124. hold = true;
    125. switch_x = start_x;
    126. switch_y = start_y;
    127. }
    128. if (switchrect)&& collision_rectangle(xx-200,yy-60,xx2+200,yy2-30,obj_mouse,false,false)&&mouse_check_button_pressed(mb_right)
    129. {
    130. popup = false;
    131. selected = true;
    132. xx = start_x;
    133. yy = start_y;
    134. xx2= start_x;
    135. yy2= start_y;
    136. hold = false;
    137. }
    138. if (selected)&& (hold)&& mouse_check_button_released(mb_left)
    139. {
    140. hold = false;
    141. selected = false;
    142. jetzt = true;
    143. endposition_x = mouse_x;
    144. endposition_y = mouse_y;
    145. }
    146. }
    Alles anzeigen
  • Hallo acidrain833,
    mal eine kurze Frage:

    Was machst du den bei obj_mouse?

    Dein Code ist ziemlich grausam programmiert.

    Warum schachtelst du eigentlich die ganzen Mausabfragen in den Draw-Code. So etwas finde ich nicht gut. Nach meiner Meinung sollte hauptsächlich nur Zeichencode ins Draw-Event und keine anderen Event-Abfragen.

    Wo holst du eigentlich die Variable "jetzt" her?

    Es kommen bestimmt noch mehr Fragen. Ich versuche gerade deinen Code zu analysieren.

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

  • also ich hab das im draw event gemacht weil ich dann alles auf einen blick sehn kann und die ganzen mouse funktionen hab ich auch dort gemacht weil die variablen in diesem objekt gespeichert sind..und ich nicht obj_controll.selected schreiben wollte.....aber wenn ich fertig bin wird es eh schön aufgegliedert das ist jetzt nur damit ich nicht andauernd zu und auf machen muss.

    also was meinst bei obj mouse?? da ist nur im step event x= mouse_x und y = mouse_y;

    die variable jetzt ist auch im create event vom controll objekt..wie alle anderen variablen


    also hab mir grad deines angesehn und nicht schlecht sieht gut aus...anscheinend bist du schon weiter als ich trotzdem solltest nicht gleich schreiben das mein code grausam ist...so schreib ich halt noch...bis ich es besser kann.und durch solche antworten entmutigst du leute nur zu info.sowieso musst du mir ja nicht helfen. zwingt dich ja keiner dazu..

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