Skocz do zawartości

I am vader

Użytkownicy
  • Postów

    1 887
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    20

Treść opublikowana przez I am vader

  1. Ja tak sie staralem byc dobrym userem i nei ciagnac tematu, ale jak wy to robicie to czemu nie? Popieram wypowiedz Gnyska. Co wiecej, to ze "ruchy frykcyjne" znacza co znacza, nie oznacza ze sama "frykcja" oznacza tarcie. Kazdy lingwista Ci to powie.
  2. https://docs.yoyogames.com/source/dadiospic.../accessors.html W skrócie zmienna = ds_list_find_value(lista,0); ==> zmienna = lista[| 0]; zmienna = ds_map_find_value(mapa,"klucz"); ==> zmienna = mapa[? "klucz"]; zmienna = ds_grid_get(grid,4,8); ==> zmienna = grid[# 4,8]; Bardzo ulatwiaja zycie, osobiscie jestem w tym rozwiazaniu zakochany.
  3. Widać różnicę między 30 a 15 fps, tak jak między 60 a 30 fps, komputer powinien wytrzymac te obliczenia. Czas dostepu do struktur accessorami jest super szybki.
  4. Tak, tez to zauwazylem po napisaniu posta.. Zresztą, gunarkill juz na to odpowiedzial.
  5. Rzadkiego pepa tam masz, ile chodzi na markecie? : >
  6. Cóż, potrzbujesz jeden obiekt który jest całym systemem, który trzyma strukturę danych w której są pozycje i wartości particlesów. Robiąć po obiekcie na cząsteczkę zabijesz komputer.
  7. Zapewne napisanie posta pomoglo, bo przemyslales jeszcze raz kod. To jeden ze sposobow na samodzielne pokonywanie trudnosci. Dlatego polecam metodę gumowej kaczki, pomaga w debugowaniu. https://pl.wikipedia.org/wiki/Metoda_gumowej_kaczuszki Moze Ci sie przydac w przyszlosci ;)
  8. Czysto logicznie, ten kod nie moze byc w stepie: GML if player.speed>0 {speed=3 friction=0.3} if player.speed=0 {speed=1 friction=0.1} Bo zgodnie z tym kodem speed zawsze bedzie wynosic 3 i friction zawsze bedzie wynosic 0.3. Przeciez przy speed=0 ustawiasz speed=1. A speed=1 jest także speed>0, wiec zmieni speed na 3 i friction na 0.3. A ze speed=3 jest speed>0 to gra juz na tym zostanie. Edit: I brzmisz śmiesznie mówiąć "frykcja" więc mów friction, jak już "tarcie" nie odpowiada.
  9. Wybacz, miałem zajęty dzień, już podsylam: https://led.feen.us/scvhnu.rar
  10. Skończyly mi się pomysły... Może masz jakiś kod który zmienia hp i/lub maxhp?
  11. U mnie działa™ Więc musiałeś coś źle podać w argumentach.
  12. 1. Na pewno postaci 2, 3 i 4 maja maxhp ustawione na 4,8,2 ? 2. zamiast 100*hp/maxhp zrób 70*hp/maxhp i zmień kąt startowy na direction + 35(albo -35, mówię z głowy) 3. A testowales to co mowilem pare postow wyzej aby odwrocic lengthdir? Edit Przetestowałem i jak zamienisz +lengthdir_x na -lengthdir_x w liniach: 22.24.26.36.38.42 to działa na odwrót tak jakbyś chciał.
  13. Może pokaż jak wygląda GRAFICZNIE problem? Bo już chyba nie rozumiem o co biega. Powinno być jedno koło które zmniejsza się procentowo.
  14. Z tego co widze w argumencie percent health powinieneś dać 100*hp/maxhp żeby działało.
  15. Jak ten circle bar wyglada? To nie pojedyncze kolo ktorego 360 stopni to 100% HP?
  16. długość = max długość * (hp/max hp)
  17. Strzelam, zupełnie na ślepo więc backup sobie zrób, że zamiana cx+lengthdir_x na cx-lengthdir_x powinna załatwić sprawę tego w którą stronę pasek się obraca. Co do błędu, warto się nauczyć czytać błędy. Kod błędu Variable obj_test_dummy.linelenght(100139, -2147483648) not set before reading it. at gml_Object_obj_Enemy_parent_StepNormalEvent_1 (line 42) - if (a=linelenght){ Mówi, że: 1. Błąd jest w obj_Enemy_parent 2. W Stepie 3. W Klocku #1 4. W lini 42 5. Typ błędu to "Zmienna nie ustawiona przed odczytem" czyli "Zmienna nie istnieje". Rozwiązaniem jest sprawdzić czy zmienne a oraz linelenght istnieją oraz nie mają literówek, jak wcześniej podał threef. Zakładam że literówka, ponieważ pisze się length nie lenght.
  18. 4% brakuje :) Edit: A tak na poważnie, matma z podstawówki. Jeżeli 2022 głosy na tak to 96% to 100% to 2106.25
  19. Tylko ten, jeżeli skorzystałeś z opcji 1szej pragnę nadmienić, że zrypałem bo zapomniałem dać var z pośpiechu. Miało być GML var __a = argument1; var __b = argument2; Bardziej optymalne.
  20. Jeżeli nie potrzebujesz jeszcze argument1 i argument2 możesz określić zapotrzeowanie na nie zapisująć je do jakieś zmiennej tymczasowej. po prostu walnij GML __a = argument1; __b = argument2; i zapomnij o problemie. Innym wyjściem jest korzystać z argumentów w formie tablicy czyli zamiast argument0 daj argument[0].
  21. zrób pętle for w której podnosisz od y do y-(max wysokość kroku) i wyjdź z niej break'iem jak tylko znajdziesz odpowiednią wysokość. Szybciej nie będzie.. Edit: Zawsze mozesz uzywac collision_point, ktore powinno byc szybsze od place_free.
  22. Jest sposób. Dodaj wybrany plik jako included file, wtedy ten plik będzie w folderze z grą i próbując go otworzyć wskaże ten plik, który jest tam widoczny. Innym rozwiązaniem jest GMFileSystem, ale po pewnym updacie plugin jest zbugowany i trzeba go ręcznie naprawić.
  23. Cóż, jeżeli to jedyne miejsce w którym ustawiasz obronę, to musi dochodzić do niepoprawnej zmiany jednego lub obu warunków (dd i sword_coll) Dopisz wewnątrz ifa show_debug_message("True"); I odpal z poziomu GMa gre i zobacz czy w compile logu spamuje "True" kiedy nie powinno być kolizji. Jeżeli tak, to masz źle kolizję jednak zrobioną.
  24. Jedyne co widzę to to: GML if dd=0 && sword_coll=1////////////////////////////////////////////////////////// { if garda!=argument0.akcja //AKCJA A {deff='hurt' dd=2 } else if garda=argument0.akcja && akcja=0 //AKCJA B {deff='obrona' dd=1 } else if akcja=argument0.akcja && akcja!=0 //AKCJA C {deff='clash' d=2 } } Opcja A i Opcja B tylko moga sie wykonac bo garda albo jest albo nie jest rowna, wiec zatrzyma sie na ktores z nich. Powinno być: if C else if A else if B
×
×
  • Dodaj nową pozycję...