Gra przygodowa

0

Czy może mi ktoś polecić jakiś dobry algorytm do odszukiwania najbardziej ekonomicznej drogi dla postaci z gry przygodowej. Wiem, że A* jest najlepszy, ale działa on tylko dla planszy typu szachownica (bloki o jednakowym rozmiarze zawierające informację np. o wysokości). Ja natomiast szukam czegoś, co nie będzie mnie tak ograniczało. Dobrym przykładem gier, w których postacie chodzą tak, jakbym tego pragnął w mojej grze, to: "The Longest Journey" oraz "Blade Runner".

--"Imagination is more important than knowledge." - A. Einstein

0

A niemógłbyś zrobić aby pierw połączyć prostą linią punkt (gdzie chcesz dotrzeć) a postacią a potem przeanalizować czy na tej prostej nie znajdują się żadne pzeszkody?

Mow sie ze łatwe ale SPRÓBOWAŁBYM pomóc jeżeli to jest pod Delphi i droga i mapa jest na tablicy dwuwymiarowej...

0

ZIOMBER napisał:

A niemógłbyś zrobić aby pierw połączyć prostą linią punkt (gdzie chcesz dotrzeć) a postacią a potem przeanalizować czy na tej prostej nie znajdują się żadne pzeszkody?

To z założenia jest pierwszy krok. Co więcej: nie tylko prosta nie może przeciąć się z żadnym "dziurawym" fragmentem mapy, ale także jej otoczenie tak, aby np. postać nie przeszła obok ściany, a jej ręka w nią "wniknęła".

ZIOMBER napisał:

Mow sie ze łatwe ale SPRÓBOWAŁBYM pomóc jeżeli to jest pod Delphi i droga i mapa jest na tablicy dwuwymiarowej...

W jakim języku dostanę podpowiedź (czy też całe rozwiązanie :-) ) to nie ma znaczenia. Może być nawet assembler.

Ja myślałem raczej, aby na planszy w "strategicznych" miejscach poustawiać pewne punkty, połączyć je odpowiednio i skorzystać z algorytmów na grafach. Potem wystarczy już tylko wygładzić ścieżkę i wszystko.
Problem tylko w tym, że nie znam tych algorytmów... ;(

--"Imagination is more important than knowledge." - A. Einstein

0

Ja zadam tu tylko jeszcze pyt.
Zakladam, ze ta gre masz zamiar napisac pod Delphi. Czy jesli bys ja robil, to czy uzywalbys DelphiX?(Wiem, ze pyt. jest niezwiazane z tematem, ale tak mi sie nasunelo).--Delphi vs. C++

0

Podpowiedź w języku Delphi....

co do "Mow sie ze to łatwe" to chciałem napisać "Mówi się, że to łatwe"

co do tego to przecież postać moze iść np. 10 pikseli na lewo od ścieżki? co nie a jak po prawej jest blikso sciana to np. 7 pikseli od tego tam czegos a jakby co to sie zaklinuje i wał :)

0

VODKA32 napisał:
Ja zadam tu tylko jeszcze pyt.
&gtZakladam, ze ta gre masz zamiar napisac pod Delphi.

Nie! Gierka będzie pod C++ :-) --"Imagination is more important than knowledge." - A. Einstein

0

No to ja nie pomoge :/

0

nie mam pojecia jak to sie robi ale jedyne co mi sie nasoowa na mysl to po pierwsze ograniczyc obszar klikania (jesli dobrze zrozumialem o jaki tryb chodzi) z akcja 'move' do takiego po ktorym mozna chodzic i jest o np. 7px od sciany, a po drugie to gdy juz wylapie sie ten punkt gdzie ma sie poruszyc postac, [pewnie to straszliwie prymitywne ale ja sie nieznam zabardzo na tym wszystkim :|] to jak bylo wspomnianeprowadzimy prosta do punktu i jesli nic nie ma na przeszkodzie to idziemy, jesli jednak jest to ja bym jesli np. mamy sytuacje:

                [X]

:::::::PRZESZKODY:::::: ::::::PRZESZKODY::::

[ty_stoimy]

(mam nadzieje ze po wyslaniu wyjdzie to jak w tym textarea... :| )

i teraz mamy dojsc do punktu [X]. Poprowadzilismy prosta i wiemy ze na drodze cos stoi. Teraz zabardzo nie wiem jakie przyjac kryterium, do glowy przychodza mi dwa - polozenie punkty docelowego na osi poziomej wzgledem nas (na prawo czy lewo), albo "z góry" ustalone jakies MarkPointy (wspomniane wczesniej) ktore oznaczaja miejsce gdzie mozemy chodzic. Jelsi wezmiemy pod uwage to pierwsze, to moznaby_jakos (uwielbiam ten zwrot laika [czyli mnie] ;) ) sprawdzac punkt po punkcie od miejsca natrafienia na przeszkode ida w strone oddalenia od nas punktu czy natrafimy na miejsce gdzie mozna chodzic. Ogolnei to beznadziejne i te MarkPointy (sam se to tak nazwalem :) ) to calkiem fajna rzecz. Wtedy bierzemy wsoolrzedne tego najblizej punktu X i wyszukujac nastepne sprawdzamy_jakos czy mozna "po nich" dojsc do miejsca gdzie sie znajdujemy.

Ehhh moglem w ogóle tego nie pisac i tak nic nie pomoglem {glowa} {wstyd} --- - -
Roszi

0

ZIOMBER napisał:
&gtNo to ja nie pomoge :

Jak już wspomniałem wcześniej, to, w jakim języku dostanę jakąś pomoc nie jest ważne (z każdym sobie poradzę :P ), więc jeśli jesteś w stanie mi pomóc, tyle że w Delphi (lub czymkolwiek innym) to nie krępuj się :-) --"Imagination is more important than knowledge." - A. Einstein

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0