Skocz do zawartości

Kartofelek

Użytkownicy
  • Postów

    40
  • Dołączył

  • Ostatnia wizyta

O mnie

Osiągnięcia Kartofelek

Chicken

Chicken (1/13)

0

Reputacja

  1. W poniższym linku znajduje się tutorial dokładnie mówiący jak uzyskać ładne skalowanie za pomocą surfaces. Efekt bardzo prosty do uzyskania: http://forums.tigsource.com/index.php?topi...g86809#msg86809
  2. Nie znalazłem takiego wątku na forum (pewnie kiepsko szukałem). Chodzi mi o ladniejsze skalowanie grafiki niz jest domyslnie. Czy dobrze mysle ze trzeba to zrobic tak: 1) rysuje wszystko na surface 2) stosuje draw_surface_stretched(id,x,y,w,h) A jezeli tak, to jak rysowac titlesy i background na takim surface? Poprzez kopiowanie?
  3. Było już na pewno o tym kilka tematów, ale znaleźć ich nie mogę. W necie szukałem i co najwyżej znalazłem jak ludzie dzielili się linkiem do rzutu ukośnego. Ale nikt nigdy nie dał recepty jak obliczyć trajektorię lotu pocisku - szczególnie w GM :) No więc jak to zrobić? Punkt A strzela do punktu B parabolicznie. Pocisk leci z szybkoscia V w czasie t. V = power z jaką wystrzelono pocisk. Gdyby to był lot liniowy to by nie było problemu. Problem jednak jest taki, że to jest lot paraboliczny. Kolejny przypadek jest taki, że punkt B się porusza stałą prędkością. Jak wtedy obliczyć miejsce gdzie strzelać? podobny zamknięty temat jest tutaj: https://forum.gmclan.org/index.php?showtopic=20976 Ale tam odpowiedzi nie ma :) Ps. Przykład http://www.gmclan.org/up2734_12_Obliczanie_trajektorii.html nie jest do konca dobry, bo gdy punkt B znajduje sie ponizej punktu A, to wtedy wychodzą babole. Poza tym punkt B jest statyczny.
  4. W mojej grze po trafieniu przeciwnika rozpyla on flaki. Kazdy taki flak to obiekt, przez co nie jest to najwydajniejsze. Zrobilem teraz tak, ze po pewnym momencie owe flaki zaczynaja plynnie znikac po czym jest usuwanie takiego obiektu, ale pomyslalem, ze lepiej by bylo, gdybym zamiast znikania zastosowal tilesy. Czy jest jakas latwa metoda do konwersji spritow do titlesa? Pomyslalem ze mozna by tak: Animuje dany obiekt (zmieniajac jego friction, itp), Zamieniam sprita w titlesa Po skonczonej animacji (bo wykorzystuje tutaj friction) usuwam obiekt i w jego miejsce powstaje odpowiednio przeskalowany i obrucony titles.
  5. Na szybko wrzucałem z pracy wiec kilka błędów się pojawiło. Co do huda - wyświetla klucze, magazynki, bron (na gorze) + motion tracker - czyli wykrywa wrogów. W wersji o zombiakach go wyrzuciłem, bo trochę psuł rozgrywkę. Poza tym muszę to poprawić, bo zasłania ekran za bardzo. Postać porusza się wolno, ale to uzależnione jest od config.ini - tam się większość ustawia ^^ Ogólnie to ta gra to właściwie test metod itp, do innego projektu. To moja pierwsza gra w ogole, i bardzo dużo sie dzięki niej nauczyłem ^^ - np używania surface, o której wcześniej nic nie widziałem i o parentach (dzięki pomocy z temu forum) Rozdzielczości niestety nie zwiększę. Nie byłby to problem (bo tylko przestawić opcje w GM), ale na moim 1,8 przy większej ilości wrogów gierka zaczyna ssać, co nie powinno się dziać. No i ma nawiązywać do Cannon Foddera, a on byl w malej rozdzielczości (jestem fanem takich pikseli). Jak ktoś chce to oczywiście mogę zwiększyć (ale to mail do mnie). Próbowałem na 500x500 i da się grac. Tylko ze im większe pole widzenia tym mniejsze zaskoczenie (stad tez zrobiłem by wrogowie byli widoczni dopiero od pewnej odległości itp). Chyba mam większą frajdę z poznawania nowych rzeczy niż z samej gry ^^ Kod "AI" wrogów jest bardzo niedopracowany i prosty (bo na podstawie przykładu z path_add()). Co ja mowie - większość jest na podstawie przykładów ^^ Ale tak to juz jest jak się nie do końca potrafi ^^ Wprowadziłem lekkie poprawki (fullscreen itp) - link ten sam.
  6. Tytuł: The Bunkier Gatunek: strzelanka, labiryntówka Opis: Gra to w zamierzeniach połączenie Alien Breeda i Canon foddera ^^. Chodzisz komandosem i strzelasz do zombiaków. Istnieje też wersja z obcymi, która jest rozwijana na równi. Gra to początkowe demo. Na pewno jeszcze spoooro się zmieni. W zamierzeniach: dodanie pomocników, mini statystyki, pancerze, energia, dostęp do komputerów (sklepików) i prostych urządzeń typu terminale do otwierania drzwi, w wersji o zombiakach mapa z wyborem misji i ekran z wynajdywaniem nowego wyposazenia, więcej broni, więcej tekstur, jakaś fabuła. Może: w wersji o zombiakach misje z obroną własnej bazy przed zombiakami, dojazd do misji ala mapa fallout (możliwość zaatakowania przez zombiaki) Sterowanie: W, A, S, D - chodzenie Lewy klawisz myszki - strzelanie R - przeładowanie broni 1-5 - wybór broni (jak jest) F2 - sound on/off F11 - cheat console (aby uzyskać wszystkie bronie należy wpisać kod IDKFA, który zostanie zmieniony w pełnej wersji gry) Download: http://www.doman.art.pl/?page_id=341 (bezpośrednie linki to: http://www.doman.art.pl/bunkier/Bunkier_alien.rar i http://www.doman.art.pl/Bunkier_zombie.rar) Rozmiar pliku: ok 16Mb (wersja Alien) lub 12Mb (wersja Zombie) Autorzy: Programowanie: Kartofelek Fabuła: Na podstawie filmu Aliens... Grafika: Kartofelek Muzyka: ściągnięta z internetu i gry HL2 (nie wiem kto ją tworzył) Screeny:
  7. Zrobilem sobie obiekt parent w ktorym obsluguje 2 zdarzenia - [zdarzenie po trafieniu] i zdarzenie [kolizji z innym obiektem]. [Collision with pocisk] tutaj zmieniam x i y obiektu: x = x + przesuniecie; y = y + przesuniecie Przesuniecie obliczam wczesniej w tym evencie czy ma isc w gore czy w dol itp (zaleznie od kierunku pocisku) [Collision with obiekty_dzieci] Tutaj umiescilem bounce all Trafione obiekty faktycznie ladnie sie przesuwaly, jednak zamiast odbijac sie od innych obiektow nachodzily na nie (czyli odbijanie nie dzialalo ;/). Rozwiazalem to bardzo prosta metoda - zmienilem kod obslugi trafienia przez pocisk: if (!place_meting(x+przesuniecie,y,obiekty_dzieci) x = x + przesuniecie; if (!place_meting(x,y+przesuniecie,obiekty_dzieci) y = y + przesuniecie Jednak zaczalem miec watpliwosci jak dzialaja te eventy. Bo wlasciwie czemu to nie wczesniej nie dzialalo?
  8. Pytanie jest nastepujace: czy uzywacie do tego jakis bibliotek a jezeli tak to jakie polecacie? Chodzi mi o trzymanie jakos sensownie plikow zewnetrznych, ktore potem mozna zaladowac w odpowiednim momencie. Widzialem do tego celu na necie kilka bibliotek, ale chcialbym sie was poradzic
  9. A mi sie podoba ten powyzszy skrypt. Powiedzmy ze masz 200 spritów i kazdy po 10 klatek animacji - toz to 2000 plików ^^ Kto to potem bedzie rozpakowywal (ja tyle plikow to widzialem osobiscie tylko w HL)
  10. Próbowałem wczoraj z tym surface ale mi w ogole nie wychodzilo. Pewnie zapytam pana Google. Do tej pory rysowało mi śmiecie... Pierwsze co mi świta: - Podzielenie romu na siatkę (pewnie cos z room_width DIV cos tam) - pobranie pierwszej "komorki grida" ktorego fragment jest w gornym rogu view (tutaj pewnie bede musial pobrac kawalek za, bo sa emitery i swiatlo moze byc emitowane poza viewem) - pobranie reszty komorek - a reszta podobna jak w tamtym, czyli sprawdzanie kolizji tego grida z komandosem itp. - po obliczeniach i narysowaniu na surface wrzuta na ekran ^^ O ile to bedzie szybsze tego nie wiem, bo w tamtym deaktywowalem obiekty mlgy poza viewem... Swoja droga - znacie inne sposoby tworzenia oswietlenia? Chociaz szczerze mowiac ten mi calkiem odpowiada bo daje taki klimat starych gierek ^^
  11. Ostatnio mialem podobny problem w mojej grze. Skakalo to i nawet synchronizacja (w opcjach gry) nic nie dawala. Zmienne x i y ustawiaj przed rysowaniem w evencie Draw - bedzie ok. np: [DRAW] x = view_xview[0]+view_wview[0]-200 y = view_yview[0]+view_hview[0]-200 draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,0,image_blend,1);
  12. Witam. Zaimplementowalem w swojej grze dynamiczna mgle. Polega to na tym, ze tworze w grze obiekty, ktore sprawdzaja odleglosc komandosa od siebie i w zaleznosci ustawiaja swoje image_alpha. Dla wiekszej realnosci dodalem collision_line, chociaz zauwazylem, ze to dosc wolna funkcja. var dist; if (instance_exists(obj_commando)) { dist = distance_to_object(obj_commando) if (dist<100) { image_alpha = (100-(100-dist))/100 } if (collision_line(x,y,obj_commando.x,obj_commando.y,obj_podlogaSolid,false,false)) { image_alpha = 1 } } else { image_alpha = image_alpha + 1; if (image_alpha>1) image_alpha = 1; } alarm[0] = global.jakCzestoAktualizowacMgle; Moje pytanie jest takie: Taki kod ma zaimplementowana kazda instancja mgly, wiec dosc sporo obliczen to zabiera (bo takich instancji jest tyle ile kratek 16x16). Jest mozliwosc by to nie instancje a sam komandos pobieral odpowiednie kawalki mgly? Funkcja typu - "pobierz TYLKO elementy znajdujace sie w polu widzenia (kolko np o r=100)" Probowalem z collision_circle, czy distance_to_object, ale nie za bardzo mi to wychodzilo. Robilem to tak, ze wczesniej wykonywalem petle po instancjach mgly (instance_count) i pobieralem kazdy taki obiekt. Potem podstawialem go do tego collision_circle, ale to dzialanie nie jest takie jak w powyzszym zdaniu (brakuje tego TYLKO) ^^
  13. Ciekawy skrypt, chociaz cos mi sie wydaje ze on nie rozwiazuje problemu: 1) klatki byly obok siebie i takie rzeczy jeden pod drugim wiec chyba powinny byc 2 petle a nie jedna (for( _i = 1; _i < _count; _i += 1 )) 2) No i ta metoda sprite_create_from_surface - ona chyba tworzy nowego sprita a nie dodaje image do danego sprita? Moge sie mylic. Poradziłem sobie w ten sposób: Wczytywałem gifa jako sprita do GM. Potem wybierałem opcję - [save as Strip]. Po przekonwertowaniu wiekszosci na GIF stracilem 2Mb miejsca, co uznalem za nie najgorszy wynik. Jak dodam nowe rzeczy do gry i okaze sie ze bedzie jednak lipa, to najwyzej przerobie te bmp na jpg i powinno byc "po ptokach" ^^
  14. W jednym z poprzednich tematów (https://forum.gmclan.org/index.php?showtopic=15394) miałem problem ze zbyt dużym obciążeniem pamięci i zbyt długim wczytywaniem gry. Zrobiłem więc tak, jak polecał gostek na jednej ze stron (http://glog.yoyogames.com/?p=385) - pozamienialem "duze" sprity na puste-male i w zdarzeniu room create zamieniam je na wczytane z zewnatrz. Wszystko bardzo ladnie dziala. Wczytuje sie szybko itp. Pojawil sie jednak inny problem. Wczytac pojedynczy obrazek to nie sztuka, ale jak wczytac animacje zapisana klatka po klatce? Czyli jak stripowac wczytany plik? W helpie napisali, że takie cuda to tylko z JPG itp - dla gifow nie dziala. I faktycznie sprawdzilem - zrobilem obrazek JPG, w ktorym klatki sa ustawione kolejno obok siebie. Tylko ze takie wczytywanie jest "na czuja" (czyzby width/liczba klatek?) i dla GIFOW nie dziala. Pytanie wiec jak stripowac wczytany GIF, w ktorym klatki animacji nie koniecznie sa obok siebie - bo mam grafiki w ktorym klatki sa ulozone po 4-5 w rzedzie, a takich rzedow jest kilka: [(',')] [('.')] [(-,-)] [(',')] [('.')] [(-,-)] [(',')] [('.')] [(-,-)] Mogę pójść na łatwiznę i po prostu przerobić wszystkie takie grafiki na animowane gify, ale wolałbym zastosować inne rozwiązanie, bo przy takich "szachownicowych" grafikach łatwiej mi się je edytuje gdy widze na raz wszystkie klatki. Zreszta niektore sprity maja w sobie kilka typow przedmiotow, wiec animowane gify z poszczegolnymi klatkami wygladaja hmm bardzo smiesznie ^^
  15. Też myślałem o wczytywaniu zewnętrznym plików, tylko nie mam pojęcia jak to robić. Gdzie można się dowiedzieć na ten temat? Może jakiś przykład czy coś podobnego? Właśnie bawiłem się w optymalizację gifów więc często gęsto z 255 kolorów bez zbytecznej utraty uzyskiwałem 16-32 ^^
×
×
  • Dodaj nową pozycję...