[RELEASE] LuaGE : Lua Game Engine
| Auteur |
Message |
|
Dev
Messages: 16
|
 [RELEASE] LuaGE : Lua Game Engine
Bonjour à tous, bon ces derniers jours je me suis lancé dans un projet : un interpréteur lua mais la différence avec le luaplayer ou pgelua c'est qu'il est conçus spécialement pour être lancé sur psp, sur windows 32, sur ds, .... Le code lua peut ainsi obtenir les meilleurs config pour la plateforme cible. Ce lua player n'est basé sur aucun autre lua player !!!Ce projet est open source et j'aimerais que des personnes m'aident donc vous pouvez utiliser et distribuer les sources à votre guise, dans l'archive, il ya l'eboot pour psp et l'executable pour windows avec les dll. On peut compiler pour windows et psp et je pense que sa marche pour linux (pas encore testé) Site officiel : http://mymicrosystem.redby.fr/liens de download : http://mymicrosystem.redby.fr/files/luaGE_src_beta.zipSources online : http://mymicrosystem.redby.fr/files/luaGE/Voici les fonctions pour le moments : Citer: System.getX() : Renvoie la résolution en X la plus adéquate à la plateforme System.getY() : Renvoie la résolution en Y la plus adéquate à la plateforme System.getName() : Renvoie le nom de la plateforme
Windows.create(x,y,largeur,hauteur,nom,fullscreen,3d) : Ouvre une fenêtre au coordonnées donnée et de la taille spécifié, fullscreen permet de la lancer en plein écran et 3d permet d'activer le mode 3D Windows.get() : Renvoie la structure Image pour dessiner dessus Windows.delete() : Ferme la fenêtre Windows.flip() : affiche la fenêtre Windows.event() : renvoie l'évènement de la fenêtre Les différents évènements sont : EVENT_WINCLOSE : on a appuyé sur le bouton quitté de la fenêtre EVENT_KEYDOWN : on appuye sur une touche EVENT_KEYUP : on a relâché une touche EVENT_MOUSEMOVE : on a déplacé la souris
Joystick.getKey() : renvoie la touche pressé sur le clavier Joystick.getPad() : renvoie la touche du joystick pressé Les différentes touches sont : JOYSTICK_NO : aucune touche pressé JOYSTICK_UP JOYSTICK_DOWN JOYSTICK_RIGHT JOYSTICK_LEFT JOYSTICK_T1 : X sur psp et espace sur windows JOYSTICK_T2 : O sur psp JOYSTICK_T3 JOYSTICK_T4 JOYSTICK_T5 JOYSTICK_T6
Joystick.getMouseX() : renvoie le déplacement en x de la souris (du pad sur psp) Joystick.getMouseY() : renvoie le déplacement en y de la souris (du pad sur psp)
Image.load(image) : charge une image Image.create(l,h,ram) : crée une image vide, la valeur ram peut être : MEMORY_VRAM : pour la mémoire vidéo MEMORY_RAM : pour la mémoire ram image:delete() : supprime l'image de la mémoire image:clear(color) : lave l'image image:blit(x,y,img) : affiche une image sur une image image:pixel(x,y,color) : affiche un pixel sur l'image image:rect(x,y,l,h,color) : affiche un rectangle sur l'image image:circle(x,y,r,color) : affiche un cercle de raton r et de centre (x,y)
Color.new(r,g,b) : renvoie la couleur Color.delete(color) : supprime la couleur color de la ram
ge3D.clear() : lave le buffer 3D ge3D.mode(mode) : change le mode, mode peut être : GE_3D_POINTS GE_3D_TRIANGLES GE_3D_QUADS GE_3D_POLYGONS ge3D.look(cx,cy,cz,cix,ciy,ciz,vx,vy,vz) : positionne la camera au point c(x,y,z) regardant vers ci(x,y,z) avec comme vertical v(x,y,z) ge3D.stop() : stop l'affichage avec le mode (met bien en place les nouveaux vertex) ge3D.vertex(x,y,z) : crée un vertex ge3D.coord(x,y) : spécifie les coordonnées de la texture ge3D.texture(img) : spécifie la texture à utiliser
Voici des codes et ce qu'ils affichent sous windows : Le 3D ne marchent pas encore sur psp sources 1 :  sources 2 :  source 1 code : Code : largeur=System.getX() hauteur=System.getY() Windows.create(0,0,largeur,hauteur,"Little Shooter",false,false)
event=0 screen=Windows.get() enemie=Image.load("test/smile.bmp")
black=Color.new(0,0,0) white=Color.new(255,255,255)
persox=0 persoy=0
nbcible=20
cibles={}
for i=1,nbcible do cibles[i]={} cibles[i].x=math.random(0,largeur) cibles[i].y=math.random(0,hauteur) cibles[i].etat=true end
function dessiner_cibles() for i=1,nbcible do if (cibles[i].etat==true)then screen:blit(cibles[i].x,cibles[i].y,enemie) cibles[i].y=cibles[i].y+math.random(-10,10) if (cibles[i].y >= hauteur ) then cibles[i].y=math.random(0,hauteur) cibles[i].x=math.random(0,largeur) elseif (cibles[i].y <=0 ) then cibles[i].x=math.random(0,largeur) cibles[i].y=math.random(0,hauteur) end end end end
function tuer_cible(x,y,r) for i=1,nbcible do if (cibles[i].x>(x-r)) and (cibles[i].x<(x+r)) and (cibles[i].y>(y-r)) and (cibles[i].y<(y+r)) then cibles[i].etat=false end end end
while event~=EVENT_WINCLOSE do event=Windows.event() screen:clear(white)
dessiner_cibles() screen:circle(persox,persoy,25,black)
if (event==EVENT_MOUSEMOVE) then persox=persox+Joystick.getMouseX() persoy=persoy+Joystick.getMouseY() elseif (event==EVENT_KEYDOWN) then if (Joystick.getPad()==JOYSTICK_T1) then tuer_cible(persox,persoy,25) end end Windows.flip() end
Windows.delete() sources 2 code : Code : largeur=System.getX() hauteur=System.getY() Windows.create(0,0,largeur,hauteur,"Test 3D",false,true)
texture1=Image.load("./test/floor.jpg")
blanc=Color.new(255,255,255) rouge=Color.new(255,0,0) vert=Color.new(0,255,0) bleu=Color.new(0,0,255) cyan=Color.new(0,255,255) magenta=Color.new(255,0,255)
t=0 angleZ=0
function dessiner_cube() ge3D.translate(2,2,0) for i=0,4 do ge3D.mode(GE_3D_QUADS) ge3D.coord(0,1) ge3D.vertex(1,1,1) ge3D.coord(0,0) ge3D.vertex(1,1,-1) ge3D.coord(1,0) ge3D.vertex(-1,1,-1) ge3D.coord(1,1) ge3D.vertex(-1,1,1) ge3D.stop() ge3D.rotate(0,0,90) end
ge3D.mode(GE_3D_QUADS) ge3D.coord(0,0) ge3D.vertex(1,-1,1) ge3D.coord(1,0) ge3D.vertex(1,1,1) ge3D.coord(1,1) ge3D.vertex(-1,1,1) ge3D.coord(0,1) ge3D.vertex(-1,-1,1)
ge3D.stop() end
ge3D.texture(texture1)
while event~=EVENT_WINCLOSE do event=Windows.event() ge3D.clear() angleZ = angleZ + 1
ge3D.rotate(0,0,angleZ)
ge3D.look(3,4,2,0,0,0,0,0,1)
ge3D.mode(GE_3D_QUADS)
ge3D.color(rouge) ge3D.vertex(1,1,1) ge3D.vertex(1,1,-1) ge3D.vertex(-1,1,-1) ge3D.vertex(-1,1,1)
ge3D.color(vert) ge3D.vertex(1,-1,1) ge3D.vertex(1,-1,-1) ge3D.vertex(1,1,-1) ge3D.vertex(1,1,1)
ge3D.color(bleu) ge3D.vertex(-1,-1,1) ge3D.vertex(-1,-1,-1) ge3D.vertex(1,-1,-1) ge3D.vertex(1,-1,1)
ge3D.color(cyan) ge3D.vertex(1,1,-1) ge3D.vertex(1,-1,-1) ge3D.vertex(-1,-1,-1) ge3D.vertex(-1,1,-1)
ge3D.color(magenta) ge3D.vertex(1,-1,1) ge3D.vertex(1,1,1) ge3D.vertex(-1,1,1) ge3D.vertex(-1,-1,1) ge3D.color(blanc) ge3D.stop() dessiner_cube() Windows.flip() t=t+1 end
Windows.delete()
|
| 02 Jan 2010, 11:57 |
|
 |
|
publicité
|
|
 |
|
PSP master
Messages: 628
|
 Re: [RELEASE] LuaGE : Lua Game Engine
A essayer d'urgence
_________________


|
| 02 Jan 2010, 12:41 |
|
 |
|
PSP addict
Messages: 209 Localisation: Devant mon pc :)
|
 Re: [RELEASE] LuaGE : Lua Game Engine
Génial ! Je teste tout de suite !  EDIT : Mais c'est génial, c'est trop pratique les fonction dispo ! J'ai une question : est ce que il y aura aussi la gestion des fenêtre sur PSP ? Ce serait vraiment bien ! Comme sa il y aurai vraiment 100% de compabilitée !
_________________ Dev : PHP, LUA, C++, JS, Html, Action Script, Java, .Net (C#, VB, XNA, silverlight), python, brainfuck, objC
PSP Fat réparée --> ShellOS en C !
|
| 02 Jan 2010, 14:40 |
|
 |
|
Staff IRC
Messages: 1698
|
 Re: [RELEASE] LuaGE : Lua Game Engine
Qu'est-ce que tu veux dire par fenêtre ? Une solution simple serait de dessiner ta fenêtre sur une image que tu blittes sur l'écran 
|
| 02 Jan 2010, 14:53 |
|
 |
|
PSP addict
Messages: 209 Localisation: Devant mon pc :)
|
 Re: [RELEASE] LuaGE : Lua Game Engine
Non, se luaPlayer est surtout bien parce que il permet de coder des programmes compatible avec n'importe quel plateforme, sans toucher au programme. Mais si il y a des fonction relative a l'utilisation de fenêtre, les programmes fait pour windows ne sernt pas compatible avec ce LuaPlayer version PSP, sauf si il y a un gestionnaire de fenêtre, ou autre chose qu'il l remplace (Des onglets pa xemple, donc au moinsdu multi tache).
Si il n'y a pas de fenêtre (Ou autre) sur le lua Player PSP, les programmes fait en LUA ne seront pas compatible partout. Il ne faut pas qu'il y est des fonction escusivement sur une plateforme.
_________________ Dev : PHP, LUA, C++, JS, Html, Action Script, Java, .Net (C#, VB, XNA, silverlight), python, brainfuck, objC
PSP Fat réparée --> ShellOS en C !
|
| 02 Jan 2010, 15:11 |
|
 |
|
Dev
Messages: 16
|
 Re: [RELEASE] LuaGE : Lua Game Engine
il n'y aura pas de fonctions pour une seul plateforme. Sinon pour que votre programme soit compatible avec toutes les plateformes il faut quand meme bien le coder, par exemple en utilisant les fonctions System.getX() et System.getY() pour obtenir les meilleurs resolutions et adapter son codes à ces resolutions : lors de l'affichage d'une image à une coordonnée, ... (les exemples que j'ai mis le montre)
Sinon nouveautés de cette aprem qui seront posté bientôt (jours prochains) : +support des fonts ttf et affichage avec (psp et win32) +Support du son (win32)
Lorsque des fonctions ne sont que pour win32 par exemple sa veut dire que sur psp elles ne font rien mais exite quand meme
|
| 02 Jan 2010, 16:41 |
|
 |
|
PSP bronze
Messages: 2498 Localisation: Auvergne (63)
|
 Re: [RELEASE] LuaGE : Lua Game Engine
Bonsoir. Je tiens à t'encourager dans ce projet bien parti déjà et qui ne fera qu'apporter un plus à la scène PSP. On n'est jamais en manque d'outils pour développer, alors bon courage, et que tu puisses obtenir tous les résultats escomptés ! 
_________________
 °°°°°°°°° 
|
| 02 Jan 2010, 23:48 |
|
 |
|
News Hunter
Messages: 2321 Localisation: St Laurent de Chamousset
|
 Re: [RELEASE] LuaGE : Lua Game Engine
Héhé après un OS, lordvisaris nous sort un interpréteur LUA, bien joué vieux  Non sérieux faut vraiment que je teste sa, les fonctions sont génials 
_________________
|
| 03 Jan 2010, 11:36 |
|
 |
|
Administrateur
Messages: 12945 Localisation: Cannes
|
 Re: [RELEASE] LuaGE : Lua Game Engine
news en cours.
_________________ EN VACANCES!
|
| 04 Jan 2010, 09:14 |
|
 |
|
Dev
Messages: 16
|
 Re: [RELEASE] LuaGE : Lua Game Engine
Nouvelle release version 2 : http://mymicrosystem.redby.fr/files/luaGE_version_2.zipNouveauté : +support des fonts ttf police=Font.load("test/CircleOfDust.ttf",size) : charge une font ttf police:mode(norm,gras,italique,souligne) : change le mode police:print(x,y,texte,screen,color) : ecrit un texte à l'ecran police:delete() : supprime la musique +Support du son MP3 (pas pour psp) musique=Sound.load("test/musique.mp3") : charge une musique musique:play() : joue la musique musique:delete() : supprime la musique +Support du reseau (sauf pour psp) : socket=Network.create(port) socket:listen(max) : met le socket en ecoute socket:delete() : supprime et ferme la connection socket:connect("192.168.9.10",10) : connection (adresse,port) --ne marche pas encore car manque socket:accept() socket:send(message,taille_message) socket:recv(message,taille)
|
| 04 Jan 2010, 19:22 |
|
 |
|
PSP addict
Messages: 117
|
 Re: [RELEASE] LuaGE : Lua Game Engine
Bravo ! la 3d ça reste quand même très compliqué
|
| 04 Jan 2010, 19:59 |
|
 |
|
Dev
Messages: 898 Localisation: Tours
|
 Re: [RELEASE] LuaGE : Lua Game Engine
Merci, je viens de tester et c'est vraiment classe 
_________________
|
| 04 Jan 2010, 20:57 |
|
 |
|
Qui est en ligne ? |
Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit |
|
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum
|
|