Skocz do zawartości

SimianVirus7

Użytkownicy
  • Zawartość

    162
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    8

Ostatnia wygrana SimianVirus7 w Rankingu w dniu 8 Lipiec

SimianVirus7 posiada najczęściej lubianą zawartość!

Reputacja

18 Dobry człowiek

1 obserwujący

O SimianVirus7

  • Tytuł
    Minor User
  • Urodziny 11/15/1997

Contact Methods

  • Website URL
    http://

Previous Fields

  • Użytkownik GameMaker Studio 2
    Nie
  • Użytkownik GameMaker Studio
    Tak
  • Użytkownik GameMaker 8
    Tak
  • Użytkownik GameMaker 7 i wcześniejszych wersji
    Nie
  • Użytkownik Unity
    Nie
  • Uytkownik Godot
    Nie

Profile Fields

  • Skąd
    Leszno
  • Płeć
    Male

Ostatnie wizyty

3054 wyświetleń profilu
  1. Nad czym aktualnie pracujesz?

    #gra na lige Kiedy w wiedźminie Geraltowi rośnie broda z czasem, tak w moim świecie roślinki usychają bez podlania :>
  2. Znana gra w innym wydaniu

    Dobrze, a więc 1 września (Niedziela) zakończenie konkursu^^ Przypominajmy sobie nawzajem, bo ja też lubię zapominać
  3. Maska kolizji ataku bohatera

    Używając show_debug_message() sam decydujesz co ma Ci wypisać. Możesz tam wprowadzić zmienną, albo dać jakiś string typu show_debug_message("Ta linijka kodu wykonała się - system poruszania") albo coś w ten deseń. Pomaga odkryć to, gdzie program liczy coś inaczej niż mieliśmy to w głowie. A dlaczego nie? animacja otrzymania obrażeń, albo animacja utknięcia w jakieś pułapce. Musisz wiedzieć podstawowe rzeczy: sprite_index - obraz bądź animacja, który dany obiekt aktualnie wyświetla image_index - klatka animacji; Jeśli sprite_index posiada np. 13 klatek, to image_index ustala która z nich dokładnie ma być wyświetlona image_speed - prędkość odtwarzanej animacji Generalnie te trzy funkcję będą Ci potrzebne przy manipulacji animacją. No może jeszcze to: image_number - zwraca liczbę klatek w animacji; Czyli jeśli masz 13 klatek, to image_number zwróci liczbę 13
  4. Znana gra w innym wydaniu

    Pasowałoby zakończenie konkursu koniec sierpnia/września? Tylko czy wtedy wszyscy o tym nie zapomną Czy lepiej może przesunąć termin, a czas konkursu znowu wyniósłby dwa tygodnie?
  5. Znana gra w innym wydaniu

    No ja się sam wyłamałem, także miejmy nadzieję, że druga edycja wypali @exp Znaczy kiedy? Przyszłe wakacje?
  6. Znana gra w innym wydaniu

    a więc, ktoś coś zrobił?
  7. dopasowanie textboxa do rozmiaru kilku view

    Nie wiem jak operujesz rozdzielczością, ale może spróbuj tak: draw_rectangle(view_xview + 200, (view_yview + view_hview) - 400, (view_xview + view_wview) - 200, (view_yview + view_hview) - 100, false); albo draw_rectangle(view_xview + 200, (view_yview + view_hport) - 400, (view_xview + view_wport) - 200, (view_yview + view_hport) - 100, false); Napisałem z pamięci, nie testowałem.
  8. Temat zbiorczy na drobnostki

    gm:s posiada jeszcze current_day i current_month. Myślę, że sczytanie daty do zmiennych przy pierwszym uruchomieniu i później sprawdzanie czy minęło 14 dni, jest jakimś rozwiązaniem Tylko, że jeśli chcesz ominąć spryt użytkowników, musiałbyś sczytywać datę z internetu, bo tak lokalnie mogą sobie zmienić
  9. list = ds_list_create();

    Chyba kumam, aczkolwiek mam dziś mózg na wstrzymaniu. Zrób coś takiego w no_text() //zwraca true, jezeli nie ma juz zadnego tekstu do wyswietlenia if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if ( ds_queue_empty(global.textq) and global.text_get=true ) { return true; } else { return false; } } else return true; } else return true;
  10. list = ds_list_create();

    Na górze zrobiłem Ci poprawioną wersję no_text. Pozamieniaj true na false, a false na true.
  11. list = ds_list_create();

    Zmień tu warunki. Co prawda, będzie to działać odwrotnie do nazwy funkcji, ale może o to chodzi. //zwraca true, jezeli nie ma juz zadnego tekstu do wyswietlenia if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if ( ds_queue_empty(global.textq) and global.text_get=true ) { return false; } else { return true; } } else return true; } else return true; edit: Ok, czyli nazwa funkcji jest odwrotna do opisu, czyli powinno to działać edit2: A nie czekaj, opis do nazwy się zgadza... coś mi dzisiaj mózg szwankuje
  12. list = ds_list_create();

    albo robisz w if'ie if(!no_text()) {} albo zmień skrypt no_text() aby zwracał wynik odwrotnie
  13. list = ds_list_create();

    if(instance_number(obj_napis_plansz)=0 && no_text()) { if !place_meeting(x,y,obj_water) { if wPowietrzu == false && key_check(key.right) = key_check(key.left) && sprite_index != spr_player_stand && drabina == false { sprite_index = spr_player_stand; image_index =0; } if wPowietrzu == false && (key_check(key.right) || key_check(key.left)) && key_check(key.right) != key_check(key.left) && sprite_index != spr_player_run && drabina == false { sprite_index = spr_player_run; image_index = 0; } if wPowietrzu == true && drabina == false { sprite_index = spr_player_air; if vspd <= -1 { image_index = 0; } else if vspd >= 1 { image_index = 2; } else { image_index = 1; } } if drabina == true { if x == xprevious && y == yprevious { if sprite_index != spr_player_hang { sprite_index = spr_player_hang; } } else { if sprite_index != spr_player_climb { sprite_index = spr_player_climb; } } } if zegarAtaku > 0 && atakBierzacy == 0 { sprite_index = spr_player_attack; image_index = 14-(zegarAtaku); zegarAtaku -= 1; } if zegarAtaku > 0 && atakBierzacy == 1 { sprite_index = spr_player_shoot; image_index = 6-(zegarAtaku); zegarAtaku -= 1; } if zegarAtaku > 0 && atakBierzacy == 1 && (key_check(key.right) || key_check(key.left)) { sprite_index = spr_anatol_przesuwa_skrzynie; image_index = 23-(odejmij); odejmij -= 1; } kierunekPlywania = point_direction(xprevious,yprevious,x,y); wysKierunek = kierunekPlywania; if image_xscale < 0 { wysKierunek += 180; } } else { if sprite_index != spr_player_water { sprite_index = spr_player_water; image_index = 0; } if key_check(key.right) && !key_check(key.left) && image_xscale = -1 { image_xscale = 1; wysKierunek -= 180; } else if key_check(key.left) && !key_check(key.right) && image_xscale = 1 { image_xscale = -1; wysKierunek += 180; } if abs(key_check(key.right)-key_check(key.left))+abs(key_check(key.down)-key_check(key.up)) != 0 { image_index += 2; if image_xscale > 0 { wysKierunek -= angle_difference(wysKierunek,kierunekPlywania)/16; } else { wysKierunek -= angle_difference(wysKierunek,180+kierunekPlywania)/16; } } } //animacja do przesuwania skrzyni if wPowietrzu == false && (key_check(key.right)) && (place_meeting(x-5,y,obj_skrzynia) || place_meeting(x+5,y,obj_skrzynia)) {sprite_index = spr_anatol_przesuwa_skrzynie; image_index = 23 -(odejmij); odejmij -= 1; } else if (key_check(key.left)) && (place_meeting(x-5,y,obj_skrzynia) || place_meeting(x+5,y,obj_skrzynia)) { sprite_index = spr_anatol_przesuwa_skrzynie; image_index = 23 -(odejmij); odejmij -= 1; } } Chodzi w miejscu, znaczy, że chodzi bez animacji, tak?
  14. list = ds_list_create();

    Okej, trochę mi to zajęło, przez organizacje twojego kodu, który jest pisany makabrycznie, bez żadnego schematu. Musisz trochę nad tym popracować, bo wtedy łatwiej wyłapać błędy. Na początek, zmieniamy skrypt no_text() //zwraca true, jezeli nie ma juz zadnego tekstu do wyswietlenia if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if ( ds_queue_empty(global.textq) and global.text_get=true ) { return true; } else { return false; } } else return false; } else return false; i zmieniony cały step (zobacz sobie, jak on teraz wygląda. Widać, który if jak zagnieżdżony w którym ifie. Widać gdzie dana klamra otwiera kod a gdzie go zamyka. Nigdy nie możesz mieć dwóch klamer zamykających w tej samej linii, w tym samym pionie. ///@desc pankracy ///ustawienia ruchu Bohatera // gdy Bohater jest zamrozony zatrzymujemy go if(zamroz==true) { x = zamroz_x; y = zamroz_y; gravity=0 vspd=0; hspd=0; } //licznik czasowy gry rs_timer ++; ///auto unstuck kiedy nam Bohater sie zaklinuje to podana nizej funkcja go odblokuje while(place_meeting(x,y,other)) { dir = point_direction(x,y,other.x,other.y) x = x + lengthdir_x(-1,dir) y = y + lengthdir_y(+10,dir) other.alarm[0] = room_speed; } if(variable_global_exists("textq")) //Jesli zmienna global.textq istenieje, to wykonuj ponizszy kod { if(ds_exists(global.textq, ds_type_queue)) //Jesli data structure istenieje, to wykonuj ponizszy kod { if(instance_number(obj_napis_plansz)=0)// zatrzymuje sprita bohatera na czas wyswietlenia napisu Stage { if(vspd>0 ^^ hspd>0 ^^ vspd<0 ^^ hspd<0) { image_speed=1 } else { image_speed=0; } }//dodane }//dpdame if (vspd > 25) //Jesli predkosc spadania jest szybsza niz 25 (Mozna dowolnie zmieniac ta wartosc.) { global.damage+=5 } //Zwiekszenie obrazen o wartosc 1. (Zmienienie liczby na wieksza zwiekszy zadawane obrazenia po upadku.) if not place_free(x,y+1)//Jesli w poblizu nas jest jakis obiekt rowniez zostana zadane obrazenia { other.hp-=global.damage //Odejmujemy punkty zycia od wartosci zadanych obrazen. global.damage=0 //Resetujemy zadawanie obrazen po uderzeniu w ziemie by nie zabieralo go wiecej } } // *********************************************************************************************************************************** /// ------------------ tutaj tak jak mowiłem, że mogą być konsekwencję naprawiania tego błedu na skróty. Jestem pewien, że no_text() * // ------------------- zwraca wartość true albo false, jeśli tekst jest albo go nie ma. Tutaj tego nie sprawdza, bo nie ma w ogóle * // ------------------- zmiennejpozwalającej to sprawdzić, dlatego omija calutki kod * // ------------------- ROZWIĄZANIE: przerobienie funkcji no_text() * // *********************************************************************************************************************************** if(no_text()) //teraz Bohater stoi jak jest odwarzana sekwencja tekstowa textboxa { ///Kontrola if !place_meeting(x,y,obj_water) { //Normalny ruch if drabina == false { if key_check_pressed(key.jump) && wPowietrzu == false { vspd = -10-sign(pwrupJmp*3); silaSkoku = 3; //Punkt respawnu w miejscu ostatniego skoku //spawnX = x; //spawnY = y; //Zeskakiwanie w dol if key_check(key.down) && place_meeting(x,y+1,par_solid_ghost) { y += 4; vspd = 0; silaSkoku = 0; czasSkoku = 0; } } else if key_check(key.jump) && silaSkoku > 0 { audio_play_sound(dzwiek_skoku_anatolka, 1, false); //odtwarzamy dzwiek przy skakaniu vspd -= 2+sign(pwrupJmp); silaSkoku--; } else { if key_check_released(key.jump) && silaSkoku > 2 { vspd += 2+sign(pwrupJmp); } silaSkoku = 0; } //Podwojny skok /* if czasSkoku > 0 && keyboard_check_pressed(kJump) && wPowietrzu == true { vspd = -10-sign(pwrupJmp*3); silaSkoku = 0; czasSkoku--; audio_play_sound(dzwiek_skoku_anatolka, 1, false); //odtwarzamy dzwiek przy skakaniu }*/ if key_check(key.action) && zegarAtaku == false { //if key_check(key.down) { //usuwany strzelanie na klawisz x + w dol zegarAtaku = 26; atakBierzacy = 1; with instance_create( x+(image_xscale*12), y-26, obj_projectile) //idealnie ta funkcja obraca pocisk gracza lub wroga { hspd = other.image_xscale*15; vspd = 0; //lekko do gory -4 //mocno do gory g = .0; //0.2 tor lotu paraboliczny speed=4; owner = par_player; sila = 0; eksplozja = true; zasiegEksplozji = 30; silaEksplozji = 2+(sign(other.pwrupStr)*8); //image_blend = c_black; //kolor lotu pocisku audio_play_sound(dzwiek_anatol_strzela, 1, false); //odtwarzamy dzwiek przy strzelaniu } } if key_check(key.right) && !key_check(key.left) { if hspd < 8+(sign(pwrupSpd)*5) { hspd = min(hspd+(2+(sign(pwrupSpd)*2))*multiF,10+(sign(pwrupSpd)*5)); } image_xscale = 1; } if key_check(key.left) && !key_check(key.right) { if hspd > -8-(sign(pwrupSpd)*5) { hspd = max(hspd-(2+(sign(pwrupSpd)*2))*multiF,-10-(sign(pwrupSpd)*5)); } image_xscale = -1; } //Drabina if place_meeting(x,y,par_climbable) && place_meeting(x,y-32,par_climbable) && place_meeting(x,y+5,par_climbable) && zegarAtaku <= 0 && (key_check(key.up) || key_check(key.down)) { drabina = true; vspd = 0; hspd = 0; } } //Wspinanie sie if drabina == true { var __hsign = key_check(key.right)-key_check(key.left); var __vsign = key_check(key.down)-key_check(key.up); hspd = min(max(hspd+__hsign,-2),2); vspd = min(max(vspd+__vsign*2,-4),4); if __vsign == -1 && !place_meeting(x,y-32,par_climbable) { drabina = false; vspd = -10; } if __hsign != 0 { image_xscale = __hsign; } if !place_meeting(x,y,par_climbable) || !place_meeting(x,y+32,par_climbable) { drabina = false; } } } else { //Plywanie kierunekPlywania = point_direction(0,0,key_check(key.right)-key_check(key.left),key_check(key.down)-key_check(key.up)); if abs(key_check(key.right)-key_check(key.left))+abs(key_check(key.down)-key_check(key.up)) != 0 { hspd += lengthdir_x(.5,kierunekPlywania); if !(kierunekPlywania > 0 && kierunekPlywania < 180) || place_meeting(x,y-sprite_height/3-1,obj_water) { vspd += lengthdir_y(.5,kierunekPlywania); //audio_play_sound(dzwiek_anatol_plywa, 1, false); //odtwarzamy dzwiek gdy anatol plywa } } if key_check(key.up) && !place_meeting(x,y-sprite_height/1.5,obj_water) && vspd <= 0 { //kierunekPlywania do gory vspd = -12; } } } //dodane puszczanie drabiny przez bohatera przy dotknieciu podloza if place_meeting(x,y,par_climbable) && drabina=true && place_meeting(x,y+2,par_solid) { drabina=false; } //Normalny ruch if drabina == false { if key_check(key.down) && wPowietrzu == false { //Zeskakiwanie w dol if key_check(key.down) && place_meeting(x,y+1,obj_zejscie_drabiny) { y += 4; vspd = 0; silaSkoku = 0; czasSkoku = 0; } } } if vspd>0 && place_meeting(x,y,par_climbable) then drabina=true; if wPowietrzu=true && vspd = -10-sign(pwrupJmp*3) && silaSkoku = 3 && hspd>0 && place_meeting(x,y,par_climbable) && key_check(key.jump) && key_check(key.right) || key_check(key.jump) && key_check(key.left) then drabina=false; if key_check(key.action) && zegarAtaku == false && place_meeting(x,y,par_climbable) { zegarAtaku = 16; atakBierzacy = 1; with instance_create(x+10,y-26,obj_projectile) { hspd = other.image_xscale*10; vspd = 0; //lekko do gory -4 //mocno do gory g = .0; //0.2 tor lotu paraboliczny owner = par_player; audio_play_sound(dzwiek_anatol_strzela, 1, false); //odtwarzamy dzwiek przy strzelaniu } } //nabieranie powietrza if tlen<10 { if distance_to_object(obj_water)>1 { tlen+=0.2 } } //jesli nie ma powietrza energia ucieka i bohater potem traci zycie if tlen<0.01 { global.hp-=0.2 } if global.hp<=0 { global.life -= 1; } Miejmy nadzieje, że się nigdzie nie kopnąłem. PS: trochę się te nawiasy porozjeżdżały, gdy je wkleiłem na forum (?)
  15. list = ds_list_create();

    zapodaj cały kod, który mieści skrypt no_text(), bo jestem pewien, że zwraca true albo false i chce wiedzieć, jakie argumenty za tym stoją
×