APPLICATIONSPROGRAMMATION ★ ANIMACIJA LIKOV NA ZASLONU (MOJ MICRO) ★

Animacija likov na zaslonu (Moj Micro)Applications Programmation
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Zelo pogosto potrebujemo animacijo likov na zaslonu, najčešče pri pisanju iger. Čeprav igre niso edino področje, na katerem pride animacija v poštev. Brez nje si v vse bolj razširjenem načinu komunikacije uporabnika z računalnikom (miške in ikone) kar ne moremo več zamisliti »prijaznih« menijev. Tudi vsepričujoči kurzor je navsezadnje del animacije.

Najstarejša oblika animacije je pomikanje ASCII znakov po zaslonu. S hitro spremembo položaja znaka ustvarimo vtis. da se znak pomika po zaslonu. V še lepšem primeru se to dogaja z vsakršnimi grafičnimi znaki. V prvem obdobju iger smo za vsak računalnik dobili veliko igric, pri katerih so animacijo reševali po tej poti (spomnimo se samo komercialne igre Harrier Attack. ki sicer ni bila slaba). In vendar, zakaj s tovrstno animacijo ne moremo biti zadovoljni? Vsak znak je sestavljen iz skupka točk velikost 8x8 (to velja za Amstradove računalnike CPC) in je lahko samo na natanko določenem položaju, kar pomeni, da se dva znaka ne moreta nikoli prekrivati. Lahko bi tudi rekli, da znake spravljamo v nekakšne okvire, za »rešetke”. In kakšno korist imamo potem od visoke ločljivosti, če se vesoljska ladja lahko znajde na samo 40 položajih v eni vrsti?

Drugi način animacije likov, ki je možen pri Amstradovih računalnikih CPC, je risanje znakov v načinu TAB: znake rišemo na katerikoli položaj v grafičnem načinu. Rezultati so v tem primeru veliko boljši, vendar je tudi ta način težko uporabljati. Mogoče je sicer združiti več znakov, toda pri mnogih znakih je ta način prepočasen, poleg tega pa ne moremo gibljivih sličic obarvati z več kot dvema barvama (razen če se znaki različnih barv ne prekrivajo, vendar je risanje zaradi tega še počasnejše).

Poznamo pa še en način animacije, in sicer z računalniki, s katerimi lahko iz palete izbiramo barvo vsakega peresa (pen)... in takšen je tudi Amstradov CPC. Če bi radi v nekaj fazah animirali en sam lik, potem lahko vse faze narišete na zaslon tako, da je vsaka izrisana z drugačnim peresom, potem pa drugo za drugo postavimo na kako vidno barvo, vse druge pa so takšne barve kot ozadje. Ta način je zelo simpatičen in hiter, vendar ga je v praksi težko uporabljati.

Animacijo najpogosteje uresničimo s t.i. gibljivimi sličicami (angl. sprite, tj. duh, škrat). Škrat je sličica, katere velikost je omejena, njena definicija (oblika) pa je shranjena nekje v pomnilniku, vendar jo je po tej ali oni poti mogoče prenesti na zaslon. Z zaporednim prenašanjem gibljive sličice na razne položaje na zaslonu tako ustvarimo vtis. da se sličica giblje.

Zmogljivejši videoprocesorji. ki jih vdelujejo v nekatere računalnike (C 64, amiga, atari XL, MSX), avtomatsko poskrbijo za tovrsten prenos.

Dovolj je, da obliko gibljive sličice definiramo na ustreznem mestu v pomnilniku, nato še postavimo njene koordinate v ustrezne registre in sličica se bo pojavila na zaslonu. Mogoče je tudi določiti prioriteto sličice oziroma ozadja

Amstradova serija CPC te možnosti vdelave v videoprocesor ne pozna in zato se je za pomikanje sličic treba zateči k pisanju ustreznih strojnih rutin.

Računalniki, ki ne poznajo možnosti prikaza gibljivih sličic, imajo vendarle neko prednost: velikost in število sličic lahko določimo, toda včasih je hitrost takšnih rutin kritična in zato sličice močno »trepetajo«, z drugimi besedami, vidimo, kako se izrisujejo. Prednost računalnikov z »vdelanimi- škrati pa je hitrost prikaza. Seveda lahko rutine za risanje sličic napišemo tudi za tiste računalnike, ki poznajo prikaz škratov. vendar se programerji navadno odločijo za že obstoječe možnosti.

Da ne bi videli, kako se sličice izrisujejo, jih moramo risati takrat, kadar se slika na zaslonu ne izrisuje (tj, kadar se izrisuje rob - border - oziroma kadar se curek vrača na začetek slike). Z amstradom takšno sinhronizacijo dosežemo. če pokličemo rutino FRAME FLYBACK z naslova &BD19. Omeniti moramo še to da enakomerno »drsenje- škratov dosežemo samo takrat. če se škrat po vsaki narisani sliki premakne za eno točko (giblje se torej s hitrostjo 50 točk v sekundi). Če bi radi dosegli večjo hitrostv moramo sličico risati v korakih po nekaj točk. Ce se sličica pomika počasneje od 50 točk v sekundi animacija ne bo najbolj imenitna. Vse to je ponazorjeno s primerom v listingu 1.

Brisanje škratov je vprašanje zase (z njim se ne otepavajo programerji, ki animacijo programirajo z računalniki z »vdelanimi- sličicami). Sličico je najlažje zbrisati tako. da je na robovih barva ozadja, in ko se škrat pomika točko za točko, za sabo briše sled. ki bi jo sicer puščal če rob ne bi bil obarvan tako kot ozadje. Ta način je uporabljen v primeru na listingu 1. Druga rešitev je risanje sličice v načinu XOR (o tem smo pisali v drugem nadaljevanju). Ko skratka drugič narišemo na isto mesto, se bo izbrisal Po tem načinu lahko posežemo, kadar je za sličico kako ozadje in res ga pogosto uporabljajo (Chuckie Egg, Beach Head). Prepoznamo ga po tem. da se ob preklapljanju sličice in ozadja na stičnih mestih pojavi barva, ki sicer ne ustreza ne sličici ne ozadju. To ni zelo šibka točka, vendar so pri nekaterih igrah uporabili boljše načine (Every one's Wally) - ozadje se pri vsakem brisanju sličice znova izriše. Toda za to potrebujemo hiperhitre rutine in zato si z basicom ne moremo pomagati (prek kake RSX razširitve)

V listingu 2 boste našli ukaza RSX.

|SPR , < x > , < y > , < naslov definicije >
|SPRACC , < način O$ - 3 >

Ukaz |SPR rabi za risanje sličic poljubne velikosti v kateremkoli zaslonskem načinu. Parametra x in y sta fizični koordinati, s katerima mora biti sličica narisana (v MODE 0 je torej vodoravno 160 točk. v MODE 1 320. v MODE 2 640 točk. navpično pa v vsakem načinu 200 točk).

Naslov definicije škrata je naslov, na katerem je oblika sličice, ki naj bi jo narisali. Prvi byte označuje zaslonski način, v katerem rišemo, drugi byte širino sličice v bytih. tretji pa višino sličice v številki vrstic. Dolžina definicije ie torej širinaxvišina+3.

|SPRACC spremeni način pristopa do video pomnilnika. Načini so tile:

0 - FORCE (zanemarimo ozadje)
1 - XOR
2 - AND
3 - OR

Začetni način risanja je XOR.

Besedila Kot običajno ne tipkamo. Najprej vtipkajte program iz listinga 3 v basicu in ga posnemite s SAVE-SPR.BAS-. Potem vtipkajte program iz listinga 4. Na napake pri tipkanju bo opozoril sam program. Po popravkih bo program. če bo vse v redu. posnel tudi strojni del pod imenom -SPR.BIN-. Na kaseti oziroma disketi bo zdaj relokatibilni program.

V bytu bodo točke razporejene različno glede na posamezne zaslonske načine:

MODE 0MODE 1MODE 2
Končna
leva
točka
biti 1,5.3,7

biti 3,7

bit 7
bit 6

biti 2,6

bit 5
bit 4
biti 0,4,2,6bit 1,5bit 3
Končna
desna
točka
bit 2
bit 0,4bit 1
bit 0

Bit ali skupek bitov pomenita pomnilnik za posamično pero. Točke so v bytu organizirane precej nelogično in zapleteno: izjema je le način 2.

Ker oblikovanje škratov niti približno ni lahko delo (zaradi komplikacij z organizacijo točk v bytu), je v listingu 5 program, ki rabi za risanje sličic. V prvi vrsti morate določiti širino sličice v bytih (WID), višino (HEI), zaslonski način, v katerem definirate sličico (MDE) in naslov definicije (DFI). na katerem sličico definirate. Narisati jo morate v gornjem levem kotu (to je mogoče narediti tudi s kakim komercialnim programom za risanje, vsebujočim tudi opcijo za povečevanje slike). Poudariti moramo, da po določitvi zaslonskega načina slika pred oblikovanjem ne sme biti pomaknjena, ker risalni program ne preverja -»screen offseta«.

Listing 6 vsebuje majhen prikaz novih ukazov RSX.

Tisti, ki bodo potrepežljivo vtipkali vse razširitve basica. ki so bile doslej objavljene v tej seriji, bodo v listingu 7 našli program v basicu. s katerim bodo mogli hkrati naložiti vse razširitve Ta program po tipkanju posnemite s SAVE »Ml-KROBAS“, potem pa presnemite vse BIN dele azširitev RSX, in sicer po takšnem vrstnem redu, v kakršnem so bili objavljeni.

Po šestih mesecih se je naša serija torej iztekla. Pojasnili smo najpogostejše tehnike dela z grafiko z amstradom. Pri tem smo uporabljali eno samo knjigo, in sicer CPC 464 Firmware. avtor Bruce Golden. založba Lcomotive Software. 1984.

Za sklep še povejmo, da smo v glavnem govorili le o 2D grafiki, saj 3D grafiko s hišnimi računalniki redko uporabljajo, pač zaradi premajhne hitrosti. To področje bi zahtevalo vsaj še eno takšno serijo, vendar je težko verjeti, da bi zanimalo širši krog bralcev. Tistim, ki bi se vendarle hoteli spustiti globlje, pa priporočam, da v kaki dobro založeni trgovini poiščejo ustrezno knjigo, saj so tovrstna dela zadnje čase tudi pri nas včasih na voljo.

Konec

Siniša Jagodič , Moj Micro

★ PUBLISHER: Moj Micro
★ ANNÉE: 1988
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTHOR: Siniša Jagodič
 

Page précédente : Rutina FILL in povečani znaki na zaslonu
★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Animacija  Likov  na  Zaslonu    (Moj  Micro)    LISTING    SLOVENIANDATE: 2021-11-20
DL: 119
TYPE: PDF
SiZE: 421Ko
NOTE: 3 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » D'MAN - Directory-Manimulationen
» Applications » Tastenprogranimierung (CPC Amstrad International)
» Applications » Poliyo Soft - Animator
» Applications » CPC Infos Japanimation volume 1
» Applications » Animator (Amstrad Action)
» Applications » The Animator (CPC Amstrad International)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 488 millisecondes et consultée 550 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.