Hirtelen eszembe jutott, milyen pofon egyszerű egy mutatós órát készíteni a gpp_rulesban, ezt talán felesleges kivesézni, lám az eredmény:
2013. augusztus 22., csütörtök
2013. augusztus 17., szombat
The game of life
Harmadik lecke
Egy "sajátautomata" algoritmust valósítottam meg GPP-RULES-ban, a híres
John Conway, a Cambridge Egyetem matematikusa " The game of life", magyarul életjáték. A cím megtévesztő, ez komoly algoritmus!
Itt most csak a GPP-RULES specifikus dolgokat ismertetem:
Változók:
- lena - megadja az aktuális sorban az oszlopok számát
- lenn - megadja az aktuális oszlopban az sorok számát
- thisa - megadja az aktuális cella melyik oszlopban van
- thisn - megadja az aktuális cella melyik sorban van
Függvények:
- prev( a,n ) - lehetőség van a cella korábbi tartalmához hozzáférni
- call( a,n ) - szubrutin cella hívás
Tervezett rubrikák:
- a0 - idő
- beállítás
- prev (ez a parancs bekapcsolja, hogy tárolja el a rubrika eredményét mielött újjat számoln)
- képlet
- = sec
- b0 - frame/sec
- képlet
- = 1/(sec-prev(0,0)) // ugye most kivonjuk az aktuális időből az elözőt és veszük a reciprokát
- a1:h1 - képsorozat első a halott, második élő és még lehet további 6 kép
- beállítások
- a1 - enter pen 0 pic die.png
- b1 - pen 1 pic live.png
- c1:h1 - pen 0 pic die.png
- képleterk(sime értékek)
- a1 - 0
- b1 - 1
- c1:h1 - 0
- a2 - csak egy sima elválasztó
- a3 - automatikusan megkaphatjuk itt a játék terület magasságát, hogy tetszés szerint lehessen bővíteni. Ezzel fogjuk modulozni az num-okat(oszlop cím).
- képlet
- = lenn - prot + 1
- b3 - num offszet
- képlet
- = a3-prot
- c3 - a subrutinként használt cella, itt nem csinál semmit, majd a játéktér elemei hivogatják ( csak egyszer kell ilyen hosszú képletet implementálni és a cellák relatívan használják )
- képlet
- = prev( (thisa-1+lena)%lena, (thisn-1+b3)%a3+prot) + prev( thisa, (thisn-1+b3)%a3+prot) + prev( (thisa+1+lena)%lena, (thisn-1+b3)%a3+prot) + prev( (thisa-1+lena)%lena, thisn)+prev( (thisa+1+lena)%lena, thisn) + prev((thisa-1+lena)%lena, (thisn+1+b3)%a3+prot) + prev( thisa, (thisn+1+b3)%a3+prot) + prev((thisa+1+lena)%lena, (thisn+1+b3)%a3+prot)
- d3 - a teremtő bioritmusa, ez gyujtja be a z élet lángját
- képlet
- = ((sin(sec/10)+1)/2)*2
- a5:h12 - a játék mező de tetszőleges
- beálítások
- a5 - enter protect prev
- b5:h5 - prev
- a6 - enter prev
- b6:h6 - prev
- .
- .
- an - enter prev
- bn:hn - prev
- képlet (gyakorlatilag az összes, egy tetszőlegeset kiválasztasz és ott hozzáadod a gyujtó számot, ha beindult meg beszorzod a d3-at 0-lal)
- = call(2,3)/8 ? a1:h1
2013. augusztus 14., szerda
Bob
Második lecke - Figyelem a tetőn dolgoznak!
Megismerhetik kegyelmetek, hogyan tudnak bob formulával kiragadni elemeket egy képről.
Változók:
- crsa - (CuRSorAlfa)cursor ebben az oszlopban található
- crsn - (CuRSorNum)cursor ebben az sorban található
- prot - magadja annak a sorpozíciójának az értékét ahol véget ér a "protect" terület
- sec - megadja az indítás óta eltelt másodpercek értékét
Függvények:
- an( a,n ) - (AlphaNum) abszolút címzés a táblázatba számok megadásával
- int( a ) - veszi az egész részét a számnak
- min( a,b ) vagy max( a,b ) - maximumát veszi a tényezőknek
- sin( a ) vagy cos( a ) - radiánhoz tartozó szinusz vagy koszinusz értéket adja eredményül
- vec( a,b,c,....,n ) - vektort csinál a tényezőkből
- bob( c2xy, dim_xy, spec, mul, add, alfa, u2xy, v2xy, s_pic, bob_id, c1xy, u1xy, v1xy, s_gpu )
- Cél poziciója
- c2xy - célközeppontja
- dim_xy - a xy koordináták dimenziója
- Szín meghatározás
- spec - finoman lehet hangolni a színt szint
- 0.0 piros
- 0.5 narancs
- 1.0 zöld
- cián
- 2.0 kék
- viola
- 3.0 piros
- mul - a szín értékét megszorozza
- add - a szín értékéhez hozzá adódik
- alfa - átlátszóságot lehet beállítani
- UV cél
- u2xy - cél u tengely
- v2xy - cél v tengely
- Forrás kép neve
- s_pic - forrás kép(bogyó) neve
- bob_id - ha egy kép több elemből áll az elem sorszáma (-1 az összes elemből egy képet kombinál és együtt alkalmazza)
- Forrás kordináta
- c1xy - forrás középpontja
- UV forrás
- u1xy - forrás u tengely
- v1xy - forrás v tengely
- GPU shader
- s_gpu - a shader neve amit a megjelenítéshez szeretnénk használni
| target na pic na clr |
= bob( vec(sin(a1), cos(a1))/4,vec(1,1), 0,0.5,0.5,1, vec(0.25,0),vec(0,0.25), "Cam",0, vec(0,0),vec(0.5,0),vec(0,-0.5) )
Tervezett rubrikák:
- a0:b0 - képtár tömbjének kívánt felosztása oszlop*sorok
- c0 - elem kívánt sorszáma
- d0 - képfeldolgozó szolgáltatni fog a képen talált elemekről egy listát az alábbi pár művelettel meghatározható hányadik elemet szeretnénk rögzíteni
- képlet
- = max( 0, crsn-(prot+5))+prot+5
- e0 = a0*2
- f0 = b0*2
- b1 - berajzoljuk az elemet a megfelelő képtár megfelelő oszlopába és sorába
- beállítás
- target clr sprite pic sprite
- képlet
- = bob( b6:c6 * vec(-0.5+1/e0, 0.5+1/f0) + vec(int(c0%a0), int(c0/a0))*vec(1/a0,-1/b0), b6:c6, 1,0,1,1, vec(b6/e0,0), vec( 0, -c6/f0 ), "Bob", d0-prot-5, vec( an(3,d0), an(4,d0)), vec( an(5,d0), an(6,d0))*1.1, vec( an(7,d0), an(8,d0))*1.1 )
- b6:c6 - kép dimenziója szélesség és magasság
2013. július 4., csütörtök
G++ kezdődik!
AliveMOon...
A környezet indítása történhet közvetlenül és társítás segítségével.- Közvetlenül indítás esetén egy általános könyvtárból indul a munka
- Lehetőség van a Windowsban társítani a .icon kiterjesztésű könyvtárakat és alkalmazásokat
Szia, ki vagy?
Első interakció, környezet azonosítja a felhasználót!
- Felhasználó kategóriák
- 0 - legjobb ( a felhasználó legmagasabb rangjával lép be )
- 1 - általános felhasználó ( operátor, fogyasztó, néző, játékos egyszóval laikus )
- 2 - karbantartó
- 3 - fejlesztő
- 4 - GRANDPACE
- Név
- Jelszó
Tesztelés céljából lehetőség van átmenetileg lefokozni magunkat, megvizsgálhassuk alsóbb rangú felhasználók végre tudják e hajtani a feladatukat.
Hello world!
Most pedig egy kis ízelítő, miként készíthető el a közismert "minimális" program G++-ban.
- Létrehozunk egy új alkalmazást
- Megnyitjuk a "debug" ablakot és grafikus felület
- Létrehozunk egy fő szálat
- Kap egy vissza ugrást, hogy ne csak egyszer fusson le
- A főszál kap egy táblázat kezelő műveletet, és kicsit játszom vele, gyakorlatilag bármilyen pozíciót felvehet a képernyőn (később megmutatom, hogy animálni is lehet)
- Létre hozok még egy második folyamatot a kamerának, hogy aszinkron párhuzamosan működjön a fő folyamattal
- Játszom egy kicsit az élőképpel
- Később bevetem a GPU-t egy egyszerűbb "Sobel" transzformációra
Címkék:
AliveMOon,
g++,
GPP,
GPU,
GPU++,
GRANDPACE++,
GRAPHICS++,
IDE,
SDK
Hely:
Veszprém, Magyarország
Feliratkozás:
Bejegyzések (Atom)