Skocz do zawartości

Cygnus

Użytkownicy
  • Postów

    330
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Cygnus

  1. Witam wszystkich stworzyłem sobie tabele wyników..i w osobnym pokoju (bo tam mam ten obiekt)wyświetla mi parę pozycji między innymi imię,ilość zabitych wrogów,ilość monet zebranych i ilość punktów zgromadzonych. No,ale teraz chciałbym,żebym mógł dokonywać wpisu w momencie,kiedy zginę w grze i jak osiągnę odpowiednią ilość punktów,(bo ustawione mam tak sortowanie względem punktów) to wyświetli się informacja z podaniem swojego imienia i nastąpi wpis ,który wyświetli się w osobnym pokoju,i po tym pokój game over,a jak nie będę miał wystarczającej ilości punktów,to tylko tabelka pojawi się z wynikami.a potem plansza game over. Walczę z tym i nie wiem jak to rozgryźć.. jeśli chodzi o moje zmienne w grze to mam globalne,czyli global.life,global,coins,global.pScore tutaj kod mojej tabelki wyników,która jest w osobnym pokoju.. create GML hiscore_list = ds_list_create(); temp_hiscore_list = ds_list_create(); hiscore_pos_lenthg = 4; hiscore_max_list_length = 10; hiscore_sort_by = 3; name = "John"; kills = 3; coins = 5; points = 7; ds_list_add(hiscore_list,name); ds_list_add(hiscore_list,kills); ds_list_add(hiscore_list,coins); ds_list_add(hiscore_list,points); name = "Sean"; kills = 3; coins = 11; points = 2; ds_list_add(hiscore_list,name); ds_list_add(hiscore_list,kills); ds_list_add(hiscore_list,coins); ds_list_add(hiscore_list,points); name = "Bob"; kills = 17; coins = 5; points = 1; ds_list_add(hiscore_list,name); ds_list_add(hiscore_list,kills); ds_list_add(hiscore_list,coins); ds_list_add(hiscore_list,points); name = "Jimmy"; kills = 3; coins = 3; points = 21; ds_list_add(hiscore_list,name); ds_list_add(hiscore_list,kills); ds_list_add(hiscore_list,coins); ds_list_add(hiscore_list,points); step GML //sortowanie tabeli osiagniec ds_list_clear(temp_hiscore_list); do { var temp_highest_points = 0; for(p = 0; p < ds_list_size(hiscore_list); p += hiscore_pos_lenthg) { points = ds_list_find_value(hiscore_list, p + 3); if points > temp_highest_points {temp_highest_points = points} } var highest_position = 0; highest_position = ds_list_find_index(hiscore_list, temp_highest_points); name = ds_list_find_value(hiscore_list, highest_position -3); kills = ds_list_find_value(hiscore_list, highest_position -2); coins = ds_list_find_value(hiscore_list, highest_position -1); points = ds_list_find_value(hiscore_list, highest_position); ds_list_add(temp_hiscore_list,name); ds_list_add(temp_hiscore_list,kills); ds_list_add(temp_hiscore_list,coins); ds_list_add(temp_hiscore_list,points); repeat (4) {ds_list_delete(hiscore_list, highest_position -3)}; } until ds_list_size(hiscore_list) = 0; //sortowanie tabeli osiagniec ds_list_copy(hiscore_list,temp_hiscore_list); draw GML //rysowanie tabeli osiagniec var leftx = 20; var topy = 20; var xspacing = 200; var yspacing = 5; for(p = 0; p < ds_list_size(hiscore_list); p += hiscore_pos_lenthg) { name = ds_list_find_value(hiscore_list, p + 0); kills = ds_list_find_value(hiscore_list, p + 1); coins = ds_list_find_value(hiscore_list, p + 2); points = ds_list_find_value(hiscore_list, p + 3); draw_text(leftx + xspacing * 0, topy + yspacing * p, string(ceil(p/hiscore_pos_lenthg)) + "."); draw_text(leftx + xspacing * 1, topy + yspacing * p, "name : " + string(name)); draw_text(leftx + xspacing * 2, topy + yspacing * p, "kills : " + string(kills)); draw_text(leftx + xspacing * 3, topy + yspacing * p, "coins : " + string(coins)); draw_text(leftx + xspacing * 4, topy + yspacing * p, "score : " + string(points)); }
  2. Skomplikowana rzecz,też się z pochodnią borykam tak jak ty:/
  3. Thref właśnie testuje na swoich wartościach..Dziękuje;)
  4. Dziękuje Threef wszystko działa jak należy;] zrobiłem tak: w create obj rura dałem GML direction=180 //nadaje lewy kierunek ognia strzelam=true licznik_czasu=0 a w stepie tak jak mi podałeś czyli GML if(strzelam == true) { scr_Fire(x,y,(direction-5)+random(10),2) licznik_czasu-- if(licznik_czasu<=0) { strzelam=false licznik_czasu=200 } } else { //Nie strzelam licznik_czasu-- if(licznik_czasu<=0) { strzelam=true licznik_czasu=400 } } to samo zrobiłem w drugim stanie super działa..jeszcze raz dziękuje.
  5. Gnysku inaczej...poradziłem sobie z miotaczem..ale zmieniłem całkowicie kod ognia i kod rury,mam tylko jeden problem,a mianowicie taki,że chce zrobić przerwe np 2 sekundową,bo teraz non stop obiekt pali się ładnym miotaczem ognia.. a,wiec tak stworzyłem skrypt a w nim: GML repeat (1+floor(random(argument3))){ fire1=instance_create(argument0,argument1,obj_ogien1) fire1.direction=argument2 fire2=instance_create(argument0,argument1,obj_ogien2) fire2.direction=argument2 i teraz ładne z tym skryptem działa ognisty miotacz tu obiekt,z ktrego wydobywa się ogień w tym przypadku lewa rurka obj_rura_ogniowa_lewa create GML direction=180 //nadaje ogniu kierunek lewy</span> step GML scr_Fire(x,y,(direction-5)+random(10),2) no i teraz chciałbym,żeby z odstępami miotacz się palił,a nie cały czas bez przerwy
  6. Gnysek to jest właśnie wyżej cały kod tego miotacza..ja myślę,że gdzieś w stepie muszę dać warunek żeby wiązka ognia paliła się dłużej,a nie pufała.. zrobiłem jeszcze do tego sprite w postać stożka..co nadał kształt wiązce ognia..ale jak mówię takie pufanie krótkie jest,a nie długa wiązka ognia.
  7. Właśnie to zrobiłem dałem mniejszą liczbę i dalej pufa...zamiast długiego płomienia:/ kurcze Po za tym tym chyba przezroczystość się ustawia
  8. Cześć wszystkim chciałbym stworzyć obiekt,pułapkę,który wypuszcza ogień(taką długą strugę ognia) No i mam tutaj podobny kod,który skorzystałem z yoyogames,ale zamiast długą strugą ognia puszczać ,to obiekt pułapka puszcza mi krótko ogień...takie pufanie zamiast miotacza ognia... Co jest nie tak? tutaj kod ognia obj_ogien create GML speed=1 size=.05 sterp GML image_angle+=4 if size<1.5 size+=random(.01)+.01 if size>1 image_alpha-=.03 if image_alpha<=0 instance_destroy() if speed<=4 speed+=.1 draw GML draw_set_blend_mode(1) draw_sprite_ext(sprite_index,image_index,x,y,size,size,image_angle,c_white,image_alpha) draw_set_blend_mode(0) a tu obiekt,z którego ma wydobywać się czasowo struga ognia... obj_rura_ogniowa_lewa create GML strzal=1; image_speed =0; image_index =0; alarm 0 GML strzal=1; step GML if( strzal ) { var i; i = instance_create( x, y, obj_ogien );//tworzy ogien i. direction=180 //nadaje ogniowi kierunek w lewa strone i.speed = 5; //predkosc ognia strzal = 0; alarm[0] = room_speed * 0.4; //Odleglosc w czasie w jakim ma strzelac ogien }
  9. Cześć wszystkim Od paru dni próbuje ustawić tekst w textboxie,które zaimportowałem sobie ze sklepu marketplace z yoyogames.com Dokładnie ten link do textboxa No i problem jest taki,że jak go zaimportuje do swojego projektu,to tekst mi się w nim nakłada na siebie..dziwna to sytuacja,bo jak np zaimportuje go do nowego projektu pustego,to jest normalnie,a w moim już nie.Próbowałem i czcionkę zmienić,ale to nic nie daje.. Tutaj kod textboxa obj_textbox create GML /* skrypty, zawierają wszystkie niezbędne informacje na temat wszystkich z poniższych funkcji. */ // Zainicjowanie silnika CTB ctb_init(); // Oznaczenie tego obiektu jako pole tekstowe ctb_create(); // Dodawanie kilku ikon icon_typing = spr_ico_typing_small; icon_finished = spr_ico_continue_small; // Dodawanie kilku kolorow ctb_add_color( "default", c_white ); ctb_add_color( "white", c_white ); ctb_add_color( "blue", c_blue ); ctb_add_color( "yellow", c_yellow ); ctb_add_color( "red", c_red ); // Dodawanie kilku czcionek ctb_add_font( "default", f_normal ); ctb_add_font( "normal", f_normal ); ctb_add_font( "other", f_other ); // Dodawanie dzwieku ctb_add_sound( "gun", snd_gun ); // Dodawanie niestandardowego polecenia, aby zmienić charakter obrazu char_sprite = spr_char; ctb_add_command( "char", command_char ); //Ustawiamy dopełnienie pola tekstowego //Dodajemy duże lewe dopełnienie wstawiania sprite znaków w RHW tekstowym ctb_set_padding( 116,10,10,10 ); // Ustawienie tla pola tekstowego sprite_index = ctb_load_subimage( spr_textbox_slice9_subimages, room_width-128, 108 ); // Dodawanie tekstu w polu tekstowym ctb_add_text( "W[c:blue]e[c:yellow]l[c:red]c[c:default]o[c:blue]m[c:red]e[c:yellow]![c:default]" ); ctb_add_text( "My name is John.#[pause:15]I will explain you what this textbox engine can do." ); ctb_add_text( "First, you should know that it works using [f:other][c:yellow][tags][f:default][c:default]." ); ctb_add_text( "Those [c:yellow]tags[c:default] will let you control some cool properties of your textbox." ); ctb_add_text( "Some of them are [f:other]Fonts[f:default],[pause:30]"+ " [c:blue]Colors[c:default],[pause:30] [speed:0.1]Speed[speed:1],[pause:30]"+ " Sounds[sound:gun],[pause:30] pauses,[pause:30] or even custom commands that you can add!"); ctb_add_text( "Exciting, isn't it?" ); ctb_add_text( "All of them are available through the use of tags." ); ctb_add_text( "For example, to use a [c:blue]Color[c:default], you would use the [tag:off][c:<color_name>] or [color:<color_name>][tag:on] tags." ); ctb_add_text( "You can even use your own scripts in your own tags!" ); ctb_add_text( "For example, let's change my face for a second..." ); ctb_add_text( "[char:char2]Woah![pause:8]Woah![pause:8]Woah![pause:15]#What is going on!!!" ); ctb_add_text( "[char:char]Gosh, thank god it was only for one moment!" ); ctb_add_text( "Other cool features of the textbox are [c:yellow]Auto-Wrapping[c:default] and [c:blue]Auto-Overflow[c:default]." ); ctb_add_text( "[c:yellow]Auto-Wrapping[c:default] will automatically ajust the text to fit in the textbox." ); ctb_add_text( "You don't have to add any newline character." ); ctb_add_text( "Be warned that the textbox uses tags for newline, but also the [c:yellow][#][c:default] character." ); ctb_add_text( "To use the [#] character, you must use the [tag:off][#][tag:on] tag." ); ctb_add_text( "[c:blue]Auto-Overflow[c:default] means that if you add too much text, the overflowing text will automatically be added into the next page of the dialogue for you." ); ctb_add_text( "With those two automatic features, you don't have to worry about your text fitting in the textbox, the textbox takes care of all that for you." ); ctb_add_text( "With all that said,[pause:15]#I hope this little textbox will fit your games!" ); ctb_add_text( "Now I must take my leave." ); ctb_add_text( "Thanks for trying my textbox!" ); STEP GML ctb_update(); DRAW GML ctb_draw(); draw_sprite( char_sprite, 0, x+6, y+6 ); No i parę skryptów jest jeszcze.. Gdzieś tkwi bład.. na obrazku to wygląda tak:
  10. Dzieki..racja po co.mi otwieranie pliku. To wrzucam do kolizji bohatera
  11. No dobra tylko nie wiem,czy dobrze myśle?? GML if file_exists("save.dat") { file=file_text_open_append("save.dat"); } else if{ file=file_text_open__write("save.dat"); }
  12. Threef Kurcze to akurat jest dla plików txt chyba o to chodzi GML file_exists(fname) do plików .dat nie mogę znaleźć
  13. Czy wystarczy tu dać jakiś warunek,który by to sprawdzał??
  14. Cześć wszystkim Mam taki dziwny problem z zapisem gry. Gdy gra nie jest zachowana przez gracza podczas gry (prościej dopóki nie zbierze się obiektu save) to wywala błąd fatalny i wyłącza grę natomiast gdy stan gry jest już zachowany i zbierzemy obiekt save to wtedy błędu nie ma. Zawsze jest ten błąd gdy nie zachowaliśmy gry, a chcemy ją wczytać w menu. Ja myślę,że trzeba sprawdzić czy plik jest pusty jak jest pusty to komunikat i nic nie robi, a jak pełny to wczytuje(dodać warunek)jak to zrobić? niżej kod mojego obiektu_save,który zapisuje moją grę w danym miejscu. CREATE GML licznik=x/14; checked = false; //sprawdzenie list = ds_list_create(); //lista zachowujaca stan gry saveInfo=false; //informacja o zachowaniu gry saveInfoTime=3; //infroamcja o czasie zachowania gry ALARM 0 GML saveInfo=false; DRAW GML draw_self(); if (saveInfo) { draw_text(x, y, "save game has been completed") } kolizja z bohaterem GML if( !checked ) { checked = true; game_save("Save.dat"); //gre zachowywana pod nazwa pliku Save.dat if (!saveInfo) { saveInfo=true; audio_play_sound(dzwiek_checkpointisave, 1, false); alarm[0]=saveInfoTime*fps; //czas * ilosc FPS prosty wzor do zachowania stanu gry } } a tu przycisk obj_load game,który ładuje mi zapis gry STEP GML if (room !=roo_menu && mouse_check_button_pressed(mb_left)) { //nie rob nic } else if (position_meeting(obj_cursor.x,obj_cursor.y,obj_load_game)) && mouse_check_button_pressed(mb_left) //Gra wczytuje zachpowanie dopiero gdy nacisniemy na Load Game prawym myszy** nie gdy naciskamy w wolne pole pokoju menu { game_load( "Save.dat" ); audio_stop_sound (dzwiek_menu_glowne_gry); } teraz tak w STEP jeszcze mam: Bloczek wybrany Execute Script Applies to ustawione na Self script: scr_mouse_hover
  15. Dzięki pomogło kt117;) dałem tak: GML if obj_player.y>y-sprite_xoffset
  16. Niby jak mogę mieć ten samo Id skoro każdy jest rozstawiony w innej części mapy.. ok zmieniłem zmienną teraz nazywa się spadanie Może to być problem w tym,że jak np kolce są pod platformą spadające to tak spadną mimo,że nie znajduje się pod nimi,a nad nimi..w czym problem jest? One mają spadać tylko wyłącznie jak się znajdę pod nimi,a nie nad nimi.. obj_spadajace_kolce Create GML image_speed = 0; vspd = 4; spadanie = 0; Step GML //funkcja odpowiadajaca za spadanie obiektu if instance_exists(obj_player) { if obj_player.x>x-sprite_xoffset && obj_player.x<x+sprite_xoffset { spadanie = 1 } if (spadanie == 1) { y += vspd; } if (place_meeting(x, y + vspd, par_solid)) { instance_destroy(); } //zderzenie gracza scr_death(); }
  17. No dobra powalczę z tym,bo kurcze nie chce mi się robić multi obiektów spadających...
  18. No dobra...wszystko działa bardzo dobrze..ale teraz np chcę więcej tych obiektów spadających porozstawiać na danej scenerii no i problem w tym,że do jakichkolwiek na mapie rozstawionych tych kolców spadających podejdę,to wszystkie opadają nawet te co nie widzę ich,co są w innym miejscu scenerii..A mają przecież opadać tylko te pod którymi się znajduje,a nie wszystkie na mapie. Jest na to inny sposób niż robić kopie tego obiektu..(bo w końcu korzysta z tego samego sprita) ,ale wtedy musiałbym dużo zrobić kopii inaczej nazwać pododawać mnóstwo kolizji do bohatera..a to bez sensu.. Step GML //funkcja odpowiadajaca za spadanie obiektu if instance_exists(obj_player) { if obj_player.x>x-sprite_xoffset && obj_player.x<x+sprite_xoffset { trigger = 1 } if (trigger == 1) { y += vspd; } if (place_meeting(x, y + vspd, par_solid)) { instance_destroy(); } //zderzenie gracza scr_death(); } Create GML image_speed = 0; vspd = 7; trigger = 0;
  19. kt117 dzięki...a myślałem,że to trzeba w alarmie zrobić.. świetnie działa;)
  20. Dzień dobrym wszystkim Mam znikająca platformę wszystko ładnie działa,ale do platformy,która znika zrobiłem animację w paru krokach taki efekt zanikania..no i teraz...próbuje zrobić tak żeby animacja tej platformy uruchomiła się dopiero jak wskoczę na tą platformę,bo obecnie cały czas się uruchamia.. o to mój kod platformy ALARM 0 GML instance_change(obj_znikajacy,true); STEP GML if ( place_meeting( x, y - 1, obj_player ) ) { image_speed = 0.15; if ( alarm[0] <= 0 ) { alarm[0] = room_speed*1; // tu ustawiamy czas po jakim ma platforma zniknac } } CREATE GML //image_speed = 0.15;// tu chwilowo animacje wyłączyłem,bo mi non stop bezmyślnie migało.. Rozumiem,że w alarmie musze to ustawić?? że jak wskoczę na platformę włączy się animacja tej platformy i zniknie tak jak jest w kodzie w stepie ustawione.
  21. Dobra chłopaki poradziłem sobie w create dałem jeszcze licznik=0; i teraz jest dobrze;) dzięki jeszcze raz za pomoc;)
  22. Nie no spokojnie chłopaki wystarczy mi normalny ruch wahadłowy;) lewo prawo;) huśtanie;) obiekt narysowałem jako jedną całość i cały ma się huśtać nie duł... dobra to tak w step daje step GML licznik+=0.4 odchyl=20 image_angle=sin(licznik)*odchyl ???
  23. Dzięki Threef Kt117 temat zamknięty..okazało się,że przyczyną był zbyt krótki pasek bohatera...zwiększyłem go i jest już dobrze dostaje od razu obrażenia.. dzięki za pomoc.
  24. Tak dokładnie tak! to ma tylko i wyłącznie miejsce jak mam pełne HP
×
×
  • Dodaj nową pozycję...