Skocz do zawartości

[Action Script 3.0]rysowanie wycinka kola..


Kim Bo

Rekomendowane odpowiedzi

Witam mam pytanko jak to jest z rysowaniem wycinka koła w AS3. Ogólnie to troszkę szukałem po necie ale interesuje mnie jak można "uaktualniać" rysowanie za pomocą skryptu w momencie natrafienia na jakąś przeszkodę.

 

Np jeśli wycinek koła (około 45stopni) natrafi na przeszkodę na koordynatach od X do Y, to jego koordynaty dostosują się do przeszkody.

 

nędznej jakości przykład robiony na touchpadzie na lapciaku:

wycinek.gif

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 10
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Nie pomoge Ci z programowania bo mam o tym male pojecie ale moze podsune rozwiazanie jakiego ja bym szukal. Moze daloby sie to zrobic co chcesz uzywajac mask. AS3 wiec wnioskuje ze chodzi o flasha. Jesli sie myle to sorry, to taka mala sugestia grafika. Jesli chodzi o flasha to sproboj to uzyskac za pomoca mask.

Odnośnik do komentarza
Udostępnij na innych stronach

ok ogólnie muszę zrobić system AI który będzie wyznaczał konkretne "pole widzenia". Dałem w cudzysłowie bo to po prostu pole dwu wymiarowe. Założenie było takie, że:

- ustalam sobie promień i kąt, a nasępnie skryptowo rysuję sobie ten wycinek koła (ma być jak najmniej ręcznie wykonanej grafiki);

- tworzą się w ten sposób dwie proste pod tym właśnie kątem;

- każde naruszenie założenia odległość jakiegoś obiektu

- w funkcji sprawdzam czy obiekt wychodzi poza dolną/górną granicę wycinka

* jeśli wychodzi od dołu wyznaczamy prostą między punktem 0,0 wycinka koła a najwyższym punktem obiektu i rysujemy "nowy wycinek koła" do, pola którego dodajemy trójkąt wyznaczony brzegiem tego obiektu..

* jeśli wychodzi z góry robimy podobnym sposobem

* jeśli obiekt jest po środku rysujemy 2 proste przechodzące przez górny i dolny punkt obiektu dochodzące bezpośrednio do obwodu wycinka kola

 

Tak to by w sumie w miarę działało, ale problem pojawi się gdy obiekt będzie miał nieregularne kształty, obiektów będzie więcej, lub będę próbował "manipulować polem widzenia"(np. obracać je)... jakoś średnio u mnie z matmą ale to jedyne rozwiązane jakie mi przychodzi do głowy. Jakieś sugestie??

Odnośnik do komentarza
Udostępnij na innych stronach

sorki za zwloke ale mialem kupe pracy.

 

Mówiąc dane wejsciowe mialem na mysli opis wsyzstkich parametrow jakie znasz na wejsciu problemu, czyli przede wszstkim czym sa obiekty - sa to figury opisane krzywmi parametrycznymi, bimtapy, ... ?

Odnośnik do komentarza
Udostępnij na innych stronach

obiekty są wszystkie wykonane we flashu, ale nie są to jakieś konkretne figury opisane geometrycznie. Większość tego co będzie na Stage'u to rzeczy rysowane przez artystów i odpowiednio dostosowane do flasha (przerobione na wektory). Elementy ziemi będą miały tekstury bitmapowe ale wypełnienie będzie chyba w stylu "maze" tzn odpowiednia tekstura przypisana do danej liczby binarnej np pusta przestrzeń 0,trawa 1, hard surface 2(np kostka brukowa) itd..

Odnośnik do komentarza
Udostępnij na innych stronach

Pi pierwsze nie dasz rady z wydajnoscią jak bitmapy beda na scenie zmienione w wektory - flash zamorduje procesor. Licz, ze wszystko musi być zmienione na bitmapData. W zwiazku z tym też bitmapData najszybciej wykona Tobie walidację przestrzeni - jest przeszkoda/nie ma przszkody. Poniewaz wszystko będzie na Stage'u najlepiej próbkować realne wartości np. 3600próbek na ekran rozchodzące się po promieniu i szukające koloru innego niż X (gdzie mozesz zrobic kolorowe maski obiektom jako ich odpowiedniki) po czym malujesz dynamicznie maskę dla takiej siatki. Nie wiem jednak czy wyrobi się w 30fps. Dla Stage potrzebujesz wartości całkowitych, więc moze obliczenie pójdzie zawsze szybko po int(). Po malej optymalizacji moze się okazać, że działa to naprawdę szybko, ale sam bym miał zagwostkę robiąc to i pewnie wolałbym machnąć to jako odpowiednio oskryptowany MC w 2-3 godzinki ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Trochę odgrzebuję ale znalazłem rozwiązanie (podstawę do niego), myślę że może się komuś przydać. ola-f szedł dorym tropem :) ale w poniższym przypadku wystarczyło 60 próbek i też działa dosyć dobrze :))))

 

tutaj step by step AS2:

http://www.emanueleferonato.com/2007/09/26/create-a-survival-horror-game-in-flash-tutorial-part-1/

 

a tutaj gotowiec w AS3:

http://www.emanueleferonato.com/2010/06/07/create-a-survival-horror-game-in-flash-as3-version/

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności