Kim Bo Napisano 17 Styczeń 2011 Napisano 17 Styczeń 2011 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:
Gość ant-3d Napisano 18 Styczeń 2011 Napisano 18 Styczeń 2011 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.
olaf Napisano 18 Styczeń 2011 Napisano 18 Styczeń 2011 IMO najlepiej generować wielokąt maskujący i generowanie się koła zostawić tak jak jest. tak byłoby dość prosto.
danilo2 Napisano 18 Styczeń 2011 Napisano 18 Styczeń 2011 Kim Bo jakie masz dane wejsciowe? co wiesz ofigurach, jakei sa zalozenia. Bez wiedzy o nich kazde rozwiazanie moze okazac sie glupie za chwile ;]
Kim Bo Napisano 20 Styczeń 2011 Autor Napisano 20 Styczeń 2011 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??
danilo2 Napisano 21 Styczeń 2011 Napisano 21 Styczeń 2011 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, ... ?
Kim Bo Napisano 23 Styczeń 2011 Autor Napisano 23 Styczeń 2011 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..
olaf Napisano 23 Styczeń 2011 Napisano 23 Styczeń 2011 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 ;)
Kim Bo Napisano 19 Lipiec 2011 Autor Napisano 19 Lipiec 2011 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/
olaf Napisano 19 Lipiec 2011 Napisano 19 Lipiec 2011 o fajnie bo wlasnie chce robić coś w podobnym stylu, ale założę się, ze da się napisać w 10 linijkach i bez hitTestObject, bo wiecej niż wspomniane 60 próbek obniża wydajność.
Kim Bo Napisano 19 Lipiec 2011 Autor Napisano 19 Lipiec 2011 to jak dojdziesz do ciekawych rezultatów możesz się zawsze podzielić ;) by się przydały jakieś korepetycje z AS3 bo chyba ostatnio nie ogarniam :/
Rekomendowane odpowiedzi
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ę