Jump to content

Kreatív HQ


Recommended Posts

Hogy gyorsabb-e azt most nem tudom, majd csinálok pár tesztet, de mindenképpen rövidebb.

Edit: megvolt a teszt.

Az utóbbi, tehát a string.rep-es, az én gépemen, linux alatt sokkal gyorsabb a másiknál és kevesebb memóriát eszik.

Szerintem hasonló kérést kaptam én is amúgy. Újrakezdhetjük megint, de akkor végre talán úgy kéne elkezdeni, hogy megfeleljen a céloknak. :) A collosion check-et te nem tudom hogy gondolod, de előbb azzal is lehetne kicsiben próbálkozni. Nekem volt egy töletem rá, az így, példákkal be is mutattam, de kiváncsi lennék arra, te hogyan képzeted azt. Aztán ha így kicsiben, egyszerű példákkal mennek a dolgok, be is lehet építeni az osztályokba.

Skypon majd bejelöllek. TS-en tényleg nincs képernyőmegosztás, de beszédre szerintem sokkal alkalmasabb mint a Skype.

Link to comment
  • Replies 61
  • Created
  • Last Reply

Top Posters In This Topic

de beszédre szerintem sokkal alkalmasabb mint a Skype.

még mindig nincs mic :(

most egy darabig nem lesz túl sok időm a hétköznapokon suli miatt. :/

a collision/overlap-ről majd csinálok egy kód vázlatot, az kicsit eccerűbb mint leírni

(a string.rep-es gondolom azért volt gyorsabb mert nem Lua-ban van kódolva, tehát nem használja többek közt a konkatenációs metamethod-ot. persze csak tippelek...)

dll modulok készítéséről tud valaki valami forrást? mármint MTA-hoz, de amúgy is.

Link to comment

Annyit én se érek rá most mint korábban, de persze szinte minden nap ráérnék valamennyit foglalkozni a dologgal.

(Igen, azért jóval gyorsabb mert az C-ben van megvalósítva. Sok alap lua függvényt meg lehetne írni luában is, csak semmi értelme, mivel szinte biztos, hogy sokkal lassabb lenne.)

Itt a letölthető SDK a modulokhoz

Mikrofonnal pedig egyszerűbb lenne, de akkor marad az írás.

Link to comment

Egészen szép a kód, ahogy így átfutottam! De majd azért lenne még pár kérdésem, javaslatom.

Ehhez a scite-mta dologhoz: a globális környezet ( _G ) megváltoztatásával könnyen meg lehetne oldani, hogy ugyanaz a kód fusson mindkét helyen. Például minden kiírásnál csak outputChatBoxot vagy printet használni és lenne egy fájl, amit elsőnek kéne betölteni, ami ellenőrzi hogy most ez mta vagy nem ( már megvan az isMTA függvény ), aztán az alapján változtat a függvényeken. Pl.:

function print_MTA ( ... ) 
    for i, v in ipairs ( arg ) do 
        outputChatBox ( tostring ( v ) ) 
    end 
end 
  
function require_MTA ( filePath ) 
    assert ( fileExists ( filePath ), filePath .. " not found!" ) 
    -- itt még akár a meta.xml-t megnyitva a jó sorrendet is ellenőrizheti. 
end 
  
if isMTA () then 
    _G.print = print_MTA 
    _G.require = require_MTA 
end 
  
print("test") 

Link to comment

elkezdtem egy ilyet, de nem volt türelmem hozzá :/

nem túl bonyolult igazából az alap, de van pár dolog amit meg szerettem volna oldani penlight-ban és ahhoz viszont már több ilyen funkció kell.

asszem meg van az is hogy hogyan lehetne implementálni tiszta Lua könyvtárakat mindkét környezetben:

(igazából baromi egyszerű, de idáig igazán nem gondolkodtam rajta :))

kell csinálni minden lib-nek egy resource-ot metával és az útvonalat pedig mindig kiegészíteni SciTE-ban

így lehet majd egy repo-val Bresenhaim, Penlight, meg mindenféle jóság :)

(amúgy a Bresenhaim lesz a mátrixokban a Line of Sight check. csak mondom.)

devlog:

nem sok történt de:

megvan egy része a tervezett API-nak és

dxgui rajzok tervben megvannak

(/me visszabukik a bioszkönyvbe)

Link to comment

És akkor exportálni a függvényeket a másik resource-ból? Itt az oop-sek elég csúnyán néznének ki, ha egyáltalán lehetne exportálva használni őket.

Line of sight check mire fog kelleni?

Penlight meg mta-ban nem fog menni alapból, de nem tudom akarjuk-e ott használni.

Végre! Dxgui! Azt szeretem. Elkezdtem korábban egyet csinálni, csak aztán nem folytattam, lehet majd nekiállok megint.

Link to comment
  • 2 weeks later...

nem saját dxgui -.- annyira azért nem unatkozok hogy abba belekezdjek

oop-t amúgy meg lehetne oldani, például egy globális metatable tárral, nem mondom hogy túl egyszerű lenne, de megoldható.

--automatikusan hozzárendel egy táblát a generált globális táblákhoz, teszteletlen, de elvileg működnie kell 
( esetleg a metódusokat exportolni kell és az exportokra hivatkozni a táblákban, de ha valaki ezeket figyelembe véve írja az egész kódot, akkor no problemo ) 
setmetatable (_G,{ __newindex = function ( self, i, v ) 
if type ( v ) == "table" then 
rawset ( _G,i,v._meta and setmetatable(v,exports.gmeta:get(v._meta) or v ) 
else 
rawset(_G,i,v) 
end 
end 

az if kinézhet úgy is, hogy az első fele a class funkcióit keresi (class inheritance indices), míg a második az object-ek számára keres az osztályon belül. (class root index)

remélem értelmesen magyaráztam

ha nem az se baj

penlight: tiszta Lua kód, tehát csak az io meg os cuccokat kell helyettesíteni (és a require-t) és már működik is egy csomó része, ami meg nem, az nagy eséllyel úgyse kell.

az inventory közben halad, már majdnem kész minden get/set alapja és a gui (mivel dxgui exportokra épül) azután már csak pár dxDrawImage meg dxCreateWindow

--edit: valamelyik előző postban volt valami a metamethod-okról, íme az új módszer:

t = setmetatable({},{ 
__index = function ( self, i ) 
if self ~= t then--ha nincs a class gyökerének inheritation-je 
return rawget(t,i)--mivel a rawget nem invoke-ol metamethod-okat (komolyan irritál ha magyarul kell kódot kommentelnem, az összes rag hülyén hangzik az idegen szavakon, kiszótáraznom őket meg minek) 
end 
end 
}) 

ajánlom a Lua tanulmányozását az MTA-n kívül :)

Link to comment
--automatikusan hozzárendel egy táblát a generált globális táblákhoz, teszteletlen, de elvileg működnie kell 
( esetleg a metódusokat exportolni kell és az exportokra hivatkozni a táblákban, de ha valaki ezeket figyelembe véve írja az egész kódot, akkor no problemo ) 
setmetatable (_G,{ __newindex = function ( self, i, v ) 
if type ( v ) == "table" then 
rawset ( _G,i,v._meta and setmetatable(v,exports.gmeta:get(v._meta) or v ) 
else 
rawset(_G,i,v) 
end 
end 

az if kinézhet úgy is, hogy az első fele a class funkcióit keresi (class inheritance indices), míg a második az object-ek számára keres az osztályon belül. (class root index)

remélem értelmesen magyaráztam

ha nem az se baj

Ez jó ötlet, hasznos lehet, viszont a globális tár a modularitás szempontjából nem jó ötlet. Valahogy lokálisabban (exportált függvények használata nélkül) kéne megoldani resource-onként.

Penlighthoz: ahogy mondod, tiszta lua "mindössze" az io, os, package library-ket és a require-t kéne valahogy helyettesíteni. De ha az működik, ami kell, akkor nincs gond.

Az pedig miért is lenne jó, a második kódrészlet, amit írtál? Arra kérnék egy kis magyarázatot. A self például mindig t lesz, tehát az a feltétel sosem fog teljesülni. A self-nek akkor van értelme, ha van egy külön __index kezelő fügvény és azt tesszük a metatáblákba.

Az angol szavakhoz: pár szó jelentésének azért nem árthat utánanézni, még tanulhat is az ember. Itt az inheritation-t öröklődésnek szokták hívni. Az invoke-nak nem tudom ebben az esetben mi a hivatalos magyar megfelelője (ha van egyáltalán) de akkkor legyen használ/bevon. A metametódus meg csúnyán hangzik, de a method az metódus magyarul.

Link to comment
  • 2 weeks later...

Az inventory nak valszeg lesz két változata, egy beépített (OOP) és egy export (hagyományos MTA) változata (ami lehet hogy csak az OOP-hez lesz egy interface).

PL pont nem kell, egyelőre hagyom, de később jól jöhet.

A self, ja. Hmm... képzeld el így:

Van egy class base amin keresztül mennek az object-ek és a saját indexei is.

Az object-ek pölö a method-jaikat a base-től öröklik egy sima __index-szel, de a base is örököl, mondjuk a table-ből.

Angol: hagyjuk az egészet, angolul írni könnyebb. (legalábbis ilyen szöveget) Nem véletlenül nem magyarul kommentelem a kódot.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...