Master of Sprites - sprite edytor w javie
- Operator Teleksu
- Posty: 75
- Rejestracja: 27 lis 2020, 21:31
Master of Sprites - sprite edytor w javie
Siema.
Chciałem zaprezentować w celach poglądowych następne swoje dzieło. Tylko bardzo proszę bez żadnych news'ów na portalu jakby co.
Chodzi o pisany w javie edytor, z którym że tak powiem, wiążę nadzieje na swój niewielki sukces - przynajmniej jeśli kiedyś go dokończę. Na razie program jest w "wczesnej fazie rozwoju", brakuje wielu potrzebnych funkcji (podglądu animacji przedewszystkim) ale można już co nieco zobaczyć i ocenić jak to się prezentuje i czy na coś komuś potrzebne.
Jakby co, java 8 jest jak najbardziej ok do uruchomienia.
https://github.com/tstamborski/master-o ... prites.jar
Chciałbym zapytać (już tak poważnie) czy to ma sens, kiedy jest darmowy SpritePad, płatny też nie kosztuje zbyt wiele i SpritePad świetnie działa na linuksie via Wine. Piszę o przyszłości, bo narazie tak jak napisałem, wszystko jest dopiero w trakcie pracy.
Chciałem zaprezentować w celach poglądowych następne swoje dzieło. Tylko bardzo proszę bez żadnych news'ów na portalu jakby co.
Chodzi o pisany w javie edytor, z którym że tak powiem, wiążę nadzieje na swój niewielki sukces - przynajmniej jeśli kiedyś go dokończę. Na razie program jest w "wczesnej fazie rozwoju", brakuje wielu potrzebnych funkcji (podglądu animacji przedewszystkim) ale można już co nieco zobaczyć i ocenić jak to się prezentuje i czy na coś komuś potrzebne.
Jakby co, java 8 jest jak najbardziej ok do uruchomienia.
https://github.com/tstamborski/master-o ... prites.jar
Chciałbym zapytać (już tak poważnie) czy to ma sens, kiedy jest darmowy SpritePad, płatny też nie kosztuje zbyt wiele i SpritePad świetnie działa na linuksie via Wine. Piszę o przyszłości, bo narazie tak jak napisałem, wszystko jest dopiero w trakcie pracy.
Have a nice day!
- Operator Teleksu
- Posty: 75
- Rejestracja: 27 lis 2020, 21:31
Re: Master of Sprites - sprite edytor w javie
Wiem że nie każdemu chce się produkować na temat czyjegoś tam programu i wgl, ale wiem też że kilka pobrań weszło i byście napisali chociaż jednym słowem czy ogólnie fajne czy nie. Sorry za głupią ciekawość.
Przy okazji wrzucam linki do screenshot'ów (nie chcą mi się jakoś wyświetlać kiedy wklejam je jako obraz):
https://github.com/tstamborski/master-o ... nshot0.png
https://github.com/tstamborski/master-o ... nshot1.png
Przy okazji wrzucam linki do screenshot'ów (nie chcą mi się jakoś wyświetlać kiedy wklejam je jako obraz):
https://github.com/tstamborski/master-o ... nshot0.png
https://github.com/tstamborski/master-o ... nshot1.png
Have a nice day!
Re: Master of Sprites - sprite edytor w javie
Niezależnie od opinii, jeśli masz ochotę to twórz, rozwijaj.
Mi osobiście brakowałoby opcji eksportu do kodu assemblera (jakaś tabelka bajtów).
Superopcją byłaby rotacja duszka wokół własnej osi o dowolny kąt i skalowanie (to byłoby pewnie wyzwaniem dla trybu multicolor).
Mi osobiście brakowałoby opcji eksportu do kodu assemblera (jakaś tabelka bajtów).
Superopcją byłaby rotacja duszka wokół własnej osi o dowolny kąt i skalowanie (to byłoby pewnie wyzwaniem dla trybu multicolor).
- Operator Teleksu
- Posty: 75
- Rejestracja: 27 lis 2020, 21:31
Re: Master of Sprites - sprite edytor w javie
Eksport do kodu asemblera owszem planuje dodać, chociaż odkładałem to mocno na później.
Obracanie trochę gorzej, właśnie byłoby to dla mnie duże wyzwanie w trybie multikolor nawet o równe 90 stopni. Ale pomyślę, poszukam jakiegoś gotowego algorytmu i zobaczymy.
Chce mi się i zamierzam dalej nad tym pracować. Tylko myślę że zawsze warto zapytać kogoś innego, bo samemu można nie dostrzec jakiegoś problemu, przez to że np. zdążyłem się psychicznie nastawić na coś innego.
Obracanie trochę gorzej, właśnie byłoby to dla mnie duże wyzwanie w trybie multikolor nawet o równe 90 stopni. Ale pomyślę, poszukam jakiegoś gotowego algorytmu i zobaczymy.
Chce mi się i zamierzam dalej nad tym pracować. Tylko myślę że zawsze warto zapytać kogoś innego, bo samemu można nie dostrzec jakiegoś problemu, przez to że np. zdążyłem się psychicznie nastawić na coś innego.
Have a nice day!
Re: Master of Sprites - sprite edytor w javie
Nie udało mi się zrozumieć opcji "Overlay". Jak ona działa?
- Operator Teleksu
- Posty: 75
- Rejestracja: 27 lis 2020, 21:31
Re: Master of Sprites - sprite edytor w javie
no właśnie na razie to nie robi niczego (poza ustawieniem jednego bitu w atrybutach duszka). kiedy dodam podgląd animacji (i nie tylko) ta opcja będzie powodować że duszek będzie nakładany na następnego (oddalonego w pamięci o tyle co "overlay distance"). tylko że to będzie widoczne w zakładce podglądu której na razie nie ma.
taki miałem pomysł przynajmniej, żeby oddzielić podgląd od edytora a za to podgląd miał trochę bardziej zaawansowane opcje np. wyświetlanie kilku zlepionych ze sobą duszków na raz i nakładanie właśnie.
taki miałem pomysł przynajmniej, żeby oddzielić podgląd od edytora a za to podgląd miał trochę bardziej zaawansowane opcje np. wyświetlanie kilku zlepionych ze sobą duszków na raz i nakładanie właśnie.
Have a nice day!
Re: Master of Sprites - sprite edytor w javie
W przypadku multicolor wydaje mi się, że rotację można zrealizować w ten sposób:
1. Potraktowanie duszka jako bitmapy i przeskalowanie w osi X do 50% szerokości,
2. Rotacja bitmapy
3. Ponowne przeskalowanie bitmapy do 200%, ale względem wektora kąta (to chyba da się obliczyć jako złożenie macierzy skalowania i obrotu - otrzymamy pewnie jakieś współczynniki skalowanie w osi X i Y).
1. Potraktowanie duszka jako bitmapy i przeskalowanie w osi X do 50% szerokości,
2. Rotacja bitmapy
3. Ponowne przeskalowanie bitmapy do 200%, ale względem wektora kąta (to chyba da się obliczyć jako złożenie macierzy skalowania i obrotu - otrzymamy pewnie jakieś współczynniki skalowanie w osi X i Y).
- Operator Teleksu
- Posty: 75
- Rejestracja: 27 lis 2020, 21:31
Re: Master of Sprites - sprite edytor w javie
W sumie to chyba racja że jest to na tyle proste.
Inna sprawa to wydajność - model duszka nie jest w moim programie bitmapą i zamienianie go na bitmapę i z powrotem (jakby to można topornie i najprościej rozwiązać) to mało optymalne rozwiązanie. Tyle że w przypadku tak małej bitmapy to pewnie i tak bez znaczenia.
sorry jak coś pie***, nie jestem profesjonalistą.
Z matematyką na poziomie wyższym niż liceum (macierze) jestem trochę do tyłu, ale napewno to ogarnę, pewnie java ma gotowe funkcje do tego.
Inna sprawa to wydajność - model duszka nie jest w moim programie bitmapą i zamienianie go na bitmapę i z powrotem (jakby to można topornie i najprościej rozwiązać) to mało optymalne rozwiązanie. Tyle że w przypadku tak małej bitmapy to pewnie i tak bez znaczenia.
sorry jak coś pie***, nie jestem profesjonalistą.
Have a nice day!
Re: Master of Sprites - sprite edytor w javie
Mam na myśli reprezentację każdego piksela jako osobnego bajtu, czy cokolwiek innego co można wykorzystać w klasie Image czy BufferedImage.Operator Teleksu pisze: ↑28 maja 2024, 15:11model duszka nie jest w moim programie bitmapą i zamienianie go na bitmapę i z powrotem (jakby to można topornie i najprościej rozwiązać) to mało optymalne rozwiązanie.
- Operator Teleksu
- Posty: 75
- Rejestracja: 27 lis 2020, 21:31
Re: Master of Sprites - sprite edytor w javie
No właśnie mój program przechowuje sprite'y dokładnie tak samo jak robi to sam komodorek. Klasa SpriteData nie dziedziczy po Image ani nie implementuje RenderedImage. Zamienić na BufferedImage to może i tak zamieniam żeby móc odrysować ale żeby z powrotem musiałbym robić coś takiego (w sumie to podobnego jak i w pierwszą stronę):
Zastanawiam się (bez sensu bo jak napisałem dla bitmapy 24x21 to i tak trwa nanosekundę) czy to nie za duży narzut. Wiem, głupi jestem.
Kod: Zaznacz cały
//tryb multikolor załóżmy
for (int x = 0; x < bufferedImage.getWidth(); x++) {
for (int y = 0; y < bufferedImage.getHeight(); y++ ) {
switch (bufferedImage.getRGB(x, y)) {
case palette.getColor(SpriteColor.SpriteColor).getRGB():
spriteData.setPixel(x / 2, y, SpriteColor.SpriteColor);
break;
case palette.getColor(SpriteColor.Multi0Color).getRGB():
spriteData.setPixel(x / 2, y, SpriteColor.Multi0Color);
break;
case palette.getColor(SpriteColor.Multi1Color).getRGB():
spriteData.setPixel(x / 2, y, SpriteColor.Multi1Color);
break;
default: //SpriteColor.BackgroundColor
spriteData.setPixel(x / 2, y, SpriteColor.BackgroundColor);
break;
}
}
}
Have a nice day!
- Operator Teleksu
- Posty: 75
- Rejestracja: 27 lis 2020, 21:31
Re: Master of Sprites - sprite edytor w javie
Wiem if - else if - else tam powinno być a nie switch.
Have a nice day!
Re: Master of Sprites - sprite edytor w javie
hej
odpaliłem i... działa. w zasadzie nic więcej nie umiem powiedzieć o funkcjach jakie zaimplementowałeś.
Sprajt Overlay to dobry pomysł.
Nie widzę funkcji grupowania sprajtów aby zrobić jeden większy np składający się z 4, czyli 2x2 sprajty
... i do tego dodać ten overlay - takiego ficzera z overlay'em w sumie chyba nie widziałem dla sprajtów 2x2
obie powyższe funkcje uważam że były by przydatne.
to tak na szybko.
odpaliłem i... działa. w zasadzie nic więcej nie umiem powiedzieć o funkcjach jakie zaimplementowałeś.
Sprajt Overlay to dobry pomysł.
Nie widzę funkcji grupowania sprajtów aby zrobić jeden większy np składający się z 4, czyli 2x2 sprajty
... i do tego dodać ten overlay - takiego ficzera z overlay'em w sumie chyba nie widziałem dla sprajtów 2x2
obie powyższe funkcje uważam że były by przydatne.
to tak na szybko.
c64portal.pl, retronavigator.com
- Operator Teleksu
- Posty: 75
- Rejestracja: 27 lis 2020, 21:31
Re: Master of Sprites - sprite edytor w javie
To nie jest jeszcze zaimplementowane - to na razie tylko plan na przyszłość.
Pozatym dzięki za testowanie (i tobie i wszystkim innym).
Have a nice day!
Re: Master of Sprites - sprite edytor w javie
Rotację pixel-perfect można zrobić przez trzykrotny shear (nie wiem jak to po polsku się nazywa) - piksele są tylko przesuwane w nowe miejsca - żaden nie zniknie i żaden nowy się nie pojawi. https://cohost.org/tomforsyth/post/8918 ... with-threeGordian pisze: ↑28 maja 2024, 14:23W przypadku multicolor wydaje mi się, że rotację można zrealizować w ten sposób:
1. Potraktowanie duszka jako bitmapy i przeskalowanie w osi X do 50% szerokości,
2. Rotacja bitmapy
3. Ponowne przeskalowanie bitmapy do 200%, ale względem wektora kąta (to chyba da się obliczyć jako złożenie macierzy skalowania i obrotu - otrzymamy pewnie jakieś współczynniki skalowanie w osi X i Y).
OpenSprite próbuje to robić w ten sposób, ale ma jakiś błąd w implementacji i obracana grafika nie wygląda dobrze.
Gdy spróbowałem to odtworzyć w Pythonie wyszło poprawnie: https://github.com/jowin202/OpenSprite/issues/4
Bitmapy nie trzeba skalować, ale trzeba dodać marginesy z każdej strony.
ytm
Re: Master of Sprites - sprite edytor w javie
A jesteś pewien, że to zadziała ze spritem w trybie multicolor? W artykule jest przykład gdzie mamy pixele 1x1, na GitHubie jest opisywany przykład gdzie również dotyczy to duszka jednokolorowego.
Niemniej, sposób fajny.
Re: Master of Sprites - sprite edytor w javie
Gdy reprezentacja będzie tak wyżej pisałeś w #9 - gdzie 'pixel' to bajt (indeks koloru 0-3) to technicznie będzie działać na pewno.
Ale w multi piksele są prostokątne i przy obrocie proporcje kształtu będą się zmieniać.
To może wyglądać lepiej jeśli spróbować trochę inaczej - duszka w multicolor (12x21) rozciągamy do (24x21) tak jakby każdy piksel multicolor to dwa niezależne piksele hires. Obracamy tę grafikę i z wyniku bierzemy co drugą kolumnę, żeby dostać z powrotem (12x21).
Ale w multi piksele są prostokątne i przy obrocie proporcje kształtu będą się zmieniać.
To może wyglądać lepiej jeśli spróbować trochę inaczej - duszka w multicolor (12x21) rozciągamy do (24x21) tak jakby każdy piksel multicolor to dwa niezależne piksele hires. Obracamy tę grafikę i z wyniku bierzemy co drugą kolumnę, żeby dostać z powrotem (12x21).
Re: Master of Sprites - sprite edytor w javie
Opisywałem to na potrzeby reprezentacji w Javie.
Technicznie będzie działać, ale nie da się skonwertować obrazu w takiej postaci na piksele duszka w multicolor - piksel 2x1 po obrocie może być reprezentowany przez dwa pixele 1x1 w sąsiedztwie "na ukos".
[/quote]
Wydaje mi się, że sytuacja byłaby identyczna jak wyżej.
Re: Master of Sprites - sprite edytor w javie
Myślę o czymś takim: A, B, C, D to indeksy koloru, dla C64 dopiero na samym końcu mapowane na pary bitów %00, %01, %10, %11
Multicolor, pixele 2x1:
Kod: Zaznacz cały
AB
CD
Kod: Zaznacz cały
AABB
CCDD
Kod: Zaznacz cały
CCAA
DDBB
Kod: Zaznacz cały
CA
DB
Kod: Zaznacz cały
.A
A.
Nie wiem czy to będzie dobrze wyglądać. Musiałbym napisać coś na próbę bo nie mogę sobie wyobrazić jak bardzo to zniekształca rysunki przy obrotach.
Re: Master of Sprites - sprite edytor w javie
Jestem ciekaw sytuacji dla innego kąta niż 90 stopni, np. 45.
Re: Master of Sprites - sprite edytor w javie
Luknijcie na to videjko, może się przyda (szczególnie od 35 minuty) :
https://www.youtube.com/watch?v=d90LEBUTDqc
Używałem tego toola (The Spreditor) do obracania sprajtem do prodki w zeszłym roku.
https://www.youtube.com/watch?v=d90LEBUTDqc
Używałem tego toola (The Spreditor) do obracania sprajtem do prodki w zeszłym roku.