Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano
Nie uwazam zebysmy podawali tutaj lek na AIDS.

Ty chyba na prawdę nie masz mózgu.

 

Uwazasz ze zrobisz to lepiej? zrob! Nam nic do tego

Patrz 2 linijki wyżej. Uważasz, że się uczysz(Uczac sie przy okazji!!!.), a jednak kiedy ktoś podsuwa ci lepsze rozwiązanie, atakujesz go i mówisz o "innowacji".

To tak jakbyś zbudował auto, które żre 100litrów benzyny na 100km i rozpędzało się do 20km/h i trwał w przekonaniu, że jest najlepsze, bo INNOWACYJNE.

 

Nie robimy jakiejs tysiac piecsetnej 2d topdown strzelanki tak samo wygladajacej jak tysiac czterysta czterdziesta dziewiata

Ciekawe, że piszesz o tym, wstawiając the grid na gmclan

 

 

e: tak ogólnie, to idź się powieś taxi.

  • Odpowiedzi 64
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

Opublikowano

Czytaj karolo.

Napisalismy tutaj szybki sposob namierzania najblizszego obiektu bez uzycia collision_line, bo takie mielismy zadanie.

A teraz, ty, twoj guru, czy ktokolwiek inny z forum zrob to lepiej niz my!!!

z naciskiem na LEPIEJ....

Okej, znamy twoje umiejetnosci wiec ty mozesz zrobic to nawet nieco gorzej, akceptujemy to.

Wiec zrob, a potem wroc i sie pochwal.

Pozniej mozesz nas krytykowac.

(znowu z naciskiem na POZNIEJ)

Opublikowano

Dobrze ediepl, napisz i jutro porownamy kod. Dzis go nie damy zeby kazdy mial inne rozwiazanie i rowne szanse.

Mam nadzieje ze nie bedziesz sam. Moze przy okazji urodzi sie jakies naprawde lepsze i szybsze rozwiazanie.

Pozdr.

Opublikowano
Wiec zrob, a potem wroc i sie pochwal.

Ja też już wstawiłem swoje ;x

 

e:

szkoda posta na takie coś, więc

@down: nie potrafię się powstrzymać. Jeśli ktoś się tak zachowuje, to życzę mu śmierci i szczyźnięcia w piekle

Opublikowano

Stałem za wami (jak za każdym nowym na forum) od OxGC5. Możesz się zapytać taxi_driver'a że wytłumaczyłem mu sposób w jaki oceniałem gry na konkurs... a jego odpowiedzą był chamski post, obrażanie innych użytkowników, administracji, arogancja i kilkudniowa kłótnia. A ja (tak samo jak teraz) próbowałem podejść do wszystkiego spokojnie i rozwiązać to pokojowo.

 

Cóż znów wysuwasz argument że nie widziałeś żądnej dobrej gry ode mnie. Problem jest chyba w moim charakterze... ponieważ WSTYDZĘ SIĘ ZASYPYWAĆ FORUM GÓWNEM. Oto chyba pierwsza rzecz jaką wrzuciłem na GMClan, bo uznałem że włożyłem w to wystarczająco dużo pracy (jak na 24 godzinny jam) by komuś pokazać. Przez rok sam pracowałem nad przeglądarkową grą z losowymi przeciwnikami, craftingiem, eventami nocy i dnia, pvp w postaci areny gdzie gracz z największą liczbą wygranych dostawał pod koniec tygodnia nagrodę (cron), tawernę (chat) z 'karczmarzem botem' i mapą zapisaną w postaci 43700 rekordów mySQL. Najlepsze jest to że nikt na GMClanie tego nigdy nie widział... bo nie byłem z tego dostatecznie zadowolony. Za kolejny przykład mogę podać moją grę na OxGC4, gdzie chyba Uzjel podczas ZTG w Łodzi powiedział mi w prosto w oczy że widział przykład portali w grze top-down... a ja nie broniłem się zawzięcie że to mój pomysł, że ja wszystko sam zrobiłem i że to ja powinienem wygrać, chociaż to był mój pomysł. I może na koniec mój przykład cofania czasu? Ktoś wspomniał o nowatorstwie? Czymś takim posłużył się Jonathan Blow twórca gry Braid (choć pewnie też nie był pierwszy!). Ja na postawie obserwacji i znajomości podstawowych struktur odwzorowałem ten pomysł. Nie w najlepszy, najefektowniejszy, jedyny poprawny sposób (widzisz tu coś znajomego?), a przedstawiłem tylko zagadnienie w sposób aby każdy mógł go samemu odtworzyć... i uwaga... czegoś się nauczyć.

 

Nie wiem po co ja to wszystko piszę skoro i tak masz 'swoją rację'. Tak czy inaczej czekam na kod bo też chcę się spróbować. I mam już nawet jakiś pomysł.

 

 

Ty chyba na prawdę nie masz mózgu.

(...)

e: tak ogólnie, to idź się powieś taxi.

A @karolo320 mogłeś się już z tym powstrzymać :(

 

Ciekawe, że piszesz o tym, wstawiając the grid na gmclan
Chciaż za to już masz :lubieto:
Opublikowano

Nieźle karolo, ale mu chodziło chyba z użyciem tylko collision_point ( co nie ma sensu, ale ok... ). W każym razie są już 3 projekty pokazujące że można lepiej, coś jeszcze?

Opublikowano

Jeśli tylko collision_point, to nie lepiej sprawdzać po 1px? Jeśli direction będzie podzielny przez 90, a obiekt miał grubość 1px możesz przez niego "przelecieć"

Opublikowano

Dopiero teraz odpisuje- coz, mnostwo zajec.

-Czego sie spodziewalem:

Spodziewalem sie po was wyscigu na wydajnosc algorytmu, oraz walki o fps

-co otrzymalem:

Ktos napisal o 3 programach? ja widze tylko ediepl, wiec moge mowic tylko o nim.

Nie podoba mi sie oparcie calego pomyslu na pomiarze katowym, dlaczego? dlatego ze jest niedokladny.

Rozna rozdzielczosc ekranu moze powodowac niedokladnosc obliczen.

Okej, Teraz my :)

My oparlismy nasz pomysl na rysowaniu linii a0,b0,a1,b1 na obliczeniach bez zaokraglania. Dzieki temu uzyskalismy prosty promien wodzacy, sprawdzany w szybkim, dokladnym i uniwersalnym algorytmie.

... na koniec okazalo sie ze zastosowalismy po prostu zwykly algorytm Bresenhama, czyli doszlismy do czegos co juz ktos wymyslil przed nami :)

Czy jest szybsza metoda? Razem z taxim mielismy nadzieje ze nam pokazecie cos ciekawego, a dostalismy.... :( typowy szit.

Opublikowano

mogę zdekompilować "wasz"(masz rozdwojenie jaźni, czy co?) projekt w celu porównania prac?

 

EDIT

 

nie czekając na zgodę, bo i po co, zrobiłem to.

Wszystkie projekty przeniosłem do gm8.1, dodałem 2 zmienne wyliczające średnią fps i mając odpalone okienko z projektem i GM poczekałem 30sekund z każdym. Oto wyniki:

 

Taxi, T-800, ich grafik:

taxi.png

średnia 589,93 fps

 

Ja (właściwie to platyna, bo jego poradnik mnie tego nauczył jakieś pół roku temu)

karol.png

1350.69 średnio fps

 

edie i jego sposób bez collision_line

edie.png

1007.41 średnio fps

 

jak widać, t-800, twój sposób jest najgorszy z powyższych, i to sporo.

Jeśli chcesz wytoczyć sprawę do sądu, to twoich grafik nie wykorzystam, obiecuję ^^

a kod to ogólnodostępny algorytm, jak sam pokazałeś

 

EDIT 3, tak usunąłem obiekt dust i linijkę tworzącą go. Bez tego przy 600fps co sekundę się bugowało, lol

Opublikowano
mogę zdekompilować "wasz"(masz rozdwojenie jaźni, czy co?) projekt w celu porównania prac?

 

Karolo juz zamieszczam kod:

 

GML
CREATE

x0=320

y0=479

x1=0

y1=0

xline=x0

yline=y0

 

i=4

identyfikator=0

 

znak=""

znak1=""

 

draw_set_color(c_red)

 

GML
STEP

var _max_x, _max_y, _i, _j, _d, _z;

_i=1

_j=1

_z=0

xline=x0

yline=y0

identyfikator=0

x1=mouse_x

y1=mouse_y

 

_max_x=x1-x0

_max_y=y1-y0

 

if abs(_max_x)>abs(_max_y) then

{

if _max_x<0 then _i=-1

_d=_max_y/_max_x

if _max_x<0 then _d*=-1

if _d<0 then _j=-1

repeat(abs(_max_x))

{

xline+=_i

_z+=_d

if abs(_z)>1 then

{

yline+=_j

_z-=_j

}

if collision_point(xline,yline,all,true,true)>0 then

{

identyfikator=collision_point(xline,yline,all,true,true)

break;

}

}

}else

{

if _max_y<0 then _i=-1

_d=_max_x/_max_y

if _max_y<0 then _d*=-1

if _d<0 then _j=-1

repeat (abs(_max_y))

{

yline+=_i

_z+=_d

if abs(_z)>1 then

{

xline+=_j

_z-=_j

}

if collision_point(xline,yline,all,true,true)>0 then

{

identyfikator=collision_point(xline,yline,all,true,true)

break;

}

}

}

if identyfikator>0 then

{

znak="contact id: "+string(identyfikator)

znak1=" x: "+string(xline)+" y: "+string(yline)

}

 

GML
DRAW

draw_line(x0,y0,xline,yline)

draw_text(0,10,znak)

draw_text(0,30,znak1)

draw_text(0,50,string(fps))

 

Enjoy

 

//Edit

Karolo wystarczylo chwile poczekac, a nie wlamywac sie.

Na przyszlosc sam postaraj sie cos przyswoic, i nauczyc a nie dekompiluj nie swoje pomysly.

Opublikowano
mogę zdekompilować "wasz"(masz rozdwojenie jaźni, czy co?) projekt w celu porównania prac?

 

EDIT

 

nie czekając na zgodę, bo i po co, zrobiłem to.

 

on 20 minut temu to zdekompilował więc kod nie potrzebny

@up poprawił przede mną ;p

Opublikowano

GML
if collision_point(xline,yline,all,true,true)>0 then

{

identyfikator=collision_point(xline,yline,all,true,true)

break;

}

 

GML
var _kolizja;

_kolizja=collision_point(xline,yline,all,true,true)

if(_kolizja){

identyfikator=_kolizja

}

 

To samo, a collision_point wykonywane tylko raz. szybsze :)

Opublikowano
mogę zdekompilować "wasz"(masz rozdwojenie jaźni, czy co?) projekt w celu porównania prac?

Karolo wystarczylo chwile poczekac, a nie wlamywac sie.

Na przyszlosc sam postaraj sie cos przyswoic, i nauczyc a nie dekompiluj nie swoje pomysly.

 

Mam dla was pomysł. Obfuskujcie kod :D

Opublikowano
To samo, a collision_point wykonywane tylko raz. szybsze :)

 

Zeby cos poprawiac najpierw trzeba cos samemu wymyslic, to tak na przyszlosc.

Opublikowano

Racja, olej moją pomoc i rób dalej źle :(

 

twój kod:

GML
_max_x=x1-x0

_max_y=y1-y0

 

if abs(_max_x)>abs(_max_y) then{

if _max_x<0 then _i=-1

_d=_max_y/_max_x

if _max_x<0 then _d*=-1

if _d<0 then _j=-1

repeat(abs(_max_x)){

xline+=_i

_z+=_d

if abs(_z)>1 then

{

yline+=_j

_z-=_j

}

if collision_point(xline,yline,all,true,true)>0 then

{

identyfikator=collision_point(xline,yline,all,true,true)

break;

}

}

}else

{

if _max_y<0 then _i=-1

_d=_max_x/_max_y

if _max_y<0 then _d*=-1

if _d<0 then _j=-1

repeat (abs(_max_y))

{

yline+=_i

_z+=_d

if abs(_z)>1 then

{

xline+=_j

_z-=_j

}

if collision_point(xline,yline,all,true,true)>0 then

{

identyfikator=collision_point(xline,yline,all,true,true)

break;

}

}

}

 

dodałem jedną zmienna (true/false)

GML
//zamiana na tablice (w create)

line[0]=xline

line[1]=yline

 

//zamiana na tablice

_max[0]=x1-x0 //x

_max[1]=y1-y0 //y

if abs(_max[0])>abs(_max[1]){

zamiana=0

}else

zamiana=1

if _max[zamiana]<0 then _i=-1

_d=_max[!zamiana]/_max[zamiana]

if _max[zamiana]<0 then _d*=-1

if _d<0 then _j=-1

repeat(abs(_max[zamiana])){

line[zamiana]+=_i

_z+=_d

if abs(_z)>1 then {

line[!zamiana]+=_j

_z-=_j

}

var _kolizja;

_kolizja=collision_point(xline,yline,all,true,true)

if(_kolizja){

identyfikator=_kolizja

}

ale to juz kosmetyczne

Patrz, o ile mniej kodu. A robi to samo

urąbałem wszystkie spacje i upchnąłem łądnie 9->5,5

Opublikowano
Racja, olej moją pomoc i rób dalej źle :(

 

Karolo320, nie olewam twojej pomocy, jakbym olewal pomoc to bym sie nie rozwijal.

Jednak nie zmuszaj mnie bym uwierzyl ze dodanie dodatkowej petli, zmiennej array ( bo po co list) przyspieszy moj program.

Z checia przyjmuje wskazowki, ale tylko wtedy gdy sa sensowne.

Jakbym chcial byc mistrzem miniaturyzacji to bym sie przeniosl do Japonii :)

 

Jak narazie nic lepszego niz moj program tu nie widzialem, a szkoda bo mialem nadzieje ze mnie czyms zaskoczycie.

 

Ps: zamiast pisac zmienna true/false wystarczy poprostu napisac flage.

Opublikowano
serio nie ma niczego lepszego od Ciebie?

 

Obodz sie Bedziom, bo wiesz ze dzwonia tylko nie wiesz w ktorym kosciele :)

Opublikowano

Ja? To się chyba do Ciebie odnosi. ;)

Jak narazie nic lepszego niz moj program tu nie widzialem, a szkoda bo mialem nadzieje ze mnie czyms zaskoczycie

Twój skrypt działa najwolniej i jest w najdłuższej formie napisany, a skrypty Ediego i Karola są dwa razy szybsze i krócej napisane. Więc nie odwracaj ogona kotem, że nie ma lepszego skryptu od Twojego.

Opublikowano
Ja? To się chyba do Ciebie odnosi. ;)

nie odwracaj ogona kotem

 

Przede wszystkim mowi sie " nie odwracaj kota ogonem", reszta mojego tlumaczenia bedzie pewenie nie zrozumiala dla ciebie, ale...

Jedyny algorytm spelniajacy prawidlowo warunki, to... nasz algorytm.

Rysujac linie o dlugosci 3 piksele lub 300 pikseli lub 30000 pikseli jedynie nasz algorytm sie sprawdza.

Z racji uzupelnienia do jednego mozemy miec odchylenia od x1,y1 do jednego punktu i nie zalezy to w ogole od dlugosci linii, bo linia rysowana naszym algorytmem nawet o dlugosci 10000 pikseli moze miec maksymalne odchylenie jeden (!) piksel.

To co pokazal Ediepl ( czy ediepl to bedziom?) notuje odchylenie rosnace kwadratowo (chyba).

Z kolei porownanie wydajnosci pokazane przez karolo320 mogl pokazac tylko karolo320 a uwierzyc w to tylko bedziom ( ruchome obiekty, rotujace, nieustannie pracujacy promien wodzacy porownany do jednego nieruchomego objektu itd itp)

Inna sprawa ze nie ma co porownywac.

Threef nie pokazal nic, moze to i dobrze ;)

 

Dobranoc.

 

Ps: Jutro postaram sie wyjasnic ci to klockami ;)

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...