Orario: 25-05-2013, 18:18 Benvenuto ospite! (Log inRegistrati)


Rispondi 
Cosa stai codando ADESSO?
Autore Messaggio
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1051 RE: Cosa stai codando ADESSO?
0
(17-03-2012 16:47)mude ha scritto:  gabriele, mi fai la gui nell'editor che non c'ho voglia di farla?Asd

Sono fermo da un mese nella gestione delle risorse tra ogre e qt, nel senso che non sapevo come farlo e ho stoppato il progetto facendo altro Asd

quanta é noiosa l'interfaccia!

Oltretutto come usi i connect di qt? io praticamente li ho un classe ma é orrendo perché ho spesso i signal in sottoclassi di 4° livello. e non si può accedere all'ui da altre classi. WTF.

allora i widget tipo quello che racchiude il mio engine in openGL 2.1
li inserisco da UI premendo su il Qwidget generico e "promuovendolo" a "EngineWidget"

gli input li uso creando delle funzioni apposite e poi inserendo gli slot da ui

per l'engine dove ad esempio il mouse deve passarlo alla sotto finestra, ho usato questo escamotage: creo una classe astratta della filenesta/eventi, dove poi nell'engine normale senza Qt prende gli input dall'OS mentre in QT questa classe viene estesa con "QTWindow" e di fatto ha tanti metodi come: "SetMouse(x,y), GetMouse(x,y)"
poi sulla finestra metto gli slot per l'evento designato (tipo quando si muove il mouse) che modifica l'oggetto "QTWindow" impostando i valori del mouse:

Codice:
void EngineWidget::mouseMoveEvent(QMouseEvent *event){
    qtWindow->SetMouse(Vector2D(event->x(),event->y()));
}

8)

cmq alcuni test:

[Immagine: test_material.png]

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 18-03-2012 16:33 da Gabriele.)
18-03-2012 16:13
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
mude
Arrested Development

Messaggi: 7,029
Registrato: Nov 2008
Online Online
#1052 RE: Cosa stai codando ADESSO?
0
pensavo di fare una classe di quel tipo pure io, volevo sapere se c'era un modo migliore, ma a quanto pare no.

.: DevLog | Twitter Pinaster Games | Twitter Personale :.
[Immagine: BBh5DKU.png] Beta
18-03-2012 16:19
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1053 RE: Cosa stai codando ADESSO?
0
(18-03-2012 16:19)mude ha scritto:  pensavo di fare una classe di quel tipo pure io, volevo sapere se c'era un modo migliore, ma a quanto pare no.

io diciamo che ho scelto la strada che mi ha permesso di riscrivere meno codice possibile, cosi non ho dovuto toccare l'engine! Il che non è male, certo, per gli input di fatto si fanno 3 passaggi:

Widget-->fake window-->lettura input....


però, secondo me, siccome per l'editor l'input può anche non essere efficiente penso che vada più che bene, considera che ancora non ho deciso se far aggiornare la schermata del widget in realtime (come faccio ora, ma purtroppo senza thread perché su linux non funziona se uso i thread Piange ) o se aggiornare la schermata solo quando avviene un input sul widget (come fanno le gui degli os)...

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 18-03-2012 16:55 da Gabriele.)
18-03-2012 16:26
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1054 RE: Cosa stai codando ADESSO?
0
ma perché X11 non è thread save!

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
19-03-2012 15:57
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1055 RE: Cosa stai codando ADESSO?
0
cmq mentre di la parlano di lua, io ci sto rimettendo mano, usando lunar e modificandolo pesantemente!

Ora posso fare una cosa del genere:
Codice:
v1 = Vector2:new()
v1.x=2 v1.y=1

v2 = Vector2:new()
v2.x=2 v2.y=2

v3 = v2 + v1
v3 = v3 - v2
v3 = v3 / v1
v3 = v3 * v1
v3:out()

esempio cpp:
Codice:
class Vector2 {
public:

  float x,y;
  Vector2():x(0),y(0){ }
  Vector2(int x,int y):x(x),y(y) {  }
  float GetX(){ return x; };
  float GetY(){ return y; };

  Vector2 operator+(Vector2 &v){ return Vector2(x+v.x,y+v.y); }
  Vector2 operator*(Vector2 &v){ return Vector2(x*v.x,y*v.y); }
  Vector2 operator-(Vector2 &v){ return Vector2(x-v.x,y-v.y); }
  Vector2 operator/(Vector2 &v){ return Vector2(x/v.x,y/v.y); }


public:

  LUA_DECLARETION(Vector2);

  Vector2(lua_State *L):x(0),y(0){ /**/  }  

  int out(lua_State *L)  {
     printf("vector2D(%f,%f)\n", x,y); return 1;
  }

   OVERLOAD__ADD (lua_State *L) {
      Vector2 *ptr1=Lunar<Vector2>::check(L,1);
      Vector2 *ptr2=Lunar<Vector2>::check(L,2);

      Vector2 *ptr3=new Vector2();
      (*ptr3)=(*ptr1)+(*ptr2);
      Lunar<Vector2>::push(L,ptr3,true);

      return 1;
  }
   OVERLOADfast__MUL__METHOD(Vector2)
   OVERLOADfast__SUB__METHOD(Vector2)
   OVERLOADfast__DIV__METHOD(Vector2)

  ~Vector2() { }
};

LUA_DEF_METHODS(Vector2) = {
  LUNAR_DECLARE_METHOD(Vector2, out),
  {0,0}
};

LUA_DEF_OPERATORS(Vector2) = {
    LUNAR_DECLARE_METHOD__ADD(Vector2),
    LUNAR_DECLARE_METHOD__SUB(Vector2),
    LUNAR_DECLARE_METHOD__MUL(Vector2),
    LUNAR_DECLARE_METHOD__DIV(Vector2),
    {0,0}
};

LUA_DEF_GETS(Vector2) = {
    VARIABLE_GET(Vector2,x,float),
    VARIABLE_GET(Vector2,y,float),
    {0,0}
};

LUA_DEF_SETS(Vector2)  = {
    VARIABLE_SET(Vector2,x,float),
    VARIABLE_SET(Vector2,y,float),
    {0,0}
};

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 22-03-2012 19:05 da Gabriele.)
22-03-2012 19:03
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,205
Registrato: Sep 2010
Offline Offline
#1056 RE: Cosa stai codando ADESSO?
0
(22-03-2012 19:03)Gabriele ha scritto:  cmq mentre di la parlano di lua, io ci sto rimettendo mano, usando lunar e modificandolo pesantemente!

Cool ! Bell'esempio.. grazie !

A parte LUA_DECLARETION ..noto una punta di Lino Banfi.. e la Madonna di Loreto 8)

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
23-03-2012 5:14
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1057 RE: Cosa stai codando ADESSO?
0
(23-03-2012 5:14)TheCrib ha scritto:  
(22-03-2012 19:03)Gabriele ha scritto:  cmq mentre di la parlano di lua, io ci sto rimettendo mano, usando lunar e modificandolo pesantemente!

Cool ! Bell'esempio.. grazie !

A parte LUA_DECLARETION ..noto una punta di Lino Banfi.. e la Madonna di Loreto 8)
lol XD maledetto il mio inglese da strapazzo XD

cmq! Ti mostro una cosa ancora più figozza:

chiamata funzioni lua:

Codice:
lua->OpenFile("main.lua");

    //sintassi  " i d s > s " --> int,double,string, out : &string
    //sintassi  " i d s > i " --> int,double,string, out : &int
    //sintassi  " o d > i " --> VMLua::argObject_gc/nogc<T>,*T,double, out : &int

    float out=0;
    lua->GenericCallLuaFunction("main","i d > f",1,4.4,&out);
    printf("lua out %f\n",out);

    out=0;
    lua->GenericCallLuaFunction("main_vector","o > f",ARG_OBJECT_GC(Vector2,new Vector2(1,2)),&out);
    printf("lua out %f\n",out);

    Vector2 *outV=0;
    lua->GenericCallLuaFunction("main_vector2","o > o",ARG_OBJECT_GC(Vector2,new Vector2(30,2)),
                                                      CHECK_OBJECT(Vector2,outV));

    printf("lua out Vc2D(%f,%f)\n",outV->x,outV->y);

codice lua:

Codice:
function main(a,b)
     print (a)
     print (b)
     return a+b
end

function main_vector(a)
     print(a)
     print(a.x)
     print(a.y)
     return a.x+a.y;
end

function main_vector2(a)
    print(a.x) print (a.y)
    a.x=2
    a.y=3
    return a
end


ecco le brutte define che creato per chiamate alle mie care funzioni template:
Codice:
#define ARG_OBJECT_GC(x,y) ((void (*)(lua_State *L,void *arg) ) &VMLua::argObject_gc<x>),(void*)(y)
    #define ARG_OBJECT(x,y) ((void (*)(lua_State *L,void *arg) ) &VMLua::argObject_nogc<x>),(void*)(y)
    #define CHECK_OBJECT(x,y) ((void (*)(lua_State *L,int arg,void **) ) &VMLua::checkObject<x>),(void**)(&y)

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 23-03-2012 10:46 da Gabriele.)
23-03-2012 10:33
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1058 RE: Cosa stai codando ADESSO?
0
wappando l'engine in lua:

Codice:
t4x4=Matrix4x4:new()
    t4x4:SetTranslation(Vector2D(0,0))
    
    r4x4=Matrix4x4:new()
    r4x4:SetRotX(3.1415926535)
    
    s4x4=Matrix4x4:new()
    s4x4:SetScale(Vector2D(1,1))    
    
    c4x4=t4x4:Mul(r4x4:Mul(s4x4))
    
    c=Vector2D:new()
    c.x=1.0
    c.y=0    
    
    x=c4x4:Mul2D(c)

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
24-03-2012 18:10
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,275
Registrato: Sep 2004
Offline Offline
#1059 RE: Cosa stai codando ADESSO?
0
io sto finendo di montare i livelli su un giochino flash che proverete a brevissimo Occhiolino

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
24-03-2012 21:50
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1060 RE: Cosa stai codando ADESSO?
0
Sto Codando un algoritmo che permette di smaltire le mangiate del sabato sera ...

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
25-03-2012 2:06
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1061 RE: Cosa stai codando ADESSO?
0
app. cavolate ecco cosa ho wappato oggi:

Codice:
portal2 = Image:new("portal2.png")
for x=0,portal2.width-1,1 do  
     for y=0,portal2.height-1,1 do
          r,g,b,a = portal2:GetPixel(x,y)
          a=(r+g+b)/3
          portal2:SetPixel(x,y,r,g,b,a)
    end
end
portal2:SaveToTGA("portal2_lua.tga")

[Immagine: luascript.jpg]
altro esempio

Codice:
    portal2 = Image:new("portal2.png")
    for x=0,portal2.width-1,1 do    
        for y=0,portal2.height-1,1 do
            r,g,b,a = portal2:GetPixel(x,y)
            a=255-(r+g+b)/3
            portal2:SetPixel(x,y,r,g,b,a)
        end
    end
    portal2:SaveToTGA("portal2_lua.tga")

[Immagine: luascript2.jpg]

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 25-03-2012 13:24 da Gabriele.)
25-03-2012 13:03
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1062 RE: Cosa stai codando ADESSO?
0
e ora ho wappato anche la classe EWindow (Event+Window), Object2D, Factotory, Camera, MLight, MSprite, RenderTexture, Texture, Material, +enum di 512 tasti (oquasi) +enum per il tipo di finestra...

mi mancano ancora varie classi, quelle dell'animazioni, quelle delle particelle, suerface, mesh.....
ma cmq almeno qualcosa su schermo si vede e non solo attraverso dei file....

[Immagine: esempio_lua_.png]

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 29-03-2012 0:26 da Gabriele.)
28-03-2012 23:56
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,205
Registrato: Sep 2010
Offline Offline
#1063 RE: Cosa stai codando ADESSO?
0
Complimenti.. stai spingendo parecchio con il Lua.

Sono curioso sapere quali saranno i problemi in pratica quando la questione si complichera'.
La mia sensazione e' che il costante mantenimento dell'interfaccia con la parte nativa alle lunghe puo' diventare pesante.

Trovare il giusto bilanciamento e' la parte piu' difficile !

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
29-03-2012 1:21
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,397
Registrato: Oct 2010
Offline Offline
#1064 RE: Cosa stai codando ADESSO?
0
(29-03-2012 1:21)TheCrib ha scritto:  Complimenti.. stai spingendo parecchio con il Lua.

Sono curioso sapere quali saranno i problemi in pratica quando la questione si complichera'.
La mia sensazione e' che il costante mantenimento dell'interfaccia con la parte nativa alle lunghe puo' diventare pesante.

Trovare il giusto bilanciamento e' la parte piu' difficile !
Effettivamente, si, il costante aggiornamento a lungo a dare mi potrebbe rompere....


per quanto riguarda "il giusto bilanciamento", hai dei consigli?
Ovviamente non ho intenzione di interfacciare tutto l'engine ma solo la parte più "alta"....

Io avevo intenzione di usarlo come linguaggio di script per l'editor, cioè ogni oggetto gli si può associare uno script, con gli eventi

"Init, Update, Destroy"

Oppure un sistema a task "generici", proprio questo chiedo a te o anche chiunque ne sa di lua, o di linguaggi di script,fino a che punto è consigliabile usare uno script, quali task solitamente si implementano tramite script e quali no, insomma XD chiedo la vostra esperienza in materia!?!?!!!!

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 29-03-2012 11:27 da Gabriele.)
29-03-2012 8:16
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,275
Registrato: Sep 2004
Offline Offline
#1065 RE: Cosa stai codando ADESSO?
0
molto figo Gabriele continua così! UpDate non si può vedere però Asd

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
29-03-2012 9:43
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Vai al forum: