OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 16.04.2024, 11:25

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 47 ]  Přejít na stránku 1, 2, 3, 4  Další
Autor Zpráva
PříspěvekNapsal: 09.08.2014, 02:38 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2287
Bydliště: Brno
Has thanked: 846 times
Been thanked: 308 times
Od počátku, co jsem se začal hrát s programováním mám takový sen si naprogramovat Sabotéra. Programovací jazyk Python může posloužit jako prvý náčrt toho, jak co by mohlo fungovat. Sice pomocí Pythonu nemáme přístup ke grafice (pokud z něj neskočíme do assembleru), ale máme přístup ke znakové sadě a znak je tvořen z pixelů. To nám umožnuje použít jednoduchou grafiku a začít si dělat prvotní náčrty logiky samotné hry pro možná budoucí přepsání do jazyku C, který by samotnému vykreslováni jednoduché grafiky pomocí znakové sady mohl a taky nemusel dát dostatečnou rychlost. To již závisí od rychlosti vykreslování znaku ve Workbenchi. Prvotní studie ukazují, že by to tak mohlo fungovat a že programovací jazyk C spolu s vykreslením jednoduché grafiky pomocí znakové sady by mohl stačit. Samozřejmě další level by bylo již použití normální grafiky, které by krom případného nežadoucího pomalého vykreslování "znaku" ve Workbenchi mohlo posunout hru na lepší úroveň.

Udělal jsem jednoduché video, které znázorňuje, jak se dostat k jednoduché grafice, i když k ní nemáme přístup, nebo to zatím neumíme. Sabotér je nakreslen narychlo :).

[youtube]https://www.youtube.com/watch?v=-V7xWlN1Plw[/youtube]

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
PříspěvekNapsal: 09.08.2014, 07:59 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
Pekne. Takto sa to robievalo na JupiterAce. ci NES konzoliach (ak odmyslime sprites)

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
PříspěvekNapsal: 09.08.2014, 08:34 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2287
Bydliště: Brno
Has thanked: 846 times
Been thanked: 308 times
Díky, pokiaľ sa nemýlim na čase 5:10 som pri súčasnom výkone znížil spomalenie presunu znaku z 0,02 na 0,01 sekundy a zbrazenie je tam stabilné, len pohyb sa v rýchlosti zakmitává. Uvidím, čo na to povie toto isté naprogramované v C. Pokiaľ bude problém, ten vyrieši až použitie normálnej grafiky... .

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
PříspěvekNapsal: 09.08.2014, 08:39 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
Lisiak4 píše:
Díky, pokiaľ sa nemýlim na čase 5:10 som pri súčasnom výkone znížil spomalenie presunu znaku z 0,02 na 0,01 sekundy a zbrazenie je tam stabilné, len pohyb sa v rýchlosti zakmitává. Uvidím, čo na to povie toto isté naprogramované v C. Pokiaľ bude problém, ten vyrieši až použitie normálnej grafiky... .


na trych 8 bitoch sa to riesila systemom ze bud bola cez viacere znaky preanimovana pozadovana sekvencia (potom stacilo menit hodnotu dvoch znakou medzi sebou. alebo sa prepisovali definicie znaku. (co asi pre teba nebude schodne)

Pokial by bola v amige nainstalovana podprora pre unicode tak by ti unicode font mohol stacit na vsetky potreby.

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
PříspěvekNapsal: 09.08.2014, 09:13 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2287
Bydliště: Brno
Has thanked: 846 times
Been thanked: 308 times
Hlevne že mám v hlave animáciu cez jednotlivé znaky, čo sa týka napríklad postupnej zmeny pozadia za postavou, ale samotnú animáciu postavy ma takto nenapadlo riešit. Je pravdou, že je k dispozícii 256 znakov, z toho 32, alebo koľko ich je je riadiacich a je treba pracovať rozumne s ich využitím. Samotnú znakovú sadu vlastne využijem ako jednocuchý level editor, kde budú jednotlivé úseky grafiky vo velikosti samotného sabotéra poskladané do seba. Teraz ma vlatne napadlo, že v extréme možem použiť 1 znakovú sadu na 1 miestnosť a teda samotná grafika by v roznych miestnosťach mohla byť pestrejšia, ale to už sa vymyká účelu. Toto neni hlavná programovacia technika, len taký prechod, aby som mohol s niečim pracovať.

... ja si v programe možem načítať znakových sad koľko len chcem, samotné načítanie znakovej sady mi ale smaže obrazovku, proto píšem jedna znaková sada na jednu miestnosť, ale toto pokiaľ nebudem musieť tak nepoužijem a pokúsim si vystačit s 1 znakovou sadou.

Áno na predefinovanie znaku, tak ako to robí napríklad program Typeface potrebujem pokročilejšie techniky a v prípade použitia Pythonu je to možné len pomocou assembleru. No a pokiaľ by som sa naučil pracovať s normálnou grafikou, tak už takéto predefinovanie čo sa týka grafiky nebude potrebné.

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
PříspěvekNapsal: 09.08.2014, 09:34 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2287
Bydliště: Brno
Has thanked: 846 times
Been thanked: 308 times
S tou preanimáciou znaku som sa do toho trochu zamotal, lebo píšem o niečom inom ako si myslel, ale viem ako to myslíš a vžhľadom k tomu, že sa bude skákáť, krčiť, chodiť by to bolo pekné šialenstvo... :).

Sakra využiť posun znaku o 1 pixel pri jeho samotnom napísaní a pritom písať ďalší a ďalší znak do riadku, to neznie úplne šialene. Uvidím.

_________________
Amiga - PMD 85


Naposledy upravil Lisiak4 dne 09.08.2014, 10:00, celkově upraveno 1

Nahoru
 Profil  
 
PříspěvekNapsal: 09.08.2014, 09:38 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
Lisiak4 píše:
S tou preanimáciou zmaku som sa do toho trochu zamotal, lebo píšem o niečom inom ako si myslel, ale viem ako to myslíš a vžhľadom k tomu, že sa bude skákáť, krčiť, chodiť by to bolo pekné šialenstvo... :).

Sakra využiť posun znaku o 1 pixel pri jeho samotnom napísaní a pritom písať ďalší a ďalší znak do riadku, to neznie úplne šialene. Uvidím.


no uz sa tesim na tvojer dalsie video ;-)

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
PříspěvekNapsal: 09.08.2014, 10:11 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2287
Bydliště: Brno
Has thanked: 846 times
Been thanked: 308 times
Malo by to fungovať, práve som si narýchlo vyzkúšal s touto vlastnosťou zpetný chod, teda pohyb doľava a ide to. Teraz to už to len naprogramovať. Bude prča. Takto robený pohyb :lol:.

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
PříspěvekNapsal: 10.08.2014, 17:43 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2287
Bydliště: Brno
Has thanked: 846 times
Been thanked: 308 times
Uživatel zz_indigo mne přiměl přemýšlet, jak daný pohyb sabotéra ještě můžu řešit. Sice mi psal pro mne né příliš schůdné varianty, ale pak mne napadlo, jak to udělat ještě lépe. Sice jsem původní myšlenku nezrealizoval úplně tak jak jsem původně chtěl, ale nasměrovalo mne to správnym směrem. Pohyb v prvním videu není rešen nejlépe, jak může být. Zaráz v něm smazávám původní pozici celého sabotéra a vykresluji ho na nové pozici.

Mne stačí pri konkrétním pohybu ale smazat jen část sabotéra. To jsem hned napravil.

Nová myšlenka byla využít na pohyb sabotéra více Workbench, než to dělat pomocí Pythonu. Tedy neposouvat ho pomocí vodorovné a svislé souřadnice, ale pomocí posunu znaku (sabotéra) na další pozici (pohyb vpravo) a nazpět (pohyb vlevo). Ano i pohyb vlevo jde. U proporcionálního fontu můžeme zobrazit znak i vlevo od pozice kurzoru. Myšlenka to byla hezká, ale v samotné eufórii jsem opoměl skutečnost, že příkaz PRINT zobrazuje text po větších částech než po 1 písmenu. Nejjednoduchší příklad by byl při posunu písmena A o 20 pozic doprava. Pokud by jsem napsal tenhle pohyb jen pomocí PRINT, písmeno A by se mi třeba zobrazilo na 0,5,10,15 a 20 pozici. Mezipozice by by se vynechali. Na to aby jsem donutil Python zobrazit každou pozici, musím po každém zobrazení řádek zalomit. Tím jsem ale ztratil původní pozici znaku kterou potřebuji, když nepracuji se souřadnicemi a je zde problém. Tak jsem udělal takový kompromis. Vzpoměl jsem si na jeden příkaz, který mení vlastnost Enteru a po zalomení řádku mi nedá kurzor na začátek nového řádku ale pod původní pozici kurzoru + 1 posun vpravo, čim jsem při zalomení řádku nestratil původní pozici kurzoru. Stačilo mi tedy posunout kurzor o 1 pozici nahoru.

Měl jsem tedy nový způsob pohybu a rychlejší zobrazení sabotéra. Pak jsem nový způsob zobrazení aplikoval i na původní posun pomocí souřadnic a postavil oba způsoby posunu proti sobě. Rychlost posunu u obou způsobú je stejná.

Já si tedy vybral novější způsob posunu. Je mi sympatičtější řešit pohyb z místa sabotéra, jako pomocí souřadnic.

Aby se mi sabotér posouval rozumně, posouvám s ním po skocích po 6 pixelech. Takový posun je i u prvního videa. potom, co kurzor u nového způsobu posunu vrátím o 1 pozici nahoru, musím jej posunout o 5 pixelů doprava. O 1 pixel doprava se mi kurzor posunul při zalomení řádku. Vše jsem to srovnal se zobrazením s prvním způsobem pohybu a neviděl jsem rozdíl. Navíc nový způsob zobrazení mi umožnuje ještě:

-pokud budu potřebovat něco posunout o 1 pixel, stačí mi návrat kurzoru o 1 pozici nahoru, co je asi o neco rychlejší, než zadávat kurzoru obě souřadnice

-je možná ještě jedna optimalizace, od které jsem upustil (nevidel jsem rozdíl a přitom vznikaji kolem toho další nežádoucí věci = více problémů než užitku, který ani vlastne nevidím, jen vím, že by tam měl být :). Pohyb kurzoru o 5 pixelu se dá vyřešit i pomocí proporcionálního písma, kterému zadefinuji šířku písma 5 pixelů a tedy bude posun sabotéra o 6 pixelů bez zadání příkazu k tomu, aby se kurzor o tyto pixely ještě posunul. Vyzkoušeno a nevidel jsem rozdíl.

No nic jde se na video. Zůstávám v něm na výkonu Amigy 1200. Každá animace zopakovaná 3 krát.

Ten začátek, co jsem to ukončil, to je posun po pixelu + spomalení 0 vteřin a to jsem nechtěl.
No a ty odmlky mezi ruznýma rychlostmi pohybu = upravji program na pozadí.

poprvé: posun sabotéra po 1 pixelu bez zpomalení
podruhé: posun sabotéra po 10 pixelech (změna) bez spomalení
potřetí: posun sabotéra po 10 pixelech (změna) se spomalením 0 sekund - zpomaluje se jen o načtení samotné funkce SLEEP.

[youtube]https://www.youtube.com/watch?v=rd9SvkQoq3s[/youtube]

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
PříspěvekNapsal: 10.08.2014, 18:19 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
pekne. Este sa zbav toho kurzoru. posoby rusivo

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
PříspěvekNapsal: 10.08.2014, 18:58 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2287
Bydliště: Brno
Has thanked: 846 times
Been thanked: 308 times
Ale prídem o 2 z celkových 8 možných farieb :mrblue:. Výkon Amigy 1200.

[youtube]https://www.youtube.com/watch?v=ipwlPNa-PAk&list=UUv5Zu9mCv0S-lGbVal__N_g[/youtube]

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
PříspěvekNapsal: 10.08.2014, 20:30 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
:dcl:

a teraz nech hybe nozickamy ;-)

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
PříspěvekNapsal: 10.08.2014, 22:48 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2287
Bydliště: Brno
Has thanked: 846 times
Been thanked: 308 times
Na to chcem zkúsiť nalanáriť MJ, alebo niekoho iného, aby to aj nejako vyzeralo. Mal by to byť pohyb v rozsahu 2 "znakov", tak ako je urobená verzia pre PMD 85. Toto sa samozrejme bude dať použit aj v kombinácii s jazykom C, takže to neni zbytočná práca. No a na to, ako sa vo Workbenchi zobrazujú znaky mi bolo odpovedané na inom mieste takto:

https://www.youtube.com/watch?v=8n04K25MtpI

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
PříspěvekNapsal: 11.08.2014, 11:52 
Offline
Site Admin
Uživatelský avatar

Registrován: 11.05.2013, 23:48
Příspěvky: 10119
Bydliště: Praha
Has thanked: 1956 times
Been thanked: 1521 times
Ono aby bylo jasno. Amiga nic takového, jako textový mód nemá. I text se stále bere jen jako grafika (v rámci vykreslování). Čili je v CLI okně možno vykreslovat i složitější obrázky než jsou textové bloky ASCII grafiky (chtěl jsem ti ukázat nějaký příklad, ale na youtube jsem nic nenašel...škoda).

_________________
Amiga/Amstrad/Atari/Commodore/Mac/Nintendo/PS/PC/Sega/Tandy/ZX


Nahoru
 Profil  
 
PříspěvekNapsal: 11.08.2014, 11:58 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
mne sa ti asci artove veci lubia viac ako klasicka grafika ;-)

napr: https://www.youtube.com/watch?v=Vmb4Epztfw0

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 47 ]  Přejít na stránku 1, 2, 3, 4  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz