Bedziom Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 Siema ;) Zrobiłem obiekt o_controler i on ma wyświetlać kilka napisów. Wszystko działało dobrze i nagle - przestało. Po starcie gry napisy widać przez pół sekundy i potem znikają :( W create tego obiektu mam tak : GML if file_exists('files/config/draw.txt') {execute_file('files/config/draw.txt',0,0)} else {show_message('Brak pliku konfiguracyjnego!') game_end()} w tym pliku jest tak : pl=true eng=false hud=true a w draw obiektu o_controler tak : GML if hud = true { if eng = true { if(view_current == 0) { draw_text(view_xview[0]+64,view_yview[0]+4,'Weapon: '+string(o_player_1.bron)) if instance_exists(o_bomb_plant) { draw_text(view_xview[0],view_yview[0]+32,'Bomb has been planted!') draw_text(view_xview[0]+32,view_yview[0]+54,'Time : '+string(global.czas)) } if !instance_exists(o_bomb_plant) { draw_text(view_xview[0]+32,view_yview[0]+32,'Bomb is not planted!') } } else if(view_current == 1) { draw_text(view_xview[1]+64,view_yview[1]+4,'Weapon: '+string(o_player_2.bron)) if instance_exists(o_bomb_plant) { draw_text(view_xview[1],view_yview[1]+32,'Bomb has been planted!') draw_text(view_xview[1]+32,view_yview[1]+54,'Time : '+string(global.czas)) } if !instance_exists(o_bomb_plant) { draw_text(view_xview[1]+32,view_yview[1]+32,'Bomb is not planted!') } } } if pl = true { if(view_current == 0) { draw_text(view_xview[0]+64,view_yview[0]+4,'Broń: '+string(o_player_1.bron)) if instance_exists(o_bomb_plant) { draw_text(view_xview[0],view_yview[0]+32,'Bomba jest podłożona!') draw_text(view_xview[0]+32,view_yview[0]+54,'Czas : '+string(global.czas)) } if !instance_exists(o_bomb_plant) { draw_text(view_xview[0]+32,view_yview[0]+32,'Bomba nie jest podłożona!') } } else if(view_current == 1) { draw_text(view_xview[1]+64,view_yview[1]+4,'Broń: '+string(o_player_2.bron)) if instance_exists(o_bomb_plant) { draw_text(view_xview[1],view_yview[1]+32,'Bomba jest podłożona!') draw_text(view_xview[1]+32,view_yview[1]+54,'Czas : '+string(global.czas)) } if !instance_exists(o_bomb_plant) { draw_text(view_xview[1]+32,view_yview[1]+32,'Bomba nie jest podłożona!') } } } } Kod pisany z głowy. Działał i nagle przestał :( Czemu tak się dzieje? Co ew. mogę poprawić? ps. proszę, nie wytykajcie mi błędów w angielskich napisach :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 13 Września 2011 Administratorzy Udostępnij Opublikowano 13 Września 2011 dodaj na początku: GML draw_set_alpha(1); draw_set_color(c_black); bo moze inny obiekt resetuje te ustawienia Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 13 Września 2011 Autor Udostępnij Opublikowano 13 Września 2011 to nie działa :( napisy pokazują się teraz na ok. 0,75 sekundy a potem znowu znikają :( E: poza tym nic poza poruszaniem nie dodawałem w innych obiektach na przestrzeni działania i niedziałania kodu. Nic też nie zmieniałem w kodzie w draw. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 Powiedziałbym, że ten kod jest niesamowicie niezorganizowany, ale nie powiem. To wszystko da się napisać w max. 15 linijkach. Sprawdź, czy działa, gdy jest tylko ten obiekt na mapie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 Po 1 zastąp plik txt plikiem ini. Obsługa plików ini w GM-ie jest banalna, a jeśli ktoś dowie się że używasz execute_file to wystarczy że dopisze sobie tam HP+=1000000 Po 2: W tym co nam pokazałeś nie ma nic co by oddziaływało na długość wyświetlania tych napisów, a to oznacza że pewnie masz tam jeszcze jakiś kod. Pewnie chciałeś zrobić by napisy pojawiały się na kilka sekund i znikały. Jeżeli tak to masz to w w tym kodzie którego nam nie pokazałeś i to oznacza że przy evencie po którym ma się pokazywać napis (Bomba jest podłożona) musisz ustawić licznik (ten który odpowiada za to jak długo ten tekst ma być na ekranie) na podstawową wartość. Mam rację? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 13 Września 2011 Autor Udostępnij Opublikowano 13 Września 2011 1 - w tych plikach nie będzie HP :) 2 - Niestety nie masz racji :P Pokazałem wszystko co mam w tym obiekcie. Tam nie ma nic więcej. Tekst ma się wyświetlać przez cały poziom. @muczek - ojtam ojtam, kod jak kod :P Spróbuję z tym "gdy jest tylko ten obiekt na mapie" :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 Prawdę mowiąc, gdyby ktoś odkrył, że używana jest funkcja execute_file, to mógłby na dobrą sprawę całą grę napisać. Wersja Pro za darmo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 13 Września 2011 Autor Udostępnij Opublikowano 13 Września 2011 Ale gra nie będzie podzielona na Pro albo Lite :P Tamte 3 zmienne (jak widać) wskazują tylko, czy gra ma być po polsku (pl) czy po angielsku (ang), oraz czy hud ma być włączony (hud). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 Jako ini twój plik wyglądał by tak: lang=pl hud=true Co do tego co nam chodzi z tym execute_file to wyobraź sobie że ktoś użyje tego kodu by dodać nowy object, doda go na mapę, uczyni Persistent i jakoś odkryje jak nazywają się przeciwnicy. Potem będzie mógł ich usuwać w każdym momencie :). Kiedyś chciałem zrobić grę na samym execute_file, tak by była łatwo modowalna :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 Nie rozumiesz. Na pisz sobie w tym pliku:"show_message("bedziom jest głupi")".... i wyobraź sobie, że teraz kto inny to tam wpisał. Nie mam oczywiście na myśli, że jesteś głupi, ale ktoś mógłby taką rzecz zrobić, walnąć SS'a i dać do neta, że sam o sobie to napisałeś. E:Threef był pierwszy. ;( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 Ale z drugiej strony Jeśli ktoś chce sobie popsuć grę, to niech to zrobi :gnysek: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 13 Września 2011 Autor Udostępnij Opublikowano 13 Września 2011 Kiedyś chciałem zrobić grę na samym execute_file, tak by była łatwo modowalna :P Oto mój motyw :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 13 Września 2011 Udostępnij Opublikowano 13 Września 2011 To nie bug! To ficzer! :cheers: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 14 Września 2011 Autor Udostępnij Opublikowano 14 Września 2011 Ech, no dobra... Ktoś ma może jakiś pomysł jak to rozwiązać? Ja naprawdę nie mam pojęcia, czemu napisy znikają. Ale wiem, że obiekt nie znika gdy znikają napisy, bo dałem mu w Destroy pokazanie wiadomości "Znikam!" ( :D ) i nic się nie pokazuje :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 14 Września 2011 Administratorzy Udostępnij Opublikowano 14 Września 2011 Widocznie coś zmienia hud na false. Masz klucz do GM 8.1, tam masz taką opcję aby szukać w całym projekcie w kodzie, to skorzystaj :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 14 Września 2011 Autor Udostępnij Opublikowano 14 Września 2011 nieee :) "if hud = true" dodałem już po tym, jak zaczęło znikać :P a z klucza korzystam, jestem zadowolony. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 14 Września 2011 Udostępnij Opublikowano 14 Września 2011 ludzie nauczcie sie stawiac spacje przed kodem, bo aż sie nie chce czytać... GML if(costam){ if costam //costam } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 14 Września 2011 Autor Udostępnij Opublikowano 14 Września 2011 Fajnie, że musicie mi wytykać to, jak ten kod jest nieczytelny, ale mi to szczerze zwisa, bo dla mnie ten kod jest czytelny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 14 Września 2011 Udostępnij Opublikowano 14 Września 2011 Ale dla innych nie, co utrudnia szukanie rozwiązań. Pz tym w ładnie ułożonym kodzie widać od razu zasięg klamerek i nie trzeba ich liczyć. Dla zainteresowanych: GML if hud = true { if eng = true { if(view_current == 0) { draw_text(view_xview[0]+64,view_yview[0]+4,'Weapon: '+string(o_player_1.bron)) if instance_exists(o_bomb_plant) { draw_text(view_xview[0],view_yview[0]+32,'Bomb has been planted!') draw_text(view_xview[0]+32,view_yview[0]+54,'Time : '+string(global.czas)) }; if !instance_exists(o_bomb_plant) { draw_text(view_xview[0]+32,view_yview[0]+32,'Bomb is not planted!') }; } else if(view_current == 1) { draw_text(view_xview[1]+64,view_yview[1]+4,'Weapon: '+string(o_player_2.bron)) if instance_exists(o_bomb_plant) { draw_text(view_xview[1],view_yview[1]+32,'Bomb has been planted!') draw_text(view_xview[1]+32,view_yview[1]+54,'Time : '+string(global.czas)) }; if !instance_exists(o_bomb_plant) { draw_text(view_xview[1]+32,view_yview[1]+32,'Bomb is not planted!') }; }; } if pl = true { if(view_current == 0) { draw_text(view_xview[0]+64,view_yview[0]+4,'Broń: '+string(o_player_1.bron)) if instance_exists(o_bomb_plant) { draw_text(view_xview[0],view_yview[0]+32,'Bomba jest podłożona!') draw_text(view_xview[0]+32,view_yview[0]+54,'Czas : '+string(global.czas)) }; if !instance_exists(o_bomb_plant) { draw_text(view_xview[0]+32,view_yview[0]+32,'Bomba nie jest podłożona!') }; } else if(view_current == 1) { draw_text(view_xview[1]+64,view_yview[1]+4,'Broń: '+string(o_player_2.bron)) if instance_exists(o_bomb_plant) { draw_text(view_xview[1],view_yview[1]+32,'Bomba jest podłożona!') draw_text(view_xview[1]+32,view_yview[1]+54,'Czas : '+string(global.czas)) }; if !instance_exists(o_bomb_plant) { draw_text(view_xview[1]+32,view_yview[1]+32,'Bomba nie jest podłożona!') }; }; }; }; I dwie rady ode mnie: 1. Zamiast GML if instance_exist( ... ) { //... }; if !instance_exists( ... ) { //... }; robisz:GML if instance_exists(...) { //... } else { //... }; i jest o wiele wygodniej, czytelniej itd. (możliwe nawet, że szybciej, ale o to trzeba by było zapytać ekspertów) 2. Zrób sobie jednowymiarowe tablice, a języki ponumeruj. W tablicach zapisujesz tekst w danym języku w jakiejś tam sytuacji. Przykładowo: Polski -> 0 Angielski -> 1 GML // inicjacja tablic bombajest[0]='Bomba jest podlozona.'; bombajest[1]='Bomb is planted.'; GML // użycie if instance_exists(bomba) { draw_text(0,0, bombajest[ lang ]; }; gdzie zmienna lang odpowiada za aktualnie używany język. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 14 Września 2011 Udostępnij Opublikowano 14 Września 2011 @Mentoss: zamiast jednowymiarowej tablicy powinien zrobić ds_grid. Wtedy wszystkie teksty mógłby przechowywać w jednej strukturze. Kod byłby też znacznie czytelniejszy. @Bedziom: sprawdź w trybie Debug, czy coś nie niszczy nagle tego obiektu, może dlatego znika. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 14 Września 2011 Autor Udostępnij Opublikowano 14 Września 2011 Ale wiem, że obiekt nie znika gdy znikają napisy, bo dałem mu w Destroy pokazanie wiadomości "Znikam!" ( :D ) i nic się nie pokazuje :( A poza tym debug nic nie pokazał ;( @Mentoss - tablic ni umim ale zakodowanie "1, 0" jest dobrym pomysłem :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 14 Września 2011 Udostępnij Opublikowano 14 Września 2011 ja z ds_'ów ogarniam listy tylko, może stacki by mi poszły w locie. grida nigdy nie używałem, ale skoro tak twierdzisz, to się nim w najbliższym czasie zainteresuję. Tablice to zwykłe zmienne, którym można tak jakby nadać kilka wartości. Taka tablica składa się z nazwy zmiennej i indeksów (wymiarów tablicy). Jest więc nazwa_zmiennej[ wartość ], gdzie wartość pozwala nam uzyskać wskazaną wartość zmiennej. Podsumowując: nazwazmiennej[0]="Tu jest pierwsza wartość zmiennej"; nazwazmiennej[1]="Druga wartość zmiennej"; (...) nazwazmiennej[152]="Sto pięćdziesiąta trzecia wartość zmiennej"; Wszystkie wartości muszą być tego samego typu. O ile dobrze pamiętam, jest ograniczenie do 32000 wartości danej tablicy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 14 Września 2011 Udostępnij Opublikowano 14 Września 2011 Tak, to i jeszcze głupie ograniczenie do dwóch wymiarów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 14 Września 2011 Autor Udostępnij Opublikowano 14 Września 2011 Dzięki za wytłumaczenie, ale schodzimy z tematu :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 14 Września 2011 Udostępnij Opublikowano 14 Września 2011 Wpisz wszystkie zmienne twojej gry do debugera, zmień room_speed na 1 i monituj sytuację. To przeważnie pomaga. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 14 Września 2011 Autor Udostępnij Opublikowano 14 Września 2011 Wpisałem zmienną lang (teraz zamiast tego eng i pl jest lang 1 lub 2) z o_controler i pokazuje wartość 2, czyli obiekt jest, skoro zmienna jest, tak? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 14 Września 2011 Udostępnij Opublikowano 14 Września 2011 1. Do rozkminiania egzystencji instancji służy funkcja instance_exists(); 2. Owszem, o ile lang nie jest zmienną globalną, to potrzebuje instancji, żeby istnieć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bedziom Opublikowano 14 Września 2011 Autor Udostępnij Opublikowano 14 Września 2011 2. lang nie jest globalna :) 1. a tak jak pisałem : Ale wiem, że obiekt nie znika gdy znikają napisy, bo dałem mu w Destroy pokazanie wiadomości "Znikam!" ( :D ) i nic się nie pokazuje :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 14 Września 2011 Udostępnij Opublikowano 14 Września 2011 Sprawdź zmienne HUD i inne takie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 14 Września 2011 Udostępnij Opublikowano 14 Września 2011 W debuggerze wejdź w tools>show local variables> o_controler i sprawdź czy coś nie zmienia ci tych zmiennych hud, eng, pl i na wszelki wypadek jeszcze sprawdź czy visible się nie ustawia na false; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się