__div = function(x, y)
local mag = y.real ^ 2 + y.imag ^ 2
local y_upravene = { real = y.real/mag, imag = - y.imag/mag}
return __mul(x,y_upravene)
Názory k článku
Objektově orientované programování v Lua II
Luinar (neregistrovaný)
5. 5. 2009 1:52
Nový
Deleni na komplexnich cislech
celé vlákno
Je to sice trochu hnidopisstvi, ale deleni na komplexnich cislech vypada ponekud jinak. Konkretneji se pak da spocist jako:
Pavel Tisnovsky (neregistrovaný)
5. 5. 2009 9:03
Nový
Re: Deleni na komplexnich cislech
celé vlákno
Hmm, kdyz jsem to psal z hlavy, tak jsem si rikal, ze to vyslo nejak moc jednoduse :-( Diky moc za upozorneni, vecer to s Petrem opravime.
Pavel Tisnovsky (neregistrovaný)
6. 5. 2009 11:26
Nový
Re: Deleni na komplexnich cislech
celé vlákno
Jeste jednou diky za upozorneni, uz je to opraveno.
karel (neregistrovaný)
5. 5. 2009 9:48
Nový
Diky za tenhle serial
celé vlákno
Diky za tento serial, prisel prave vcas a dost se mi hodi. Cekam na kazde dalsi pokracovani.
Pavel Tisnovsky (neregistrovaný)
5. 5. 2009 11:52
Nový
Re: Diky za tenhle serial
celé vlákno
To jsem rad, ze serial nekomu pomuze. Kdybyste mel nejaky napad na dalsi tema (jsou naplanovane jeste tak 3-4 dily), tak se klidne ozvete.
5. 5. 2009 13:00
Nový
Re: Diky za tenhle serial
celé vlákno
Nápady by byly, což o to :-D .
Například když už jste nakousl ty hry, nebylo by špatné popsat jak se hry vlastně vytváří. Nemyslím teď v konkrétním jazyce/knihovně/systému, ale obecný popis principů, technologii od klasických plošinovek, přes jednotlivé žánry až po 3D hry. Myslím že v tomto panuje (v širším podvědomí) docela chaos, nehledě na fakt, že článků (a ještě navíc v češtině) které by se obecně zabývaly herním software a nástroji které jsou k tomu potřeba nebo užitečné je jako šafránu...
Například když už jste nakousl ty hry, nebylo by špatné popsat jak se hry vlastně vytváří. Nemyslím teď v konkrétním jazyce/knihovně/systému, ale obecný popis principů, technologii od klasických plošinovek, přes jednotlivé žánry až po 3D hry. Myslím že v tomto panuje (v širším podvědomí) docela chaos, nehledě na fakt, že článků (a ještě navíc v češtině) které by se obecně zabývaly herním software a nástroji které jsou k tomu potřeba nebo užitečné je jako šafránu...
Zdenek (neregistrovaný)
5. 5. 2009 14:07
Nový
Re: Diky za tenhle serial
celé vlákno
A ja bych zrovna pridal konkretni odkaz na framework pro hry a navic prave v Lua: LÖVE
5. 5. 2009 15:04
Nový
Re: Diky za tenhle serial
celé vlákno
hmmm... aco třeba : http://gpwiki.org/index.php/Libraries - tam je toho mraky (konkrétních freamworků)
Pavel Tisnovsky (neregistrovaný)
5. 5. 2009 14:10
Nový
Re: Diky za tenhle serial
celé vlákno
To je dobry napad!
urcite to promyslim, tema je to dost siroke, ale kdyby se fakt probraly jenom principy, tak by to slo - jak rikas, prosinovky, potom klasicke "ctvereckove" i true 3D dungeony, klasicke strategie (ctverecky i sestiuhelniky :-), doom-like hry, letecke simulatory apod.
urcite to promyslim, tema je to dost siroke, ale kdyby se fakt probraly jenom principy, tak by to slo - jak rikas, prosinovky, potom klasicke "ctvereckove" i true 3D dungeony, klasicke strategie (ctverecky i sestiuhelniky :-), doom-like hry, letecke simulatory apod.
5. 5. 2009 14:56
Nový
Re: Diky za tenhle serial
celé vlákno
Jsem rád že se líbí - už teď se moc těším :)
Jen jako typ - Asi bych začal tím jak hry vůbec interně fungují (aktualizační cykly, grafika, kolize, atpd), pak bych to postupně rozvíjel (pres žánry až po 3D ), no a nakonec bych skončil tím jak se profesionálně (nebo poloprofesionálně :)) ) hry vůbec koncipují....
Hmm... to by možná vydalo i na několik článků :-D
Jen jako typ - Asi bych začal tím jak hry vůbec interně fungují (aktualizační cykly, grafika, kolize, atpd), pak bych to postupně rozvíjel (pres žánry až po 3D ), no a nakonec bych skončil tím jak se profesionálně (nebo poloprofesionálně :)) ) hry vůbec koncipují....
Hmm... to by možná vydalo i na několik článků :-D
karel (neregistrovaný)
5. 5. 2009 15:14
Nový
Re: Diky za tenhle serial
celé vlákno
Zajimalo by me napr. jak vytvorit v Lua vetsi projekt, tj. mit vice modulu, ktere se navzajem volaji. Dale nejaky zakladni prehled knihovnich funkci, proste takove ty veci, ktere jsou potreba pro napsani slozitejsich programu nez jake byly zatim videt v ukazkach. Vim ze to jde asi najit na netu ale neni nad dobre zpracovany clanek ktery da cloveku zakladni prehled a nasmeruje ho.
Na avizovane paralelni programovani se velmi tesim, to me take zajima.
Na avizovane paralelni programovani se velmi tesim, to me take zajima.
Pavel Tisnovsky (neregistrovaný)
5. 5. 2009 16:03
Nový
Re: Diky za tenhle serial
celé vlákno
Ano, to urcite bude v dalsich dilech - zakladni knihovni funkce dostupne ve "standardni" Lua, zajimave knihovny a frameworky, ktere se mohou doinstalovat, Lua na WWW (presneji Lua ve web frameworcich), moduly (+ jmenne prostory) atd.
Ladislav Thon (neregistrovaný)
5. 5. 2009 14:30
Nový
použití konstruktoru?
celé vlákno
Možná hloupá otázka, ale má to nějaký důvod, že operátorové metametody nevolají konstruktor, ale setmetatable nad asociativním polem? Přece by klidně mohlo být
__add = function(x, y) return Complex:new(x.real + y.real, imag = x.imag + y.imag) endNebo ne?
Pavel Tisnovsky (neregistrovaný)
5. 5. 2009 14:42
Nový
Re: použití konstruktoru?
celé vlákno
Muze to tak samozrejme byt (jestli myslite druhy ci treti demonstracni priklad), protoze se vzdy vytvari nova instance komplexniho cisla (presneji asociativniho pole + metatabulky).
Petr Pitak (neregistrovaný)
5. 5. 2009 22:45
Nový
Operator : v Complex:new
celé vlákno
Zajimalo by me, proc v definici a pozdejsim volani ma funkce new pred sebou operator ":" a ne "." .
Vzdyt v tomto pripade je Complex spise jen modul, ne konkretni instance tridy. A pokud se koukam spravne, ani v tele funkce nevidim pouziti implictniho parametru self.
Prehledl jsem neco ?
Vzdyt v tomto pripade je Complex spise jen modul, ne konkretni instance tridy. A pokud se koukam spravne, ani v tele funkce nevidim pouziti implictniho parametru self.
Prehledl jsem neco ?
Ksl (neregistrovaný)
5. 5. 2009 23:04
Nový
Re: Operator : v Complex:new
celé vlákno
V Lua žádné instance třídy nejsou. :]
z1 = Complex:new(1, 2)je vlastně totéž, co
z1 = Complex.new(Complex, 1, 2)
s tím, že ten "neviditelný" Complex v arglistu se na "volané" straně ignoruje. V zásadě je možné deklarovat funkci pomocí tečky a přitom ji volat pomocí dvojtečky i naopak, ale k čitelnosti by něco takového pochopitelně asi neprospělo.
Je úplně jedno, jestli ji vytvořím ve tvaru Complex:new(real, imag) a volám z=Complex:new(1, 2) nebo ji jestli vytvořím ve tvaru Complex.new(real, imag) a volám z=Complex.new(1, 2).
Osobně bych tady samozřejmě preferoval tečku, už jako takové "nakopnutí", ale funkční je oboje.
Petr Pitak (neregistrovaný)
5. 5. 2009 23:32
Nový
Re: Operator : v Complex:new
celé vlákno
Jasne, tak to si rozumime. Spatne jsem se vyjadril - vim ze v Lue nejsou tridy - myslel jsem to semanticky jako zpusob pouziti :).
Jinak mate pravdu, ono to asi fakt vytvori jen ten prebytecny argument, to je to, co me zmatlo - proto jsem tam chtel dat tu tecku.
Jinak mate pravdu, ono to asi fakt vytvori jen ten prebytecny argument, to je to, co me zmatlo - proto jsem tam chtel dat tu tecku.
Pavel Tisnovsky (neregistrovaný)
6. 5. 2009 11:13
Nový
Re: Operator : v Complex:new
celé vlákno
Mate pravdu, u funkce new se skutecne parametr self nepouziva (instance objektu se jeste nevytvorila), take v prvni kapitole je konstruktor zadefinovan pouze s teckou. Pouziti dvojtecky je v tomto pripade spis kvuli zprehledneni programu - nemusi se premyslet ani u volani funkci/metod, kde pouzit tecku a kde dvojtecku, vzdy se pouzije dvojtecka (presneji, klidne je mozne "dvojteckove" metody volat i "s teckou", ale musi se rucne doplnit prvni parametr, jak uz predemnou napsal Ksl, popripade naopak mit zadefinovanou metodu s teckou a explicitnim selfem a volat i s dvojteckou).
Pouziti dvojtecky v new ma samozrejme za nasledek velmi nepatrne prodlouzeni programu (kvuli predavani zbytecneho parametru), ale to bych si dovolil v takto vysokourovnovem jazyce ignorovat - ostatne i programatori v Jave/C++ vetsinou vsude pouzivaji "bezne" metody namisto statickych metod (v podstate funkci) i tam, kde ve skutecnosti nepotrebuji this :-)
Pouziti dvojtecky v new ma samozrejme za nasledek velmi nepatrne prodlouzeni programu (kvuli predavani zbytecneho parametru), ale to bych si dovolil v takto vysokourovnovem jazyce ignorovat - ostatne i programatori v Jave/C++ vetsinou vsude pouzivaji "bezne" metody namisto statickych metod (v podstate funkci) i tam, kde ve skutecnosti nepotrebuji this :-)
pozortucnak (neregistrovaný)
6. 5. 2009 23:27
Nový
RE: Objektově orientované programování v Lua II
celé vlákno
6. 5. 2009 23:30
Nový
RE: Objektově orientované programování v Lua II
celé vlákno
jj, tim se take budeme zabyvat. Potom jeste Meta Luou, nad ni se da postavit napriklad Smalltalk-like objektovy system :-)
pozortucnak (neregistrovaný)
6. 5. 2009 23:39
Nový
RE: Objektově orientované programování v Lua II
celé vlákno
Jinak máte můj obdiv...
Těch článků/znalostí...
Jinak mimo mísu... Rád bych se něco dočetl o jazyce ocaml...
Těch článků/znalostí...
Jinak mimo mísu... Rád bych se něco dočetl o jazyce ocaml...
7. 5. 2009 22:25
Nový
RE: Objektově orientované programování v Lua II
celé vlákno
Díky :-)
OCaml je skutečně zajímavej, ještě taky Erlang (ten má podle mě skvělou budoucnost, ale uvidíme, ona je oblíbenost jazyka dost módní" věc). Avsak znalost Luy se urcite neztrati, nejaky ten embedded jazyk se hodi skoro v kazde stredni ci vetsi aplikaci, minimalne proto, aby se clovek nemusel morit s konfiguraky :-)
OCaml je skutečně zajímavej, ještě taky Erlang (ten má podle mě skvělou budoucnost, ale uvidíme, ona je oblíbenost jazyka dost módní" věc). Avsak znalost Luy se urcite neztrati, nejaky ten embedded jazyk se hodi skoro v kazde stredni ci vetsi aplikaci, minimalne proto, aby se clovek nemusel morit s konfiguraky :-)
pozortucnak (neregistrovaný)
6. 5. 2009 23:41
Nový
RE: Objektově orientované programování v Lua II
celé vlákno
Jo a jak dopadlo toto? http://www.root.cz/clanky/objektove-orientovane-programovani-v-lua/nazory/267423/
7. 5. 2009 22:05
Nový
RE: Objektově orientované programování v Lua II
celé vlákno
Popravdě jsem se na to ještě nedíval, zkusím teď o víkendu a popř. poreferuju :-)
pozortucnak (neregistrovaný)
6. 5. 2009 23:35
Nový
RE: Objektově orientované programování v Lua II
celé vlákno
Asi blbé dotazy - programovat (zatim) neumim...
1) Mužu v jazyce C volat Lua funkce? (Tedy přesně opačně než bylo zatím popsáno...)
2) Jde s Lua vytvořit dll/so knihovna?
3) Ale hlavně by mě zajimalo, jak by se delal bidding na C++ knihovnu...
1) Mužu v jazyce C volat Lua funkce? (Tedy přesně opačně než bylo zatím popsáno...)
2) Jde s Lua vytvořit dll/so knihovna?
3) Ale hlavně by mě zajimalo, jak by se delal bidding na C++ knihovnu...
7. 5. 2009 2:17
Nový
RE: Objektově orientované programování v Lua II
celé vlákno
1) Zdá se mi že ten doataz tu už padl - http://www.root.cz/clanky/programovaci-jazyk-lua-vestaveny-do-aplikaci/nazory/264433/vlakno/#o264433 :-)
7. 5. 2009 22:22
Nový
RE: Objektově orientované programování v Lua II
celé vlákno
1) samozřejmě to jde. Napřed se pomocí funkcí lua_push....() doplní na zásobník interpretru potřebné parametry a potom se zavolá lua_call(). Výsledek se přečte pomocí lua_getresult() a dále zpracuje.
2) jde to, ale záleží, co je přesně očekáváno. Interpretr Lua + vlastní céčkový program do DLL/so půjde dát. V předchozích verzích byly nějaké problémy s tím, že mohla existovat jen jedna instance interpretru, to je teď myslím už vyřešeno.
3) půjde to, ale ruční volání C++ metod z Lua je trošku náročné (samozřejmě to jde, ale ruční práce se zásobníkem je otravná). Lepší je IMHO použít nástroje typu http://wwhiz.com/LuaPlus/LuaPlus.html apod.
2) jde to, ale záleží, co je přesně očekáváno. Interpretr Lua + vlastní céčkový program do DLL/so půjde dát. V předchozích verzích byly nějaké problémy s tím, že mohla existovat jen jedna instance interpretru, to je teď myslím už vyřešeno.
3) půjde to, ale ruční volání C++ metod z Lua je trošku náročné (samozřejmě to jde, ale ruční práce se zásobníkem je otravná). Lepší je IMHO použít nástroje typu http://wwhiz.com/LuaPlus/LuaPlus.html apod.
lukas.kolinsky (neregistrovaný)
13. 5. 2009 13:40
Nový
metatabulky
celé vlákno
Mel bych pripominku, kdyz se mluvilo o metatabulkach, mohlo se zminit (pro ty vetsi zacatecniky), ze s jeji pomoci se da simulovat case z C. Kdyz se pise nejaky skript treba s eventy (addony pro WoW atp.) tak mit 30 ifu a elseifu je trochu neprehledne, takze je lepsi si vytvorit tabulku s metatabulkou s __index a to co prijde jako event predavat jako klic pro tabulku. Jako else pak slouzi klic v __index
18. 5. 2009 21:45
Nový
Re: metatabulky
celé vlákno
jj, díky za upozornění. Ještě pro propašuji do některého z dalších dílů seriálu, například do nějakého demonstračního příkladu.

