Moin zusammen,
derzeit bastel ich an einem Optionsmenü für mein Spiel - wie man es eigentlich von jedem gängigen Mobile-Game kennt.
Ich öffne das Options-Menü und habe unter anderem eine Checkbox um Musik (oder Sound) zu de-/aktivieren.
Das Spiel startet generell erstmal mit Musik. Gehe ich nun ins Optionsmenü und deaktiviere die Checkbox, stoppt er zwar die Musik, GM versucht diese aber gleich wieder zu starten, da ich in der gleichen Abfrage auch die Abfrage drin habe, was passieren soll, wenn der Ton nicht läuft (das er ihn halt starten soll). Aktiviere ich die Checkbox wieder, dann startet er auch normal wieder meine Musik. Lediglich der Punkt mit dem deaktivieren bekomme ich nicht gebacken. Ich weiss wo der Fehler liegt... aber momentan hab ich so ein Knick auf der Leitung, dass mir das wahrscheinlich sehr einfache Problem als unlösbar vorkommt
Ich poste einmal mein Startmenü (ist nur ein Objekt im Raum) und einmal die Musik Checkbox um zu verstehen, wie ich es derzeit anstelle:
Im Startmenüobjekt (obj_start_menu) gibt es 3 Events:
Create-Event
Step-Event
Spoiler anzeigen
Alles anzeigen
Draw-Event
Spoiler anzeigen
Alles anzeigen
So.... der Raum funktioniert auch soweit perfekt. Nun kommen wir zum "Soundcheck"
Gehe ich in das Settingsmenü, wird das Objekt der Checkbox erstellt. Dort wird geregelt, ob mit oder ohne Ton.
Checkbox von den Soundeinstellungen (obj_checkbox_sound)
Create
Step-Event
Left-Pressed
Left-Released
Glob Left-Released
Draw
Spoiler anzeigen
Sooooo.... also - das eigentlich Problem wird definitiv durch meine "Schleife" im Step-Event der Checkbox verursacht. Dessen bin ich mir schon klar geworden
Ich habe nur leider echt keinen Plan es hinzubekommen... habe es mit globalen Variablen schon probiert, aber das machte es mehr schlimmer als besser.
Irgendwer irgendwelche Lösungsvorschläge???
LG
Mirko
derzeit bastel ich an einem Optionsmenü für mein Spiel - wie man es eigentlich von jedem gängigen Mobile-Game kennt.
Ich öffne das Options-Menü und habe unter anderem eine Checkbox um Musik (oder Sound) zu de-/aktivieren.
Das Spiel startet generell erstmal mit Musik. Gehe ich nun ins Optionsmenü und deaktiviere die Checkbox, stoppt er zwar die Musik, GM versucht diese aber gleich wieder zu starten, da ich in der gleichen Abfrage auch die Abfrage drin habe, was passieren soll, wenn der Ton nicht läuft (das er ihn halt starten soll). Aktiviere ich die Checkbox wieder, dann startet er auch normal wieder meine Musik. Lediglich der Punkt mit dem deaktivieren bekomme ich nicht gebacken. Ich weiss wo der Fehler liegt... aber momentan hab ich so ein Knick auf der Leitung, dass mir das wahrscheinlich sehr einfache Problem als unlösbar vorkommt
Ich poste einmal mein Startmenü (ist nur ein Objekt im Raum) und einmal die Musik Checkbox um zu verstehen, wie ich es derzeit anstelle:
Im Startmenüobjekt (obj_start_menu) gibt es 3 Events:
Create-Event
Step-Event
GML-Quellcode
- // Hauptmenu
- if global.main = true
- {
- // Play Button
- if point_in_rectangle(mouse_x, mouse_y, room_width/2-124.5,room_height/2-100,room_width/2+124.5,room_height/2+148) && mouse_check_button_released(mb_left)
- {
- instance_create(0,0,obj_world_1_FadeIn)
- audio_stop_sound(sound_start_menu);
- }
- // Settings Button
- if point_in_rectangle(mouse_x, mouse_y, room_width/2-350,room_height/2-80,room_width/2-226,room_height/2+44) && mouse_check_button_released(mb_left)
- {
- global.main = false
- global.credits = false
- global.settings = true
- }
- // Quit Button
- //if point_in_rectangle(mouse_x, mouse_y, room_width/2-150, room_height/2+50, room_width/2+150, room_height/2+100) && mouse_check_button_released(mb_left)
- // {
- // game_end()
- // }
- // Spiel beenden
- if keyboard_check(vk_backspace)
- {
- if show_question("Spiel beenden?")
- game_end()
- }
- // Credits Button
- if point_in_rectangle(mouse_x, mouse_y, room_width/2+226,room_height/2-80,room_width/2+350,room_height/2+44) && mouse_check_button_released(mb_left)
- {
- global.main = false
- global.credits = true
- global.settings = false
- }
- // Settings-Checkboxen deaktivieren
- instance_deactivate_object(obj_checkbox_sound)
- }
- // Settings Menu
- if global.settings = true
- {
- // Close Button (X)
- if point_in_rectangle(mouse_x, mouse_y, room_width/2+380,room_height/2-240,room_width/2+430,room_height/2-180) && mouse_check_button_released(mb_left)
- {
- global.main = true
- global.credits = false
- global.settings = false
- }
- if keyboard_check(vk_backspace)
- {
- global.main = true
- global.credits = false
- global.settings = false
- }
- // Settings-Checkboxen aktivieren
- instance_activate_object(obj_checkbox_sound)
- }
- // Credits Menu
- if global.credits = true
- {
- // Close Button (X)
- if point_in_rectangle(mouse_x, mouse_y, room_width/2+380,room_height/2-240,room_width/2+430,room_height/2-180) && mouse_check_button_released(mb_left)
- {
- global.main = true
- global.credits = false
- global.settings = false
- }
- if keyboard_check(vk_backspace)
- {
- global.main = true
- global.credits = false
- global.settings = false
- }
- // Settings-Checkboxen deaktivieren
- instance_deactivate_object(obj_checkbox_sound)
- }
-
Draw-Event
GML-Quellcode
-
- //Gui Main Menu
- if global.main = true
- {
- draw_set_color(c_black);
- draw_set_alpha(0.5);
- draw_roundrect(room_width/2-450,room_height/2-250,room_width/2+450,room_height/2+250,true);
- draw_roundrect(room_width/2-451,room_height/2-251,room_width/2+451,room_height/2+251,false);
- draw_set_alpha(1)
- draw_set_color(make_color_rgb(170,170,0))
- draw_set_font(font_start_menu)
- draw_text(room_width/2-210,room_height/2-220,"S W I F T Y")
- // Start Button
- draw_sprite(spr_play,0,room_width/2-124.5,room_height/2-100)
- // Settings Button
- draw_sprite(spr_settings,0,room_width/2-350,room_height/2-80)
- // Credits Button
- draw_sprite(spr_credits,0,room_width/2+226,room_height/2-80)
- // Quit Button
- //draw_set_color(make_color_rgb(170,170,0))
- //draw_roundrect(room_width/2-150,room_height/2+150,room_width/2+150,room_height/2+200,true);
- //draw_roundrect(room_width/2-149,room_height/2+151,room_width/2+149,room_height/2+199,false);
- //draw_set_color(c_black);
- //draw_text(room_width/2-100,room_height/2+150,"Quit Game")
- }
- //Gui Credits Menu
- if global.credits = true
- {
- draw_set_color(c_black);
- draw_set_alpha(0.5);
- draw_roundrect(room_width/2-450,room_height/2-250,room_width/2+450,room_height/2+250,true);
- draw_roundrect(room_width/2-451,room_height/2-251,room_width/2+451,room_height/2+251,false);
- draw_set_alpha(1)
- draw_set_color(make_color_rgb(170,170,0))
- draw_set_font(font_start_menu)
- draw_text(room_width/2-190,room_height/2-220,"C R E D I T S")
- draw_sprite(spr_button_close,0,room_width/2+500,room_height/2-110)
- draw_set_color(c_white);
- draw_text(room_width/2-400,room_height/2-150,"Programming / Dev: Mirko Haesselbarth")
- draw_text(room_width/2-400,room_height/2-50,"Concept Artist / Design: Jorge Reissner")
- draw_text(room_width/2-400,room_height/2+50,"Sound / Musik: Matthias Schott")
- draw_text(room_width/2-400,room_height/2+150,"Story / Content: Patrick Berg")
- }
- //Gui Settings Menu
- if global.settings = true
- {
- draw_set_color(c_black);
- draw_set_alpha(0.5);
- draw_roundrect(room_width/2-450,room_height/2-250,room_width/2+450,room_height/2+250,true);
- draw_roundrect(room_width/2-451,room_height/2-251,room_width/2+451,room_height/2+251,false);
- draw_set_alpha(1)
- draw_set_color(make_color_rgb(170,170,0))
- draw_set_font(font_start_menu)
- draw_text(room_width/2-190,room_height/2-220,"S E T T I N G S")
- draw_sprite(spr_button_close,0,room_width/2+500,room_height/2-110)
- }
So.... der Raum funktioniert auch soweit perfekt. Nun kommen wir zum "Soundcheck"
Gehe ich in das Settingsmenü, wird das Objekt der Checkbox erstellt. Dort wird geregelt, ob mit oder ohne Ton.
Checkbox von den Soundeinstellungen (obj_checkbox_sound)
Create
Step-Event
Left-Pressed
Left-Released
Glob Left-Released
Draw
Alles anzeigen
GML-Quellcode
-
- /// Draw Checkbox
- // Checkbox
- draw_self();
- // Checkmark
- if (value)
- draw_sprite_ext(spr_checkbox_checked, 0, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
- // Label
- var spacing = 30; // pixels
- draw_text_transformed(x + sprite_width / 2 + spacing, y, label, image_xscale, image_yscale, image_angle);
Sooooo.... also - das eigentlich Problem wird definitiv durch meine "Schleife" im Step-Event der Checkbox verursacht. Dessen bin ich mir schon klar geworden
Ich habe nur leider echt keinen Plan es hinzubekommen... habe es mit globalen Variablen schon probiert, aber das machte es mehr schlimmer als besser.
Irgendwer irgendwelche Lösungsvorschläge???
LG
Mirko