1

ciezka noc:

http://pouet.net/prod.php?which=6488

http://atari.pl/zlo.gif

program: http://atari.pl/zlo.obx

zmienilem troche parametry...

http://atari.pl/hsc/ad.php?i=1.

2

Tebe zrobil cos podobnego. Wyrobil sie w 256 bajtach http://madteam.atari8.info/scena/sintro.zip
:)

3

Przepisane z trumny?

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

4

Hej!

A może nawet emulowane :D

Seban

5

przepisane z gumowca, nie emulowane :mad:

http://atari.pl/hsc/ad.php?i=1.

6

Hej!

zmyliła mnie organizacja ekranu :D

pozdrawiam
Seban

7 Ostatnio edytowany przez tebe (2007-11-13 20:39:00)

gratuluje, działa płynnie i nie potrzebuje hektarów kodu

p.s.
zdaje się że jest to Twirl czy jakoś tak, wyginający się prostopadłościan, dobrze kojarze ?

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

8

nie wiem jak sie to nazywa ale tak wyginajacy sie (z 5 parametrami) prostopadloscian

http://atari.pl/hsc/ad.php?i=1.

9

calkiem niezle to lazi jak na kod przeportowany z trumny (2 ramki zdaje sie)

btw: ogolnie dosc ciekawy efekt...  ktos wie na jakiej zasadzie ten efekt dziala?
na pierwszy rzut oka wyglada na dwa paski powyginane sinusem i nalozone na siebie(?)

10

eru i fox by wiedzieli, tyle że tu nie zaglądają

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

11 Ostatnio edytowany przez eru (2007-11-15 02:21:32)

nawet ładne, jak na z80...
ale...
przecież...
każdy wie, że atari potrafi więcej...
...
http://eru.nutki.com/a8/twirl.png
http://eru.nutki.com/a8/twirl.xex
...
4 godziny po obiedzie... na początku tak z ciekawości, jak to się robi... a potem to już czysty fan...

EDIT: hehe, wyczułem TeBe - 30 sekund po nim napisałem!
EDIT2: a co to właściwie jest? prostopadłościan obracający się wokół osi Y, w każdej linii o inny kąt, dodatkowo przesuwany poziomo, w każdej linii o inną wartość.

: 404. Stopka not found

12

No i pozamiatane.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

13

Fajne, się mi podoba. :)

I Ty zostaniesz big endianem...

14

:-) zaje...ste :-)

http://atari.pl/hsc/ad.php?i=1.

15

XXL przeportuj jeszcze troche, Eru podrasuje i będzie demo :)

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

16

hehe tez wczoraj nad tym siedzialem i trzeba powiedziec jedno - jest to jeden z najprostrzych efektow jakie mozna sobie wyobrazic - prosty sinus plotter juz jest bardziej skomplikowany ;)

caly kod renderujacy to cos wyglada mniej wiecej tak:

ay = ang;
for (i=0; i<SCREEN_HEIGHT; i++)
{
  x = SCREEN_WIDTH/2 + sintab[(ang+i)&0xff];
  x1 = x + sintab[ay] + costab[ay];  // sintab[x] = sin(x)*szerokoscobiektu, costab[x] = cos(x)*szerokoscobiektu
  x2 = x + sintab[ay] - costab[ay];
  x3 = x - sintab[ay] - costab[ay];
  x4 = x - sintab[ay] + costab[ay];

  // pierwsza sciana
  for (j=x1; j<x2; j++)
    plot(j,i,1);
  // druga sciana
  for (j=x2; j<x3; j++)
    plot(j,i,2);
  // trzecia sciana
  for (j=x3; j<x4; j++)
    plot(j,i,3);
  // czwarta sciana
  for (j=x4; j<x1; j++)
    plot(j,i,2);

  ay += PARAM1;
}
ang += PARAM2;

oczywiscie mozna to jeszcze zoptymalizowac (x,x1,x2,x3,x4 mozna wyliczyc uzywajac tylko jednej tablicy itp)

jedno pytanie do Eru - jak wyglada u Ciebie zmiana wartosci ay? u mnie ay zmienia sie o stala wartosc (PARAM1) to oznacza ,ze obiekt zawsze bedzie tak samo "skrecony", wiec aby skrecenie bylo dynamiczne to PARAM1 musi byc jakas funkcja.. jak taka funkcja wyglada u Ciebie? XXL cos pisal o 5 parametrach - u mnie sa 3 - te pozostale dwa maja byc jako parametry do zmiany wartosci ay?

17 Ostatnio edytowany przez eru (2007-11-15 15:05:40)

tak myślisz? że prostsze niż sinus plotter? to zrób to tą metodą w ramkę.
nie mówię, że to jest skomplikowane, ale tak jak napisałeś, to nie zadziała (szybko).

Co do różnych parametrów, w tym co wysłałem jest 6 wartości:
1. skręt pierwszej linii
2. skręt co linię
3. pozycja pozioma pierwszej linii
4. pozycja pozioma co linię
5. pozycja x kratki
6. pozycja y kratki
Każda wartość jest uzyskiwana przez złożenie dwóch sinusów, w tym stylu:

  txa
  add #add_value_1
  tax
  tya
  add #add_value_2
  tay
  lda sinus,y
  add sinus,x
  .. zrób coś z A

Dla parametrów 1,3,5,6 robimy to co ramkę, dla 2 i 4 co linię... Zamiast sinusa można użyć ciekawszych tablic (w twirl tego nie ma), ma się wtedy bardziej różnorodne zachowanie. I dla rzeczy co ramkę można zrobić licznik nie 8-bitowy a 16-bitowy, wtedy się nie powtarza co 256 ramek, a co 64k ramek :)

ogólnie, może wypuszczę wieczorem source kod, bo to ciekawy przykład programowania przy użyciu makr (bez MADSa nigdy bym tego nie napisał tak szybko i tak szybko działającego).

EDIT: a ogólnie, to po co produkujesz kod, który nie robi wcale tego co chcesz? najpierw sprawdziłbyś, nawet na PC :)

: 404. Stopka not found

18

o wlasnie, nie ma to jak uczyc sie na cudzych zrodlach :-)

przy okazji szybciej juz sie tego nie da zrobic - nie ma tam zadnych przesuniec wszystkie operacje wykonuje antic czyli co ramke wystarczy zapisac no nie wiem strzelam 384 bajty?

http://atari.pl/hsc/ad.php?i=1.

19

dzieki za szybko odpowiedz, jutro sie tym dalej pobawie, bo aktualnie mam troche inna robote na glowie...

a co do prosototy to chodzilo mi oczywiscie o sam algorytm generujacy ten efekt - implementacja go na atari aby lazil w jednej ramce to juz inna sprawa...

20

Tak jak to wczoraj wziąłem i naklepałem:
  http://eru.nutki.com/a8/twirl.asx
zero jakichś optymalizacji, upiększeń, itp.
Na oko to ma to szansę spokojnie wejść w 1KB, rezerwuję sobie prawo do tego :P

: 404. Stopka not found

21

moglibyście zapoczątkować na Atariki opisy efektów tego typu i nie tylko, tyle żeby był podany przykład chociaż w jakimś ogólnie zrozumiałym pseudo kodzie (w stylu BASIC-a), aby nawet dziecko mogło zrozumieć

w Wikipedii znaleźć można nawet opis tricków stosowanych przez iluzjonistów takich jak Copperfield, dlaczego nie opisać tricków stosowanych w programowaniu tego typu efektownych efektów

kiedyś na forum dotyczącym C64 znalazłem taką wypowiedź, dotyczącą efektu obracającej się szachownicy (siatki), cyt:

"sfreezuj sobie demko DAWNFALL/OXYRON. ja tam kiedyś zaglądałem i to wyglądało tak, że najpierw wypełniało się obszar 16x16 znaków skośnymi paskami pod odpowiednim kątem (są tam jakieś procedurki, matematyka) a potem xoruje paskami obruconymi o 90 stopni w prawo i wychodzi chessboard"

to też trick, tylko że nie udało mi się go zmaterializować, kojarzycie jak to można wykonać ?

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

22

to moze cos takiego?

http://www.pouet.net/prod.php?which=5640

http://atari.pl/hsc/ad.php?i=1.

23

tebe: nie wiem, nie myślałem nad tym :)
xxl: no chyba czas znaleźć dobry emulator zx na maca :)

: 404. Stopka not found

24

No więc jeśli chodzi o ten efekt z literkami na ścianach, to nie ma problemu (ale nie będzie przesuwu w poziomie).
Nie napiszę, bo mi się nie chce, ale ja bym do tematu podszedł tak (przykład):
- mamy 32 fazy obrotu prostopadłościanu
- prostopadłościan ma 8 bajtów (64 pixle) w najszerszej fazie obrotu
- 32 fazy * 8 bajtów = 256 bajtów, ładna okrągła liczba
- sprawdzamy, ile jest unikalnych bajtów w foncie dla używanych literek. Ogólnie, mamy 256 możliwości (2^8), które pixle w foncie są w danej linii zapalone, ale tak naprawdę dla literek/cyferek, lewa i prawa kolumna są zawsze puste, więc możliwości jest 64, i nawet z nich pewnie nie wszystkie są użyte.
- renderujemy powiedzmy te 64 możliwości, każdą w 32 fazach obrotu na 8 bajtach, zajmuje to 16kb
- dla każdej linii na ekranie liczymy obrót oraz która z 64 kombinacji jest użyta (na bazie danych skrolla)
- zmianami adresu antica wyświetlamy to co trzeba
- duszkami zasłaniamy wszystko na lewo i prawo od właściwego skrolla, bo tam są inne klatki
ktoś chce napisać?
aha - jak robią to, że wzorki idą do góry, to jeszcze nie wymyśliłem :)

: 404. Stopka not found

25

a kojarzycie to http://www.pouet.net/prod.php?which=24384

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C