Oznámení

Sbalit
Aktuálně žádná oznámení.

AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

Sbalit
X
 
  • Filtr
  • Čas
  • Zobrazit
Vymazat vše
new posts

    AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

    v různých manuálech je o tom zmínka, jako že je na to třeba dát pozor a mít "smysluplně" propojené obrazovky. Zatím nechápu jak. Kód vypadá takto:

    autoback 0
    double buffer

    rem mainloop
    do

    bob clear

    ...tady se stanou všechny ty věci ...

    Screen copy physic to logic
    screen swap : wait vbl

    bob draw

    loop

    vypadá to, že při scrollingu bob vypadne z jedné obrazovky... nicméně nevím jak a jestli vůbec updatovat objekty zároveň ve fyzické i logické obrazovce... zkoušel jsem si hrát s bob update a, autobackem, atd. ale efekt blikání se spíš zhoršuje nebo se přidají další bizarní bugy...

    tak kdyby někdo napověděl, budu mocně potěšen

    #2
    O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

    Kruci, tohle jsem kdysi řešil, ale vůbec si to nepamatuju. AMOS jsem se celý učil z té zelenobílé knížky k verzi 1.3 a pak z automatických nápověd Amosu Professional, kde jsou parádně udělané ty příklady. K tomu bohužel česká příručka nevyšla, ale člověk v něm použije všechno co se naučil v 1.3, to co je navíc si holt musí dohledat sám.
    Naposledy upravil Predseda; 15.03.2016, 11:05:40.
    "Venku leje. Naimpregnuju si hlavu pivem." (Červ, 2023)

    Komentovat


      #3
      O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

      S Amosom nemam ziadne skusenosti ale v podstate je princip taky ze najpr "poskladas" obraz, potom vykreslis BOBy, to vsetko v "neaktivnej" obrazovke.
      A nakoniec "prepnes" obrazovky Logic <=> Physic ked je dosiahnute VBL.

      V tvojom priklade vidim ze ty vykreslujes BOBy az po prepnuti obrazovky. Co by v assembleri na 100 % sposobilo blikanie BOBov, myslim ze v Amose to bude podobne.
      Skusil by som presunut BOB DRAW pred SCREEN SWAP/COPY.
      Nieco podobne tomuto:

      Do

      Draw Screen
      Draw Bobs

      Wait VBL
      Swap screen

      Loop


      Ale mozno sa mylim , Ako som napisal s Amos nemam skusenosti, ale napríklad v Blitzbasicu sa to robilo presne takto.
      MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

      Komentovat


        #4
        O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

        pecka díky, stahuju... ObiWanKen: zkusím, díky, ale mám pocit že jsem víceméně už zkusil všechny varianty pořadí příkazů a vždy tom byl bordel. uvidíme...

        Komentovat


          #5
          O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

          Este sa zameraj na toto :

          Screen copy physic to logic
          screen swap : wait vbl

          Najprv by si mal pockat na VBL a az potom menit Screeny.
          Niejak takto:

          Wait VBL
          Screen copy physic to logic
          Screen swap

          alebo

          Screen copy physic to logic
          WaitVBL
          Screen swap

          Neviem presne co "Screen copy physic to logic" znamena/co robi.
          MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

          Komentovat


            #6
            O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

            Autorem citovaného textu je blackgoat Přejít na původní příspěvek
            ObiWanKen: zkusím, díky, ale mám pocit že jsem víceméně už zkusil všechny varianty pořadí příkazů a vždy tom byl bordel. uvidíme...
            Možná tam budeš mít více chyb. Já bych použil ObiWanKenův postup a hledal chybu č.2. Při vícero chybách si člověk může snadno myslet, že vyzkoušel již všechny kombinace... . Chybou je samozřejmě i nepoužití něčeho, co se mělo použít.
            Amiga - PMD 85

            Komentovat


              #7
              O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

              Autorem citovaného textu je ObiWanKen Přejít na původní příspěvek
              Neviem presne co "Screen copy physic to logic" znamena/co robi.
              No prostě vyměňuje dvě obrazovky v dual playfieldu.
              "Venku leje. Naimpregnuju si hlavu pivem." (Červ, 2023)

              Komentovat


                #8
                O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

                Jasne, nieco som nasiel.

                Amos Professional, Amiga, Programming, Basic, Francois Lionet, Europress Software Ltd, Amos, computing, code, AmigaDOS
                MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

                Komentovat


                  #9
                  O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

                  Screen copy vykrojí část velké obrazovky s mapou (zatím 800*656) a plácne to do viditelné obrazovky (304*200, po stranách budou zobrazené životy a tak). Zároveň ale, screen swap prohazuje jednu obrazovku viditelnou, za obrazovku uloženou v paměti a překreslovanou. A to mám otevřené obrazovky dvě... ne že bych se v tom vyznal, ale je to sranda.

                  Možná jsem na stopě. Vykreslím bobíka 1 na obrazovce s mapou, a bobíka 2 na viditelné obrazovce. Nyní, při pohybu blikají oba, ale bob 1 zůstává na místě, zatímco dvojka se hýbe s obrazem. takže když přičtu k bobu 1 souřadnice viditelné obrazovky, bude se hýbat stejně jako bob 2 a blikání se překryje v čistý obraz, ... ale to znamená, že na jednoho panáka ve hře potřebuju dva boby, každého s jinými souřadnicemi, a to není úplně ekonomické

                  nejradši bych otevřel novou obrazovku, a boby měl na ní, pojďme to zkusit...

                  Komentovat


                    #10
                    O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

                    uff... možná jsem to videl moc komplikovaně. bob se zobrazí v obrazovce s mapou, pak se zkopíruje do viditelné obrazovky. tečka. blikání se omezí na minimum, ale pořád to trochu problikává...

                    Komentovat


                      #11
                      O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

                      No pak je otázka taky velikost těch BOBů a jestli na to Amos vůbec má. Já používal malé, ale pravda - neblikaly mi ani velké, jen při pohybu cukaly.
                      "Venku leje. Naimpregnuju si hlavu pivem." (Červ, 2023)

                      Komentovat


                        #12
                        O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

                        Kopirovat cokolvek do "aktívnej obrazovky" je nezmysel. Vytraca sa potom zmysel Double Bufferingu.
                        A ten prave sluzi na obmedzenie blikani atd. A ako pise Predseda, ze pri velkych objektoch alebo ich velkom pocte moze nastat sekanie/spomalenie.
                        Ale to uz je vec HW (blitter) rychlosti a tam toho moc nespravis.
                        MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

                        Komentovat


                          #13
                          O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

                          V té knížce je to od strany 143 a pak od strany 252, popsáno je to fakt pěkně.
                          "Venku leje. Naimpregnuju si hlavu pivem." (Červ, 2023)

                          Komentovat


                            #14
                            O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

                            Obi Wan - ok, já jen potřebuju z obrazovky s mapou vzít výřez, aby nebyla zbytečně zobrazená kráva 800*656 pixelů velká. samozřejmě to jde i takhle, zobrazit maximálně velkou obrazovku a lítat po ní, ale asi to není moc košer. nebo jo?

                            knížky si přečtu, super. momentálně tápu proč zároveň dělám double buffer a screen copy ... ale je to tak i v dithellovi i v různých příkladech co jsem dohledal

                            ještě mi napadlo, nemůže to být paletou? paleta se sice taky zkopíruje, ale objekt se načítá ještě před kopírováním...

                            Komentovat


                              #15
                              O: AMOS - problém - bobíky nad scrollující obrazovkou nehezky blikají

                              asi takhle... aspoň něco

                              btw. testuju to s jedním bobem 48*40 pixelů, tím to asi nebude...


                              Do

                              OX = IX : OY=IY

                              If Jup(1) and IY>0 then add IY,-SPEED
                              -"-
                              if OX<>IX

                              Screen 1 : Bob Draw : Bob Update rem diky tomuhle to prestalo blikat, pri pohybu nahoru a dolu. jakmile se ale scrollne vpravo, blika znova. cim vic vpravo tim vic blika. kdyz se zase mapa scrollne uplne doleva, bob blikat prestane

                              Screen copy(1),IX,XY,SW+IX,SH+IY To logic (0),STX,STY
                              Wait Vbl : Screen Swap 0

                              End If

                              Bob Draw

                              Komentovat

                              Zpracovávám...
                              X