Několik lidí odsud už mi psalo na e-mail či soukromně, abych jim vysvětlil jak dělám to nebo ono. Většina z dotazů jde za grafikou. Mimochodem když už se s tím namáhám pak vysvětlit, tak by bylo dobré v rámci slušnosti odpovědět alespoň "Díky!"

Ale to jenom tak mimochodem, je to vaše vizitka

Tak zkusim to raději veřejně pro všechny, páč se dotazy množí. Nejprve si musíte nakreslit ten spirte, se kterým chcete pohybovat. To je základ. Je to úplně jednoduché, v malování ve Windows si nakreslíte malý obrázek, ten převzorkujete bod po bodu a body neukotvujete absolutně, ale relativně, tj. např. bod č. 1 nebude na pozici 10,10, ale na pozici 10+x,10+y.
Někdy si vystačíte s běžnýma tvarama, které se nemusí vzorkovat bitmapově, např. pohyb prstenu (jak se mě někdo ptal) udělám pomocí elipsy, kterou pořád zužuju. Je to pár řádek v Basicu a kdysi to vyšlo i v ABC

Předělal jsem to třeba takhle do Freebasicu (rotace kolem osy Y):
Výsledek ke spuštění:
http://www.edisk.cz/stahnout-soubor/25198/osaY.zip_48.86KB.html
dim shared as single a,b,x,y,i
const pi as double=4*atn(1)
screen 20,32,,0
cls
a=10
b=50
x=500
y=300
zacatek:
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(100,100,150)
next i
sleep 10
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(0,0,0)
next i
a+=1
if a>50 then goto dalsi
goto zacatek
dalsi:
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(100,100,150)
next i
sleep 10
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(0,0,0)
next i
a-=1
if a<0 then goto zacatek
goto dalsi
sleep
end
Rotace kolem osy X:
Výsledek ke spuštění:
http://www.edisk.cz/stahnout-soubor/66027/osaX.zip_47.42KB.htmldim shared as single a,b,x,y,i
const pi as double=4*atn(1)
screen 20,32,,0
cls
a=50
b=10
x=500
y=300
zacatek:
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(100,100,150)
next i
sleep 10
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(0,0,0)
next i
b+=1
if b>50 then goto dalsi
goto zacatek
dalsi:
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(100,100,150)
next i
sleep 10
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(0,0,0)
next i
b-=1
if b<0 then goto zacatek
goto dalsi
sleep
end
Pochopitelně v kombinaci uděláte i nějaký posun třeba takhle:
Výsledek ke stažení:
http://www.edisk.cz/stahnout-soubor/67568/posun_x.zip_47.48KB.htmldim shared as single a,b,x,y,i
const pi as double=4*atn(1)
declare sub pocet
screen 20,32,,0
cls
a=50
b=10
x=500
y=300
zacatek:
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(100,100,150)
next i
sleep 10
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(0,0,0)
next i
b+=1
if b>50 then goto dalsi
x+=1
goto zacatek
dalsi:
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(100,100,150)
next i
sleep 10
for i=0 to 2*pi step .01
pset (a*cos(i)+x,b*sin(i)+y),rgb(0,0,0)
next i
b-=1
if b<0 then goto zacatek
pocet
y+=1
goto dalsi
sleep
end
sub pocet
if x>800 then
x-=1
elseif x>1 then
x+=1
end if
end sub
Stejným principem uděláte třeba míček, který se bude odrážet od hran obrazovky, nebo více míčků, ve 3D to už budou namísto prstenu ty sprity...
Např. nakreslím si koně v ArtStudiu na C64

To bude můj sprite. Udělám si ho 2x s jinýma nohama, páč chci aby se sprity střídaly a aby se kůň pohyboval (viz obrázky v příloze).
Pak už je to jednoduché. 2 koně v pohybu (schválně zpomalené):
http://www.edisk.cz/stahnout-soubor/46099/2kone.zip_54.93KB.htmlNebo třeba 7 koní:
http://www.edisk.cz/stahnout-soubor/77320/7koni.zip_70.03KB.htmlV
PureBasicu je to zobrazování úplně jiné. PureBasic už je v tomhle směru objektový jazyk, jste o úroveň výš, takže sprity se řeší jinak (téměř jako na C64) a každý objekt ve zobrazení se čísluje.