Skocz do zawartości

pankracy

Użytkownicy
  • Postów

    320
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez pankracy

  1. Dzięki SimianVirus7 po części już rozumiem... Pokombinuje teraz sam z szybkością poruszania się wroga.
  2. W stepie wroga mam zdefiniowany ruch wroga..natomiast w osobnym obiekcie przypisanym jako obiekt dziedziczący mam zdefiniowane obrażenia jakie zadaje wróg bohaterowi,ale hmmm..zastanawiam się,czy to zadziała SimianVirus7? Chociaż to ma sens przyjacielu...
  3. Rozumiem...ale jak to ma się do ruchu wroga?i siły obrażeń jaką ma nam zadawać na danym trudności poziomie, bo tego nie mogę zrozumieć...wiem,że mam to zdefiniować albo w osobnym obiekcie na mapie,albo jak już robię w CREATE bohatera ok to jeszcze jest zrozumiałe. Tu zablokowałem się... Teraz to co dałeś przykład wyżej to przyspieszy ruch bohatera o te 3.kiedy ruszymy w prawo.
  4. Reasumując Gnysku Piotrze...czyli rozumiem,że jak chcę osiągnąć wyżej zamierzony efekt to używam zmiennych w CREATE bohatera.
  5. image_speed,speed,hspd,hspeed Nie działa:-/ coś źle robię... Wróg nie chce przyspieszyć na poziomie medium i hard. Druga sprawa: Żeby wróg zabierał mi energię w takiej ilości zależne od poziomu trudności gry to rozumiem,że mam użyć zmiennej global.hp od bohatera tylko to ma się znajdować w CREATE wroga? Poziom easy zostaje bez zmian po 6 spotkaniach z wrogiem lub strzałach tracę życie Poziom medium bohater po 4 spotkaniach z wrogiem lub strzałach traci życie Poziom hard bohater po 3 spotkaniach z wrogiem lub strzałach traci życie
  6. Chłopaki działa teraz elegancko;-) Gamoń dał radę:-) ustawiłem sobie nawet na danym poziomie w w create wroga żeby mu więcej lub mniej hp zabierało;-) Utkwiłem na problemie związanym może błahostka,ale walczę z tym od kilku godzin z szybkością jaką poruszają się wrogowie.. używałem image_speed oraz hspeed,speed i niestety nie mogę przyspieszyć wroga. A założenie mam takie że np na poziomie easy wróg chodzi tak jak chodził na poziomie normal wróg przyspieszy np o 2 razy więcej niż na poziomie easy i na poziomie hard o 4 razy szybciej niż na poziomie easy. I druga sprawa...to chciałbym aby wrogowie na poziomie normal i hard zabierali mi wiecej energii... Obecnie jest tak,że bohater jest na 6 strzałów;-) chciałbym żeby na poziomie normalnym był na 4 strzały,a na poziomie trudnym na 3 strzały.. Kod bohatera nie będę wklejał,bo jest ten co wyżej tylko poprawiony o te zmienne;-) przykładowy kod wroga obj_bandyta CREATE ///Ustawienia event_inherited(); pointvalue=choose(10,20,30,40,50,60,70,80,90,100);//dodaje nam losowa ilosc pkt dead=false; follow=0 hp = 10; maxHp = 10; global.zegarObrazenWroga = 0; at=1 st=1 //pozycje powrotu wroga po restarcie mapy start_x = x; start_y = y; enum stan { patrol, wait, follow } action=stan.patrol ///poziomy trudnosci //easy difficult if global.difficulty = "easy" { hp = 10; } //medium difficult if global.difficulty = "medium" { hp = 15; } //hard difficult if global.difficulty = "hard" { hp = 20; } STEP if(instance_exists(obj_player) && action!=stan.patrol && collision_line(x,y,obj_player.x,obj_player.y,obj_niewidzialny,0,1)) { if(follow>room_speed/2) { follow=0 } image_speed=0 image_index=0 action=stan.wait } else if (instance_exists(obj_player) && distance_to_object(obj_player)<=250 && abs(y-obj_player.y)<64 && follow>=room_speed/2 && image_xscale-sign(obj_player.x-x)=0 && !collision_line(x,y,obj_player.x,obj_player.y-12,obj_niewidzialny,0,1)) { action=stan.follow follow=30 } if(action=stan.wait) { image_speed=0 image_index=0 follow++ if(follow>room_speed/2) { action=stan.patrol follow=0 } } else { image_speed=0.3 } if(action=stan.patrol) { follow++ } if (place_free(x,y+1)) {gravity = 0.5} else {gravity = 0} if at=1 { at=2 speed=4 } if at=2 { if (hspeed<0) { image_xscale = -1; if (!place_meeting(x-30,y+10,par_solid ) or place_meeting(x-1,y,par_solid )) { speed*=-1 st=1 if(action=stan.follow) { action=stan.wait } } } else if (hspeed>0) { image_xscale = 1; if (!place_meeting(x+30,y+10,par_solid ) or place_meeting(x+1,y,par_solid )) { speed*=-1 st=2 if(action=stan.follow) { action=stan.wait } } } } //Podazanie za graczem if(action=stan.follow && follow>0) { follow=max(0,follow-1) if(instance_exists(obj_player) && distance_to_object(obj_player)>3) { move_towards_point(obj_player.x,y,min(5,abs(obj_player.x-x))); } } else if(action=stan.patrol && distance_to_point(xstart,ystart)>2) { speed=4 } else if(action=stan.wait) { speed=0 } //ginie wrog if hp<0 { instance_destroy() } //Gdy wrog zostaje atakowany mruga if global.zegarObrazenWroga > 0 { visible = !visible; global.zegarObrazenWroga -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); dead = true; //wywolujemy alarm gdy wrog jest martwy //tworzymy losowa ilosc punktow po zabiciu wroga,oraz napis,ktory sie nad nim wyswietla z iloscia punktow losowych z = instance_create(x,y-10,obj_floating_txt); global.pScore+=pointvalue z.txt = "$" + string(pointvalue); z.yspeed = -4; //instance_create(x,y-50,choose(obj_coin,obj_diamencik,obj_trzy_poduszki,obj_serducho,obj_motyl,obj_gwiazdka,obj_ksiezyc)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) with instance_create(x,y,obj_bandyta_ginie) { //sprite_index = sprWrogGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; audio_play_sound(dzwiek_wrog_ginie, 1, false); //odtwarzamy dzwiek przy smierci wroga } } // czasowy respawn wrogow troche pomeczyles sie ale dziala jak trzeba :) if (dead == true) { //obj_spawn.dead = true; //respawn zabitego wroga jak nie bedzie dzialac to wtedy dead=true i wpisac instance_create(x,y,obj_spawn) instance_create(x,y,obj_spawn_bandyta); }
  7. Ech dobra już poprawiam gamoń ze mnie przepraszam chłopaki;-)
  8. hmmmm...:-) w bohaterze jest np: global.difficulty == "easy" a w obj_poziomtrudnosci jest np: global.difficulty = 0;
  9. Właśnie widze jaki numer odwaliłem kurcze W swoim kodzie resetowałem zmienne w obj_bohater a to cofało prace wykonaną przez obj_poziomtrudnosci.. Wywaliłem to z obj_bohater global.difficulty = 0; //ustaw latwy global.difficulty = 1; //ustaw sredni global.difficulty = 2; //ustaw trudny Niemniej poprawiłem to w taki sposób jaki mi pokazaliście i nadal to samo..bez względu jaki wybiore na nowej planszy poziom gry to i tak gra uruchamia Mi się w normalny sposób czyli z taką samą ilością żyć i energii jak było wcześniej.. Macie rację I tak właśnie jest Menu gry -> wybierane trudności -> rozgrywka (pojawienie się bohatera) I osobny obiekt w pokoju do wyboru poziomu trudnosci... obj_poziomtrudnosci zreszta byl wczesniej pod nazwa obj_poziomy zmienilem tylko nazwe ale to szczegol. obj_bohater Create /// Glowne deklaracje zmiennych Anatola ////////////////////////////// ///////ZMIENNE STALE////////// ///////////////////////////// ///Ustawienia event_inherited(); zbieranie=true; eksplozja = false; zasiegEksplozji = 22; silaEksplozji = 10; global.damage=0; //zmiena odzpowiedzialna za obrazenia zadawane po upadku z duzej wysokosci global.hp = 100; global.hit=0; //zmienna odpowiada za obrazenia kuli i miganie maxHp = 100; zegarAtaku = 0; odejmij = 0; //zmienna potrzebna do przesuwanie skrzynki w end step atakBierzacy = 0; global.zegarObrazen = 0; kierunekPlywania = 0; wysKierunek = 0; silaSkoku = 0; czasSkoku = 0; drabina = false; rs_timer = 0; //licznik czasowy w grze tlen=10;//ilosc tlenu //Moce specjalne pwrupSpd = 0; pwrupStr = 0; pwrupJmp = 0; //Pozycja odrodzenia Anatola i wywolanie skryptu widoku centralnego na graczu spawnX = x; spawnY = y; centerViewOnMe(); //zachowanie pozycji gracza przy checkpointach if (global.checkpointR == room) { x = global.checkpointx; y = global.checkpointy; } start_x = x; start_y = y; //funkcja dodaje HUD gracza na planszach bossowych if instance_exists(obj_game_controller) obj_game_controller.visible=1 else instance_create(0,0,obj_game_controller); //zamrazanie bohatera zamroz = false; zamroz_x = x; zamroz_y = y; playerSlot = 1; //ustalamy slot dla gracza numer 1 kierunekPlywaniaGamepad = 0; ///poziomy trudnosci //Ustaw domyślne wartości życia i szans, gdyby nie wyszukało jaki jest poziom trudności global.hp = 100; global.live = 7; /// Wyszukaj poziom trudności i ustaw odpowiednio życie i szanse //easy difficult if(global.difficulty == "easy") { global.hp = 100; global.live = 7; } //medium difficult if(global.difficulty == "medium") { global.hp = 80; global.live = 5; } //hard difficult if(global.difficulty == "hard") { global.hp = 50; global.live = 3; } obj_poziomtrudnosci (jest umieszczony w osobnym roomie) CREATE options_difficulty=ds_list_create() options_difficulty[|0]=("Easy") options_difficulty[|1]=("Medium") options_difficulty[|2]=("hard") selected=0 gp_up=false gup_down=false gp_left=false gp_right=false //Używane do animacji menu animation_speed=room_speed/4 for(var i=0; i<ds_list_size(options_difficulty); i++) { animation[i]=0 } STEP if(abs(gamepad_axis_value(0,gp_axislv))<0.3 && !keyboard_check(vk_anykey)) { gp_up=0 gp_down=0 } if(abs(gamepad_axis_value(0,gp_axislh))<0.3 && !keyboard_check(vk_anykey)) { gp_left=0 gp_right=0 } if(keyboard_check_pressed(vk_down) || gamepad_button_check_pressed(0,gp_padd) || (gamepad_axis_value(0,gp_axislv)>0.7 && !gp_up)) { selected++ if(selected>=ds_list_size(options_difficulty)) { selected=ds_list_size(options_difficulty)-1 } gp_up=true } if(keyboard_check_pressed(vk_up) || gamepad_button_check_pressed(0,gp_padu) || (gamepad_axis_value(0,gp_axislv)<-0.7 && !gp_down)) { selected-- if(selected<0) { selected=0 } gp_down=true } if(keyboard_check_pressed(vk_enter) || gamepad_button_check_pressed(0,gp_face1)) { if(selected == 0) then global.difficulty = 0; //ustaw latwy room_goto(inicjacja) if(selected == 1) then global.difficulty = 1; //ustaw sredni room_goto(inicjacja) if(selected == 2) then global.difficulty = 2; //ustaw trudny room_goto(inicjacja) } DRAW draw_set_valign(1) draw_set_halign(1) draw_set_font(fontIntro) var line_height=ceil(string_height("M")*1.1) for(var i=0; i<ds_list_size(options_difficulty); i++) { if(i=selected) { //Wybrana opcja animation[i]=clamp(animation[i]+(1/animation_speed),0,1) } else { animation[i]=clamp(animation[i]-(1/animation_speed),0,1) } var color=merge_colour(c_black,c_red,animation[i]) draw_text_transformed_color(x,y+(line_height*i),options_difficulty[|i],1+animation[i]/5,1+animation[i]/5,0,color,color,color,color,1) }
  10. dzięki SimianVirus7;-) gmt-to jest akurat funkcja ktora odwołuje się do skryptu odpowiedzialnego za tłumaczenia.Akurat nie ma problemu,bo do słownika dodałem tłumaczenie;-) Jednak dalej coś robię nie tak: wrzuciłem kod do create bohatera... założenia sa na razie takie(potem dodam więcej założeń) gracz wybierając poziom easy(łatwy) dostaje żyć 7 i energie ma 100% na poziomie normalnym ma energii też 100% ale żyć już 5 oraz poziom trudy hard energia 50% żyć 3 używam zmiennych globalnych global.live = 5; global.hp = 100; i wygląda to tak: obj_bohater Create /// Glowne deklaracje zmiennych Anatola ////////////////////////////// ///////ZMIENNE STALE////////// ///////////////////////////// ///Ustawienia event_inherited(); zbieranie=true; eksplozja = false; zasiegEksplozji = 22; silaEksplozji = 10; global.damage=0; //zmiena odzpowiedzialna za obrazenia zadawane po upadku z duzej wysokosci global.hp = 100; global.hit=0; //zmienna odpowiada za obrazenia kuli i miganie maxHp = 100; zegarAtaku = 0; odejmij = 0; //zmienna potrzebna do przesuwanie skrzynki w end step atakBierzacy = 0; global.zegarObrazen = 0; kierunekPlywania = 0; wysKierunek = 0; silaSkoku = 0; czasSkoku = 0; drabina = false; rs_timer = 0; //licznik czasowy w grze tlen=10;//ilosc tlenu //Moce specjalne pwrupSpd = 0; pwrupStr = 0; pwrupJmp = 0; //Pozycja odrodzenia Anatola i wywolanie skryptu widoku centralnego na graczu spawnX = x; spawnY = y; centerViewOnMe(); //zachowanie pozycji gracza przy checkpointach if (global.checkpointR == room) { x = global.checkpointx; y = global.checkpointy; } start_x = x; start_y = y; //funkcja dodaje HUD gracza na planszach bossowych if instance_exists(obj_game_controller) obj_game_controller.visible=1 else instance_create(0,0,obj_game_controller); //zamrazanie bohatera zamroz = false; zamroz_x = x; zamroz_y = y; playerSlot = 1; //ustalamy slot dla gracza numer 1 kierunekPlywaniaGamepad = 0; ///poziomy trudnosci global.difficulty = 0; //ustaw latwy global.difficulty = 1; //ustaw sredni global.difficulty = 2; //ustaw trudny //easy difficult if(global.difficulty == "easy") { global.hp = 100; global.live = 7; } //medium difficult if(global.difficulty == "medium") { global.hp = 80; global.live = 5; } //hard difficult if(global.difficulty == "hard") { global.hp = 50; global.live = 3; } teraz obj_poziomy ( on jest w odrębnym pokoju) CREATE options_difficulty=ds_list_create() options_difficulty[|0]=("Easy") options_difficulty[|1]=("Medium") options_difficulty[|2]=("hard") selected=0 gp_up=false gup_down=false gp_left=false gp_right=false //Używane do animacji menu animation_speed=room_speed/4 for(var i=0; i<ds_list_size(options_difficulty); i++) { animation[i]=0 } STEP if(abs(gamepad_axis_value(0,gp_axislv))<0.3 && !keyboard_check(vk_anykey)) { gp_up=0 gp_down=0 } if(abs(gamepad_axis_value(0,gp_axislh))<0.3 && !keyboard_check(vk_anykey)) { gp_left=0 gp_right=0 } if(keyboard_check_pressed(vk_down) || gamepad_button_check_pressed(0,gp_padd) || (gamepad_axis_value(0,gp_axislv)>0.7 && !gp_up)) { selected++ if(selected>=ds_list_size(options_difficulty)) { selected=ds_list_size(options_difficulty)-1 } gp_up=true } if(keyboard_check_pressed(vk_up) || gamepad_button_check_pressed(0,gp_padu) || (gamepad_axis_value(0,gp_axislv)<-0.7 && !gp_down)) { selected-- if(selected<0) { selected=0 } gp_down=true } if(keyboard_check_pressed(vk_enter) || gamepad_button_check_pressed(0,gp_face1)) { if(selected == 0) then global.difficulty = 0; //ustaw latwy room_goto(inicjacja) if(selected == 1) then global.difficulty = 1; //ustaw sredni room_goto(inicjacja) if(selected == 2) then global.difficulty = 2; //ustaw trudny room_goto(inicjacja) } DRAW draw_set_valign(1) draw_set_halign(1) draw_set_font(fontIntro) var line_height=ceil(string_height("M")*1.1) for(var i=0; i<ds_list_size(options_difficulty); i++) { if(i=selected) { //Wybrana opcja animation[i]=clamp(animation[i]+(1/animation_speed),0,1) } else { animation[i]=clamp(animation[i]-(1/animation_speed),0,1) } var color=merge_colour(c_black,c_red,animation[i]) draw_text_transformed_color(x,y+(line_height*i),options_difficulty[|i],1+animation[i]/5,1+animation[i]/5,0,color,color,color,color,1) } Gra się uruchamia wybieram poziom łatwy normalny i trudny i nadal jest jak było..jakikolwiek poziom bym wybrał to mam pełną energię i tyle żyć ile miałem cały czas na początku gry. Coś źle robię chłopaki.. A może też zamiast wrzucać ten kod do bohatera to stworzyć odrębny obiekt nazwać go np obiekt_poziomytrudnosci i w nim wrzucić kod z bohatera i od razu kod z wrogów? no sam nie wiem z tym pomyślę..tylko teraz mam problem,że to nie działa.
  11. Kurcze...fakt... Dobra jak to najprościej zrobić..tworze pokój a w nim obiekt np o nazwie obj_poziomtrudnosci i teraz tak... po wyborze z listy poziomu trudności,czy to easy,normal lub hard uruchomi się gra na danym poziomie.. ja myślę żeby użyć tych zmiennych globalnych „global.difficulty = 0” dla easy, „global.difficulty = 1” dla medium „global.difficulty = 2” dla hard. Tylko teraz patrze funkcji ds_list_create() nie można użyć... Co mam użyć żeby stworzyć menu poziomu trudności(nie mylić ze zwykłym menu)
  12. Coś mnie olśniło... w roomie osobnym,gdzie ustawie wybór poziomu trudności za nim rozpocznę grę mogę użyć taki kod;: korzystając z tablicy ds_list_create() „global.difficulty = 0” dla easy, „global.difficulty = 1” dla medium „global.difficulty = 2” dla hard.
  13. Przeciwników stawiam w danym roomie..scenerii. Właśnie kod potrzebuje żeby był jako odrębny obiekt umieszczony na mapie tam gdzie są wrogowie.. Stąd też moje pytanie było zadane w taki sposób;-) Jasne bez sensu jest wklejać kod który nic nie mówi zgadzam się z tą tezą...
  14. Dzięki Chłopaki;-) będę operował na globalnej zmiennej:-) I teraz tak: Mam menu gry zbudowane w taki sposób jak poniżej: Teraz chciałbym po wybraniu New Game przejść do pokoju z wyborem trudności poziomu ok to oczywiste,ale czy mam w tym pokoju użyć funkcji ds_list_create? Jak to ma wyglądać? Przechodzę z New Game do pokoju,gdzie wybieram poziom trudności następnie po wybraniu pokoju trudności przechodzę już do samej gry. Teraz tak ten kod wyżej powinien znajdować się we wrogu? czy może on być jako odrębny obiekt umieszczony na mapie gry? Obj_menu CREATE options=ds_list_create() options[|0]=gmt("New game") options[|1]=gmt("Load game") options[|2]=gmt("Highscore") options[|3]=gmt("Options") options[|4]=gmt("Credits") options[|5]=gmt("Exit") selected=0 gp_up=false gup_down=false gp_left=false gp_right=false //Używane do animacji menu animation_speed=room_speed/4 for(var i=0; i<ds_list_size(options); i++) { animation[i]=0 } STEP if(abs(gamepad_axis_value(0,gp_axislv))<0.3 && !keyboard_check(vk_anykey)) { gp_up=0 gp_down=0 } if(abs(gamepad_axis_value(0,gp_axislh))<0.3 && !keyboard_check(vk_anykey)) { gp_left=0 gp_right=0 } if(keyboard_check_pressed(vk_down) || gamepad_button_check_pressed(0,gp_padd) || (gamepad_axis_value(0,gp_axislv)>0.7 && !gp_up)) { selected++ if(selected>=ds_list_size(options)) { selected=ds_list_size(options)-1 } gp_up=true } if(keyboard_check_pressed(vk_up) || gamepad_button_check_pressed(0,gp_padu) || (gamepad_axis_value(0,gp_axislv)<-0.7 && !gp_down)) { selected-- if(selected<0) { selected=0 } gp_down=true } if(keyboard_check_pressed(vk_enter) || gamepad_button_check_pressed(0,gp_face1)) { if(selected=0) { room_goto(inicjacja) } else if(selected=1) { if(file_exists("save.dat")){ game_load( "Save.dat" ); } else { show_message("Cannot find save.dat file. Please start a new game.");//tu daj po angielsku info,że nie znaleziono pliku } audio_stop_sound (dzwiek_menu_glowne_gry); } else if(selected=2) { room_goto(rm_highscore) } else if(selected=3) { room_goto(rm_options) } else if(selected=4) { room_goto(rm_credits) } else if(selected=5) { game_end() } } DRAW draw_set_valign(1) draw_set_halign(1) draw_set_font(fontIntro) var line_height=ceil(string_height("M")*1.1) for(var i=0; i<ds_list_size(options); i++) { if(i=selected) { //Wybrana opcja animation[i]=clamp(animation[i]+(1/animation_speed),0,1) } else { animation[i]=clamp(animation[i]-(1/animation_speed),0,1) } var color=merge_colour(c_black,c_red,animation[i]) draw_text_transformed_color(x,y+(line_height*i),options[|i],1+animation[i]/5,1+animation[i]/5,0,color,color,color,color,1) }
  15. Naprawdę jestem pełen podziwu dla pracy jaką włożyli chłopaki żeby coś takiego stworzyć.. Pięknie to wygląda zarówno textbox jak i prolog...wygląda to zjawiskowo na tej księdze;-)
  16. Cześć wszystkim, Zastanawiam się nad stworzeniem poziomu trudności czyli: - łatwy - normalny - trudny jak to najlepiej zrobić? użyć zmiennej globalnej? generalnie chciałbym żeby wyglądało to tak: uruchamiam grę pojawia się plansza osobnego roomu z wyborem trudności w tym przypadku trzy stopnie trudności łatwy z większa ilością żyć np 5 żyć z pełną energią i bardziej flegmatycznymi to ujmę pułapkami i wrogami;-) dostaje dużo broni w tym przypadku amunicji np 30 Normalny czyli poziom ten co jest obecnie w grze;-) bez zmian Trudny ten poziom z połową energii lub 3/4 energii 3 życiami wrogowie są szybsi i dostaje też mniej broni amunicji 10
  17. Powoli rozgryzam ten kod;-) ktoś naprawdę nie źle się narobił.wszystko jest napisane w skryptach. Mam pytanie do mojego wyżej kodu. narysowałem sobie osobną grafikę textboxa..i chciałbym go wstawić zamiast tego co jest obecnie..teraz się zastanawiam której funkcji użyć i podmienić grafikę textboxa... jak najprościej to zrobić...? I jak wstawić w lewym rogu textboxa sprita? tak jak tu np https://marketplace.yoyogames.com/assets/2195/ctb-ced-s-textbox-demo Dołączyć Tag do każdego wiersza tekstu coś jak np [speaker = charactername]?
  18. o to by było idealne coś podobnego https://www.humblebundle.com/store/cinders?hmb_source=search_bar
  19. introcolor to obrazek pokazowy składający się z kilku obrazków;-) nie nie mam humble bundle:-(
  20. Dzięki Piotrek Niestety nie działa Ja chyba coś spierdzieliłem... Ostatecznie wygląda to tak: scr.ini global.textq=ds_queue_create(); global.imageq=ds_queue_create(); global.text_get=true; add_text ds_queue_enqueue(global.textq,argument0); ds_queue_enqueue(global.textq,argument1); if !instance_exists(object309) then instance_create(0,0,object309); Obj_text Create alpha=0; //przeswitywalnosc step=0; //kolejne zadanie przez nas wykonywane - KROK text=''; //tekst jaki mamy wyswietlic image = -1 // obrazek jaki mamy wyswietlic leght = 0; Step if not ds_queue_empty(global.textq) and global.text_get=true //jezeli [kolejka] nie jest pusta i mozna [pobrac tekst] { global.text_get=false;//wylacz pobieranie tekstu, aby funkcja sie juz nie wywolala, dopuki znowu nie bedzie true text=ds_queue_dequeue(global.textq);//pobierz tekst z kolejki step=1;//ustaw zadanie na jeden image=ds_queue_dequeue(global.imageq); leght=0; } //KROK 1 if step=1 { //zmniejszamy przeswitywalnosc az do max. widocznosci (1) if alpha<1 then alpha+=0.1 else { //przeswitywalnosci juz nie ma, zatem skoncz wykonywanie tego skryptu alpha=1; step=2; } } //KROK 2 if step=2 { if leght<string_length(string(text)) then leght += 1; // Mozesz zmienic predkosc "drukowania" testu dodajac inna liczbe do zmiennej leght } //KROK 3 if step=3 { //teraz zwiekszaj przeswitywalnosc az do znikniecia (0) if alpha>0 then alpha-=0.1 else { //przeswituje juz tak ze bardziej nie moze alpha=0; text=''; image = -1; global.text_get=true;//ustaw, ze mozna juz pobierac tekst step=0; } } Draw vx=view_xview[0]; vy=view_yview[0]; // ^^ dodatkowe zabezpieczenie gdybysmy wlaczyli viewy, jak nie ma wloczonych //i tak dziala jak nalezy //teraz malujemy tlo tekstu draw_set_alpha(alpha/2); draw_set_color(c_gray); draw_rectangle(vx+10,vy+550,vx+1000,vy+460,false); //teraz malujemy obwodke draw_set_alpha(alpha); draw_set_color(c_black); draw_rectangle(vx+10,vy+550,vx+1000,vy+460,true); //draw_rectangle(vx+10,vy+550,vx+1895,vy+460,true); //a teraz tekst, za pomoca draw_text_ext, zeby nie wyjechal poza prawa strone draw_set_color(c_black); draw_set_font(font_text); draw_set_halign(fa_left); draw_set_valign(fa_top); draw_text_ext(vx+12,vy+586-20-100-2,string_copy(string(text),1,round(leght)),-1,596); draw_set_alpha(1); if (image > -1) { draw_sprite(introcolor, 3, 35, 35); // alphę itd. sobie już dopisz sam w draw_sprite_ext ;) } Coś popierdzieliłem... Tylko hmmmm...patrząc na kod to obrazki będą się po prostu same zmieniać...bez względu na treść tekstu...A zależy mi na tym żeby obrazki zmieniały się po wyświetleniu danej części tekstu zgodnego z historią na obrazku..
  21. Mogę...ale teraz walczę z tymi string..źle mi coś idzie:/ bo jak wywalę string i wstawię żeby mi się rysował obrazek to już nic nie wyświetla.. Niby ten textbox nie jest skomplikowany,ale jest zabawy z tym żeby go dostosować do wyświetlania ilustracji.
×
×
  • Dodaj nową pozycję...