Stránka 1 z 2 12 PosledníPoslední
Zobrazuji výsledky 1 až 20 z 40
  1. #1
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí Jak naprogramovat svoji první hru? (Saboteur - verze z PMD 85)

    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 .

    Naposledy upravil Lisiak4 : 09.08.2014 v 03:20:09
    Amiga - PMD 85

  2. #2
    D.T.A. Software Studio DJM's Avatar
    Datum registrace
    03.02.2013
    Město
    Nitrianske Rudno
    Věk
    37
    Příspěvků
    907
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svoji první hru? (Saboteur - verze z PMD 85)

    Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
    Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

  3. Poděkovat Lisiak4 - tito lidé za příspěvek poděkovali
    Líbí se mi jack-3d - těmto lidem se příspěvek líbí
  4. #3
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    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.

    Amiga - PMD 85

  5. #4
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Měl jsem požadavek na odstranění rušivého kurzoru. OK, ale přícházím o 2 z celkových 8 možných barev. Výkon Amigy 1200.

    Amiga - PMD 85

  6. #5
    Moderátor davesade's Avatar
    Datum registrace
    01.12.2006
    Město
    Los Angeles 2019, Praha
    Věk
    38
    Příspěvků
    2607
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Dělat hru pro Amigu pomocí ASCII, resp. UDG, to zní dost ostřácky! S programováním ti jako obvykle nepomůžu, ale kdybys hledal nějaké vodítko, jak takového Sabotéra napsat, před delším časem jsem něco málo načrtnul u sebe na blogu.
    http://www.hernisnob.cz/2012/09/samo...me-design.html
    http://www.hernisnob.cz/2011/02/saboteur-3-koncept.html
    Kdyby se ti to líbilo a chtěl bys to rozpracovat do detailu, dej vědět!
    Amiga 1200 + Blizzard 1260 + 64 MB RAM + CF2IDE + Indivision AGA Mk1 + PCMCIA2CF + WHDLoad registered

  7. #6
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Quote davesade původně napsal: View Post
    Dělat hru pro Amigu pomocí ASCII, resp. UDG, to zní dost ostřácky! S programováním ti jako obvykle nepomůžu, ale kdybys hledal nějaké vodítko, jak takového Sabotéra napsat, před delším časem jsem něco málo načrtnul u sebe na blogu.
    http://www.hernisnob.cz/2012/09/samo...me-design.html
    http://www.hernisnob.cz/2011/02/saboteur-3-koncept.html
    Kdyby se ti to líbilo a chtěl bys to rozpracovat do detailu, dej vědět!
    Díky Dave, jak bude čas počtu velice rád. Tohle co dělám je jen koncept aby jsem nabral nějaké zkušenosti s řízením procesu ve hře co má i "grafiku". Novým nápadům se nebráním, ale do tohohle konceptu je to zbytečné mrhání. Není vyloučeno že bude i další koncept na Sabotéra. Mám to zatím v plánu. Sabotér si přímo říka o to to zkusit... . Ale pokud by se stal tenhle omyl, už by to nebylo free a budou i inovace, ale to je ještě daleko. Jak pořád říkam, skončit s programováním můžu i zítra .
    Amiga - PMD 85

  8. #7
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Zajímavé chování Workbenche?

    Mám naprogramovanou základní logiku pro pohyb sabotéra vlevo a vpravo. Pohyb vpravo je v pohodě. Při pohybu vlevo se mi vozík (kurzor) Workbenche chová zajímavě. Sabotéra zatím posunuju po 10 pixelech. Pro 2 různé sekvence zobrazení sabotéra se 2. "obraz" zobrazí o 5 pixelů dále, než 1. "obraz". Pro pohyb vlevo ale musím posunout vozík u 2. "obrazu" ne o 5 pixelů, ale o 9 aby se mi sabotér posunul skutečně o 5 pixelů vlevo. Při posunu vozíku o 4 pixely mi tedy sabotér zůstane stát na místě. Pak nastáva další posun o 5 pixelů sabotéra a jeho návrat do původní polohy (1. sekvence zobrazení). Aby se mi sabotér posunul o 5 pixelů vlevo, musím ho posunout pouze o 2 pixely! Tedy celkový součet je vpořádku. 9 + 2 je sice 11 a ne 10, ale 5 + 5 není správně, když chcu posunovat sabotéra po 5 pixelech vlevo. Správně je to 5 + 6. Při 1. posunu sabotéra o 5 pixelů se mi po jeho zobrazení posouvá vozík o 1 pixel doprava. Tedy pro zobrazení sabotéra o dalších 5 pixelů vlevo musím s tímhle počítat a posunout vozík Workbenche o 6 pixelů.

    Ještě jeden fakt. Když pohybuji sabotérem vpravo u změnu směru doleva mi pokud nastavím posun voziku o 5 pixelů se skutečne posune o 5 pixelů (1 pixel to rozhodne neni). Zde nemusím zadávat posun o 9 pixelů, aby se mi vozík posunul fyzicky o 5 pixelů. Tuhle opravu musím dělat až při 2. a dalším posunu sabotéra vlevo. Při vykonání 2. pohybu vlebo i vidím, jak se vozík posube o nechtěné 4 pixely doprava.

    V parametrech fontů mám nastavenou šířku proporcionálního písma na 1 (1 pixel). Tím dosahuji možnost pracovat s vozíkem Workbenche s přesností na 1 pixel. U všech zobracovaných "písmen" (obrázků sabotéra) mám parametre Spacing a Kerning na hodnotě 0.

    Pracuji s tím co mám a umím. Test stisku klávesy neumím. Ten jsem si nahradil jinou logikou. Na numerickej klávese měním směr sabotéra klávesou 3 pro pohyb vpravo a klávesou 2 pro pohyb vlevo. Klávesou Enter pak sabotérem posouvám. Takový způsob pohybu má chyby o kterých vím (snad vím již o všech chybách ). O tomhle pohybu mám napsán článek, který jsem zatím nepustil ven, protože řeším tenhle problém, tohle divné chování se Workbenche. Zajímal by mne důvod, proč se takhle Workbench chová?

    Jako já můžu všechny pohyby sabotéra doleva krom toho prvního (5+6) posunout vozík o jiné vzálenosti (9+2). Další možnosti je přejít na 2. způsob pohybu sabotéra viz historie vlákna (pohyb pomocí souřadnic)

    zde je současná verze pro pohyb sabotéra

    Code:
    # -*- coding: latin2 -*-
    
    import os, sys, time
    
    os.system("SetFont saboteur 50 PROP")
    sys.stdout.write("\f\033[>3m\033[31m\033[43m")
    
    sys.stdout.write("\033[3;0H\033[20l")
    
    
    def pohybVpravo():
        sys.stdout.write("\033[5C3\n\033[A\033[4C")
        time.sleep(0.2)
        sys.stdout.write("4\n\033[A\033[D")
    
    def pohybVlevo():
        sys.stdout.write("\033[9D2\n\033[A\033[2D") #1.doleva o 4=na miste
        time.sleep(0.2)
        sys.stdout.write("1\n\033[A\033[D")
    
    r = "3"
    while 1:
        r = raw_input(), r
        if r[0] == "": r = r[1]
        else:
            r = r[0][-1]
            sys.stdout.write("\033[D")
        sys.stdout.write("\033[A")
        if r == "3": pohybVpravo()
        elif r == "2": pohybVlevo()
    popsaný posun vozíka od začátku pro pohyb vlevo:
    while 1:

    else: ... sys.stdout.write("\033[D") - pokud nebyla stisknuta klávesa Enter (u té sa nám vozík neposouvá), vrať vozík o 1 pozici doleva (D)

    sys.stdout.write("\033[A") - Enter zalomí řádek - posun vozíku přesně pod poslední pozici - změna chování klávesy Enter pomocí escape sekvence (20l) (sys.stdout.write("\033[3;0H\033[20l") - tedy posunu vozíku zpět o 1 pozici nahoru (A)

    def pohybVlevo():,
    sys.stdout.write("\033[9D2\n\033[A\033[2D") #1.doleva o 4=na miste
    9D - posun vlevo o 9 pixelů
    2 - "obrázek" sabotéra
    \n - zalomení
    A - posun o 1 pozici nahoru
    2D - posun vlevo o 2 pixely

    sys.stdout.write("1\n\033[A\033[D")
    1 - "obrázek" sabotéra
    \n - zalomení
    A - posun o 1 pozici nahoru
    D - posun vlevo o 1 pixel (po zobrazení sabotéra návrat vozíku na středovou výchozí hodnotu (po zobrazení sabotéra se nám vozík posune o 1 pixel doprava))

    Takže?
    Naposledy upravil Lisiak4 : 23.08.2014 v 09:04:52
    Amiga - PMD 85

  9. #8
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    OK, dávam jsem článek, který mám již nějakou dobu napsán. Článek neměním, přešel jsem na pohyb sabotéra pomocí souřadnic. Chyby pohybu sabotéra zůstávájí stejné, jako u posunu z jeho samotné pozice, ale v budoucnu by jsem i tak musel přejít na souřadnice. Musím pak řešit i pohyb nepřátel a na to ty souřadnice již budu potřebovat. Chyba, kterou popisuji v minulém příspěvku ohledem prvního pohybu sabotéra vlevo zůstává. Ošetřil jsem ji zatím programem. Dělá ji smaotné "písmeno" (předešlá pozice sabotéra), které vozík "přitáhne" k sobě doprava protože když jsem vynechal zobrazení sabotéra, vozík se posouval doleva tak jak má.

    Dnes jsem testoval možné vyřešení mnoha problému zobrazení samotné hry. Zatím to nevypadá nejhúře, tedy mohlo by to i fungovat, ale na to je ještě brzo. Princip spočívá ve schazování obrazu mimo zobrazenou část (úplně dolů). Už jsem to někde psal. Takhle "shozená obrazovka" nám zanechá původní statický obraz. V "pracující" obrazovce, která je schozená dolů se vykreslí vše potřebné a obrazovku opět "nahodím na své místo" tedy na zobrazovací část monitoru. Chci tim zkusit vyřešit možné posunutí celkové grafiky (i sabotéra) mimo její správnou pozici, které je možné v době, kdy zpomaluji zobrazení sabotéra a ke slovu se dostává tedy možné psaní v samotném Workbenchi, co mi dělá v "grafice" hry nechtěné věci. Uvidím, jestli v tomhle způsobu zobrazování pohořím.


    A zde je již nějakou dobu napsán článek:

    Tak jsem si před pár dny našel čas se hrát a navrhnul jsem základný logiku pro pohyb sabotéra. Ještě v ní nejsem u konce, ale na ukázku to snad stačí. Výslední logika bude jiná, měla by pracovat s klasickým testem stiskuté klávesy, co je pro mne zatím problém a dělám tedy s tím, co umím a mám k dispozici a tedy se vstupem, který je nutné potvrzovat klávesou Enter.

    Nemožnost mít k dispozici test stisknuté klávesy je zatím největší problém a plyne z něj hned několik faktů:

    -špatné ovládání sabotéra
    -v místnosti s nepřítelem nemožnost s ním hýbat - program je v režii toho co dělá sabotér, místo toho, aby řídil nepřítele a sabotér do děje zasahoval pomocí testu stisknuté klávesy. Dočasně se to dá udělat na tahy, pro samotné odzkoušení logiky.

    Test stisknuté klávesy se pak dá řešit pomocí assembleru a možná taky načtením modulu na test klávesy napsaného v jazyku C.

    Současný princip ovládaní je jednoduchý. Konkrétní klávesou vybereme směr a pak klávesou Enter již se sabotérem hýbeme vybraným směrem. Ani tohle se však neobyšlo bez problému. Sabotér se pohne jen jeden krát. Klávesa Enter se musí pustit a opětovně stisknout. Ach jo. S tímhle si zatím musím vystačit a progrmovat si ostatní věci.

    Hrál jsem se tedy s pohybem a zkusil střídat 2 "obrázky" sabotéra po sobě. Zde je problém, že když jsem dal malou pauzu, aby bylo 2. "obrázek" i vidět, do okna Workbenche se může psát, takže sabotéra můžu Entrem posunout o řádek víš a jiné.

    Když použiju dostatečně krátkou pauzu mezi zobrazením 2 "obrázků" sabotéra, aby jsem klávesou Enter nemohl jeho pozici nechtěně posunout nahoru (zjištuji že, pozici posunu i tak, když použiku výkon A1200. U většího výkonu se již pozici sabotéra posunout nedaří), je zobrazení 2. "obrázku" tak rychlé, že ho ani neni vidět. Akorát mne napadají různá řešení, která odzkouším.

    (doplnění - když zpomalení v programu nepoužiju, grafiku sabotéra se nedaří nechtěně posunout ani na výkonu A1200 - ve videu se to jednou povedlo - nahrávání natolik zpomalilo mé PC... . Můžeme předpokládat, že v té době byl ale výkon emulace i pod výkonem A1200)

    Princip pohybu má ještě další chyby o kterých vím a které se pokusím odstranit.

    Grafika je ilustrativni .

    Asi si v nejbližší době nakreslím ilustrativní grafiku chúze (asi 2 "obrázky"), tak jako je to u verze pro PMD 85 (současný 1. obrázek je pro stojícího sabotéra) a budu se hrát dál.

    Na videu pohyb se zpomalením a pak bez zpomalení - vše na výkonu A1200.

    Amiga - PMD 85

  10. Líbí se mi crayon - těmto lidem se příspěvek líbí
  11. #9
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Vyzkoušel jsem "schazovat" obrazovku a tak vyřešit problémy, co mám se zobrazovaním. Výsledek je, že i když "shodím" obrazovku, kurzor zůstává v původní, tedy v neschozené obrazovce a tímhle kurzorem můžu posunout taky obraz (ten co je zobrazen, ale již by tam neměl být fyzicky, protože je ve "shozené" obrazovce) nežádoucím způsobem. Tohle schazování obrazovky je dobrý hack...

    Nechtěné posouvání sabotéra kvůli rolující obrazovce nakonec řeším v posouvání kurzoru na první řádek. Čím pomalší Amiga, tím se to musí dělat častěji. U Amigy 1200 po každém příkazu při 4 řádcích, které mi zaplní celou obtazovku (velikost písma 50). Rolovat obrazovkou se mi i tak povedlo, ale mačkal jsem oba Entre zaráz. Jedním Entrem jsem to alespoň já nedal.

    Test, jak nejrychleji posouvat vozík na 1.řádek jsem dělal na výkonu neco nižším, než má A600. A zobrazovat sabotéra stíha i A600. Někde jsem četl, že může být v A500/600 i 3.0, nebo 3.1. To by mělo postačovat na spuštění AmigaPythonu + nějaká RAM (celkově 2 MB pro Python, celkově +-4 MB pro program) co je tak trochu výzva jak by to utáhla tahle mašinka. U A500/600 by jsem musel mít obraz na víc než na 4 řádky (i u A1200 budu muset něco málo přidat).

    Čím více rádků na obrazovce, tím menší pravděpodobnost nechtěného schození obrazu.

    2. problém - když držím například klávesu 3 co je určení pohybu sabotéra směrem doprava a pod klávesou 3 mám i "grafiku" sabotéra, posouvám sabotéra po 1 pixelu doprava (klasicky píšu ve Workbenchi). Tohle chci zlikvidovat, že vozík bude v téhle situaci v jednom pracovním řádku (třeba úplně spodní řádek obrazovky) a sabotér bude v barvě tohoto řádku, tedy nebude vidět. Workbench má jisté omezení v počte znaků, co dává na jeden řádek. Při posouvání kurzoru po jednom pixelu se kurzor zastaví před koncem tohoto řádku a tedy mi neposune obrazovku, co mi stačí. Tímhle zavedu jednu nežadoucí věc. Když se otočím se sabotérem třeba doprava klavesou 3, otočení se provede až po stisku klávesy Enter, ale vyřešení nechtěného posování sabotéra tím, že se píše ve Workbenchi je větší priorota. Pro pokračování pohybu ve zvoleném směru stačí pak mačkat už jen Enter.

    Líbí se mi velký sabotér, ale budu ho muset zmenšit. Nemůže mi pracovní řádek zabírat 1/4 obrazovky a taky větším počtem řádků snížim možnost nechtěného posouvání obrazu.

    Na kolik je zmenšení sabotéra přípustné? 1/3? 1/2 je již moc?
    Amiga - PMD 85

  12. #10
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Quote Lisiak4 původně napsal: View Post
    Líbí se mi velký sabotér, ale budu ho muset zmenšit. Nemůže mi pracovní řádek zabírat 1/4 obrazovky a taky větším počtem řádků snížim možnost nechtěného posouvání obrazu.

    Na kolik je zmenšení sabotéra přípustné? 1/3? 1/2 je již moc?
    Vidím, že mám sledovanost a to je fajn . Rád bych slyšel (četl) nějaké názory o tom, jak by sabotér mohl byt velikej .
    Amiga - PMD 85

  13. #11
    D.T.A. Software Studio DJM's Avatar
    Datum registrace
    03.02.2013
    Město
    Nitrianske Rudno
    Věk
    37
    Příspěvků
    907
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Velkost je ok, len som zvedavy ako budes vykreslovat pozadie + dalsie postavy... Mal si sa zacat hrat s tym C a nie kreslit si fonty... ;-)
    Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
    Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

  14. #12
    Czech Amiga News ExiE's Avatar
    Datum registrace
    12.04.2009
    Město
    NY
    Příspěvků
    1386
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Zkusim se pochlapit a trosku to rozhrabnout. Pred par dny jsi se tu bal vyjadrit k jedne priserne hre a je mozne, ze neco podobneho se deje i v tomto pripade. Na jedne strane je super, ze se snazis neco delat, ale Python provozovany na 68k Amize je proste naprosto nevhodny pro takovyto typ hry. Rekl bych to asi tak, pokud chces udelat super klon hry Saboteur, zkus to Ccko, a my se budeme tesit. Pokud chces zustat u Pythonu, mozna by stalo za to vymyslet nejaky jiny projekt...

  15. #13
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Ještě jednou. Je důležité začít s něčím. Potřebuji si odzkoušet logiku. Nevylučuji, že to pak udělám i v C (je to v plánu jak jsem zde již jednou psal), ale nestíhám se učit. Scválně mám více vláken (zatím dvě - textovka, Sabotér). A je v plánu třetí (ATEconvert - nezavírat původní vlákno). Tohle vše budu střídat dle nálady + ještě jeden projekt na PC. Když tohle vše budu mít v Pythoně, začnu se v něm nudit a mít více času na C. A jak se ho začnu učit? Začnu do něj přepisovat programy, které mám již napsané v Pythoně. Pythoní příkazy, které v C nejsou si naprogramuji.

    Nemám v plánu teď dělat super klon Sabotéra. Tohle je jen skica (jak jsem již psal). Taky ale nehodlám ani skicu flákat. Vytáhnu z toho co to dá, tak jak to dělám s každým programem.
    Amiga - PMD 85

  16. #14
    Moderátor davesade's Avatar
    Datum registrace
    01.12.2006
    Město
    Los Angeles 2019, Praha
    Věk
    38
    Příspěvků
    2607
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Mně se líbí, že se Lisiak snaží o něco jiného. Vykreslovat něco pomocí fontů je úžasný nápad - něco podobného jsem dělal na ZX pomocí UDG a přišlo mi to geniální. Ale ano, jako objekt hry bych nevolil Sabotéra, ale spíše bych na tom principu udělal nějakou tahovou strategii nebo klienta pro rogue-like hry s grafikou atd. Tj. u mne dobrý!
    Amiga 1200 + Blizzard 1260 + 64 MB RAM + CF2IDE + Indivision AGA Mk1 + PCMCIA2CF + WHDLoad registered

  17. Poděkovat Lisiak4 - tito lidé za příspěvek poděkovali
    Líbí se mi Dedy - těmto lidem se příspěvek líbí
  18. #15
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Quote DJM původně napsal: View Post
    Velkost je ok, len som zvedavy ako budes vykreslovat pozadie + dalsie postavy... Mal si sa zacat hrat s tym C a nie kreslit si fonty... ;-)
    Veľkosť som donútený zmenšiť. Ide mi o to o koľko možem. Pozadie čo sa týka sabotéra bude animácia v rámci jednoho znaku. Ja sa najviac teším na súčasný výskok Sabotéra a nepriaťeľa, kde sa budú obe postavy vo výskoku prekrývať. Mám za to, že nepriateľ v sabotérovy z PMD 85 neskáče, ale toto by som rád zaviedol + možno ešte nepriaťeľov volný pohyb po celej budove by bol fajn, ale obmedzil by som to radšej na 1 nepriateľa na 1 miestnosť.

    Ok uzavrieme neškodnú stávku? Aký mi dáš limit na súčasný výskok Sabotéra a nepriaťeľa, kde sa budú obe postavy vo výskoku prekrývať? 1 pivo? Stávka bude platiť len keď neseknem s programovaním. Keď s ním neseknem, toto chcem dokončiť.

    Mňa len zaujímal názor o koľko možem sabotéra zmenšiť - ten sa dá napísať aj tromi znakmi .

    ALL: No a s negativnym názorom som počítal - takže smola - ja viem, že toto je brána k možnému pokračovaniu.
    Amiga - PMD 85

  19. #16
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    davesade: Ale to by jsem nezkusil, co to dá a já mám 5 let v plánu Sabotéra .
    Amiga - PMD 85

  20. #17
    Czech Amiga News ExiE's Avatar
    Datum registrace
    12.04.2009
    Město
    NY
    Příspěvků
    1386
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Quote Lisiak4 původně napsal: View Post
    ALL: No a s negativnym názorom som počítal - takže smola - ja viem, že toto je brána k možnému pokračovaniu.
    Ja do toho pichnu jeste jednou. Ze python provozovany na Amize neni vhodny na tvorbu akcnich her s grafikou, neni negativni nazor, spis fakt.

    ohledne velikosti ve trech znacich by to bylo "okc" (O Kolik Chces)

  21. #18
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Quote ExiE původně napsal: View Post
    Ja do toho pichnu jeste jednou. Ze python provozovany na Amize neni vhodny na tvorbu akcnich her s grafikou, neni negativni nazor, spis fakt.
    Viz příspěvek #13

    Ohledne velikosti ve trech znacich by to bylo "okc" (O Kolik Chces)
    OK, beru tohle jako to ještě jedno píchnutí, protože v 1. části máš pravdu a je to fakt.

    A teď si slovne píchnu jednou já: Již odpoveď mám od 2 lidí. No a ExiE mezi ně jak je vidět nepatří.
    Amiga - PMD 85

  22. #19
    amiga autista Lisiak4's Avatar
    Datum registrace
    13.04.2009
    Město
    Brno - Bystrc
    Věk
    40
    Příspěvků
    1880
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Tak, hodně jsem přemýšlel o tom jak co budu řešit. Bude změna v ovládaní hry. Sabotérem nebudeme pohybovat mačkáním Entru (co by bylo o nervy), ale budeme mu vybírat kam má jít. Třeba klávesa 3 určí, že má přejít z levé části obrazovky na pravou část. Když tam bude tak již jen Entrem se potvrdí pokračování zvoleného směru a sabotér přejde do nové místnosti a počká na její začátku. Když bude střet s protivníkem přejde se do hry na tahy.

    Odzkoušel jsem jakou největší velikost písma můžu použít, aby se mi vše vešlo na 1 obrazovku. Skončil jsem u velikosti písma 42 (původne to bylo 50). Sabotéra jsem již nanovo amatérsky nekreslil, nakreslil jsem si jen takové jednoduché testovací znaky. To málo, co jsem měl naprogramované jsem smazal a začínam nanovo. Na výšku mi písmo o velikosti 42 na obrazovku vleze 6 krát a 4 pixely zůstanou nevyužity. Sabotér je při tomhle rozložení obrazovky né zcela na její středu v rámci joho svislé polohy. Dávam ho více na střed tím, že obrazovku posunu směrem dolů o nevyužité 4 pixely. Ale snad to neni tak hrozný (dle mne je to v normě). No a je načase vyčistit obrazovku od líšt Workbenche a podobných zbytečností pro hru . Rozdělení obrazovky směrem odshora dolů:

    1. Úplný vrch místnosti (grafika stropu, žebříku).
    2. Prostor pro sabotéra když skočí (aby měl kam ).
    3. Pozice samotného sabotéra.
    4. Úplný spodek místnosti (grafika podlahy, žebříku).
    5. Pracovní prostor (vkládání znaku pro směr).
    V nejhorším případě tahle oblast bude zamaskována (barva písma bude stejná jako barva pozadí).
    Vše se bude vyvíjet dle situace... .
    6. Grafika pro to co třeba sabotér nese.

    Nemůžu dát "pracovní prostor" pod "Grafiku pro to co třeba sabotér nese.". Po stisku klávesy Enter se roluje obrazovkou a kdyby se tak stalo v její spodní části, posunulo by mi to celou "grafiku" místnosti. Když se tak stane o jednu úroveň výš, pozici vozíku si pak již určím sám.

    Když jsem obkresloval sabotéra z počítače PMD 85, všiml jsem si, že jeho okraj je lemovaný 1 pixelovou mezerou. Samotný sabotér tedy není přímo na podlaze, ale mezi ním a podlahou je 1 pixelová mezera. Tohle jsem zavedl již i v testovacích znacích. Když tedy mám velikost písma 42, samotný znak má v zobrazení výšku 40 pixelů.

    No a mám 1. verzi možného použití zpracování samotného překrývání se třeba 2 postav mezi sebou. Dělám to propočtem, ale co se týče počtu znaků mi to zabere místo jako samotná animace. Použil jsem na to vlastnost proporcionálního písma a možnost takového písma (písmen) se mezi zebou překrývat. Zabere to ale hodně znaků. Na 1 situaci 7 znaků. Když ale sabotér bude k někomu přistupovat zboku tak jsou to hned situace 4. Na oba možné směry situace 2. Překrývaní se s přístupem zepředu a zezadu. To máme 28 znaků a to je celkem hodně. Snad to takhle pude udělat a s počtem znaků zankové sady se vlezu do všeho co mne ještě čeká. Maximálne to jistí grafika tvrdého lemování, tedy bez použití překrývání.

    Nejdřívé propouštela "grafika" protívníka samotného sabotéra. Pak jsem si uvědomil, že to budu muset udělat univerzálnějším a obrátil to. Těď propouští sabotér protivníka. Takže proti sabotérovy můžu postavit cokoliv a mělo by to být řešeno samotným překrytím.

    No a někdo z AMIGA REVIEW zaslouží po prstech. Ten kdo psal článek na Typeface 1.0., když zaměnil funkčnost "Spacing" a "Kerning" u proporcionálního znaku, kde "Spacing" je mezera za znakem! Když napíšu 2 znaky a u 1. znaku použiju "Spacing" na základě kterého se mi 2. znak začína překrývat se znakem prvním a parametr "Spacing" je pro 1. znak a né druhý tak je to mezera za znakem Ty šmejd jeden!!! . Normálne si mne z toho zmagořil až jsem se z toho vymotal! . Kerningem jsem překrytí nedosáhl (ani kladným a ani záporným) protože se ním určuje mezera před znakem! Áno správně si to napsal, bavíme se o právě editovaném znaku a ne o znaku co je po něm!

    OK to bych měl a teď testovací video. Výkon Amigy je pod A600 .
    Trochu trpělivosti, Python dává A600 již opravdu zabrat. Jen jsem chtěl ukázat že mám u A1200 rychlostní rezervu (snad bude stačit). V programe mám zpomalení o 0,2 vteřiny které po 2 opakováních odstánim a nasledují další 2 opakování. No a příště už radši s výkonem A1200 .

    EDIT: Výsledek 28 upravuji prozatím na 14. Nebral jsem protivníka jako objekt a on to je taky jenom objekt. Měli by jsme protivníkem se sabotérem "proplout" a je tedy jedno, jak je k nám otočen... .

    Naposledy upravil Lisiak4 : 20.09.2014 v 17:51:59
    Amiga - PMD 85

  23. #20
    D.T.A. Software Studio DJM's Avatar
    Datum registrace
    03.02.2013
    Město
    Nitrianske Rudno
    Věk
    37
    Příspěvků
    907
    Post Thanks / Like

    Výchozí O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    Quote Lisiak4 původně napsal: View Post
    Ještě jednou. Je důležité začít s něčím. Potřebuji si odzkoušet logiku.
    Je dobre zacat hned od zaciatku dobre. 8-) (vid. MS Windows - oni zacali spatne a uz to nenapravili....)

    Na odskusanie logiky,atd. ti fakt odporucam pouzivat aspon Amos Basic, ktory ti pomocou jednoduchych prikazov umozni otvorit obrazovku,nahrat grafiku, vykreslovat sprity a boby a tym padom sa mozes hrat s riesenim logiky...
    Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
    Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

Podobná témata

  1. Slamtilt - DMS verze
    By Marwin in forum Hry
    Odpovědí: 81
    Poslední příspěvek: 06.07.2019, 19:21:45
  2. Dvě různé verze mrazíka!
    By Starej_Mraf in forum Domácí scéna
    Odpovědí: 9
    Poslední příspěvek: 11.01.2010, 21:51:02
  3. SAM440ep - první zkušenosti
    By Starej_Mraf in forum AmigaOS 4.x obecně
    Odpovědí: 16
    Poslední příspěvek: 31.01.2009, 13:05:37
  4. Nova verze AnIdeaOS4plusUAE
    By pavlor in forum Aplikace
    Odpovědí: 1
    Poslední příspěvek: 08.01.2008, 00:27:12

Povolení psaní zpráv

  • Nemůžete otevírat nová témata
  • Nemůžete odesílat odpovědi
  • Nemůžete připojovat přílohy
  • Nemůžete upravovat své příspěvky
  •  
Thumbnail Screenshots by Thumbshots