Hallo zusammen, ich habe ein Problem mit meinen Array.
Ich versuche das jetzt mal so gut wie möglich zu erklären.
Man kann im room Symbole erstellen, diese Symbole kann man auch verschieben etc...
Jetzt habe ich eine Funktion eingebaut um mehrere Symbole zu makieren.
Das klappt soweit wunderbar.
Damit ich dann die Symbole weiter bearbeiten kann, speichere ich die makierten in einen Array.
Jetzt sind aber immer Nuller mit drin.
Interessant ist, wenn 3 Symbole erstelle und makiere schaut das Array so aus.
Also ganz normal.
Wenn ich jetzt das erste Symbole das ich erstellt habe makiere schaut es auch ganz normal aus.
Wenn ich jetzt das dritte erstelte Symbole makiere sind Nuller drin.
Genau das selbe macht er wenn ich das zweite erstellte Symbol makiere.
Das ganze ist für mich wirklich ein Rätsel.
Könnt ihr euch mal den Code anschauen ob ich was übersehe?
Könnte das auch ein Bug sein?
Alles anzeigen
Ich versuche das jetzt mal so gut wie möglich zu erklären.
Man kann im room Symbole erstellen, diese Symbole kann man auch verschieben etc...
Jetzt habe ich eine Funktion eingebaut um mehrere Symbole zu makieren.
Das klappt soweit wunderbar.
Damit ich dann die Symbole weiter bearbeiten kann, speichere ich die makierten in einen Array.
Jetzt sind aber immer Nuller mit drin.
Interessant ist, wenn 3 Symbole erstelle und makiere schaut das Array so aus.
Also ganz normal.
Wenn ich jetzt das erste Symbole das ich erstellt habe makiere schaut es auch ganz normal aus.
Wenn ich jetzt das dritte erstelte Symbole makiere sind Nuller drin.
Genau das selbe macht er wenn ich das zweite erstellte Symbol makiere.
Das ganze ist für mich wirklich ein Rätsel.
Könnt ihr euch mal den Code anschauen ob ich was übersehe?
Könnte das auch ein Bug sein?
GML-Quellcode
- if (mouse_not_over_symbol) {
- var instanceNumber = instance_number(obj_zeichen);
- global.makierte_symbole_array = 0;
- if (instanceNumber >= 1){
- for(var i = 0;i<instanceNumber;i++){
- var symbol = instance_find(obj_zeichen,i);
- if (startpunkt_x < makierpunkt_x) {
- if (point_in_rectangle(symbol.x, symbol.y, startpunkt_x, startpunkt_y, makierpunkt_x, makierpunkt_y)){
- show_debug_message("symbol1 " + string(symbol))
- symbol.makiert = true;
- if(symbol.makiert == true){
- global.makierte_symbole_array[i] = symbol;
- }
- }else{
- symbol.makiert = false;
- }
- }else{
- if (point_in_rectangle(symbol.x, symbol.y, makierpunkt_x, makierpunkt_y, startpunkt_x, startpunkt_y)){
- show_debug_message("symbol2 " + string(symbol))
- symbol.makiert = true;
- if(symbol.makiert == true){
- global.makierte_symbole_array[i] = symbol;
- }
- }else{
- symbol.makiert = false;
- }
- }
- }
- }
- show_debug_message(global.makierte_symbole_array);
- if (array_length_1d(global.makierte_symbole_array) > 0){
- instance_activate_object(obj_makiert_copy);
- instance_activate_object(obj_makiert_delete);
- }else{
- instance_deactivate_object(obj_makiert_copy);
- instance_deactivate_object(obj_makiert_delete);
- }
- makieren = false;
- mouse_not_over_symbol = false;
- }
- if (global.makierte_ziehen) {
- global.makierte_ziehen = false;
- }