Accueil > > > MOTEUR DE RPG EN LIGNE
MOTEUR DE RPG EN LIGNE
Information sur la source
Description
Vous avez déjà joué aux Baldur's Gate ? Icewind Dale ? Ce "moteur" est une imitation de l'InfinityEngine, le moteur de ces jeu, en Javascript, c'est à dire jouable en ligne. Ce n'est qu'un timide début ne vous attendez pas à un vrai jeu, mais vous pouvez déjà avoir un aperçu de ce que je cherche à faire. Démo ici : http://gravytea.com/florian/ForgotEngine/
Source
- //(fichier core/game/game.inc.js)
-
- ////////////////
- //FICHIER GAME//
- ////////////////
-
- //à terme vous devriez pouvoir adapter le moteur à vos besoin en utilisant ce seul fichier
- //pour l'instant ça me semble délicat, cependant vous pouvez déjà voir ici un exemple d'utilisation basique du moteur
-
-
-
- //PARAMETRES
- //Le "Volumetric Lights" est une sorte de blur, c'était au début un bug et j'ai trouvé que ça rendait pas mal sur les toits/arbres
- //ça rame pas mal par contre
- OverMask = 0; //"Volumetric Lights" activé
- OverMaskOpacity = 0.2; //intensité (immonde lorsque > 0.4)
-
- ScrollSpeed = 50; //vitesse de défilement de la map
- StaticZone = 0.4; //sensibilité pour le scroll, 0 < StaticZone < 0.5
- BorderLim = 0; //affiche une bordure autour de la map, plutôt laid en fait
- DynCursor = 1; //change l'apparence du curseur pendant le scroll
- DefInterval = 5; //temps par défaut pour les setTimeout
-
- WinOpacity = 0.9; //opacité des fenêtres
- WinLightDrag = 1; //annule l'opacité des fenêtres pendant les dragndrop
-
- Locator = 0; //affiche map
-
- GamespaceBg = 'url(img/map/bg/fog.gif)'; //map de fond
- MapBg = 'img/map/bg/AR3300.jpg'; //map
-
- function StartGame() {
- CreateGamespace(); //crée un div prenant tout l'écran où sera crée la map
- CreateMap(5120,3840); //crée la map de tailler 5120*3840 (attention pour l'instant l'image MapBg sera ETIREE si elle est trop petite)
- StartGamespace(); //démarre le tout
-
- //CreateChar(400,900,'Elemental, Water',17,0.65);
-
- CenterView(2060,2260); //cadre la vue sur ces coordonnées (assez peu précis en fait)
-
- //CreateChar est aussi utilisé pour crée des objets tels que la fumée ou de l'eau...
- //C'est assez illogique la fonction changera bientôt de nom
- CreateChar(2510,3035,'FOUNTN',2,0.7);
- //créer l'objet FOUNTN aux coord 2510,3035 avec l'id 2 et une opacité de 0.7
- //veiller à ne pas créer 2 objets avec le même id
-
- CreateChar(1940,355,'CHIMSMK',3,0.4);
- CreateChar(2585,1125,'CHIMSMK',4,0.4);
- CreateChar(1325,1045,'CHIMSMK',5,0.4);
- CreateChar(4752,2425,'CHIMSMK',6,0.4);
- CreateChar(930,2560,'CHIMSMK',7,0.4);
- CreateChar(795,2710,'CHIMSMK',8,0.4);
- CreateChar(4476,2553,'CHIMSMK',9,0.4);
- CreateChar(4738,2571,'CHIMSMK',10,0.4);
- CreateChar(4490,2419,'CHIMSMK',11,0.4);
-
- CreateChar(3005,1713,'BUTRFLY',12);
- CreateChar(3657,993,'BUTRFLY',13);
- CreateChar(3275,995,'BUTRFLY',14);
- CreateChar(4492,1084,'BUTRFLY',15);
- CreateChar(1539,970,'BUTRFLY',16);
-
- CreateChar(1500,1500,'wyvern',1);
-
- MoveChar(1,2350,2300,5);
- //bouge l'objet d'id 1 (la wyvern) vers le point 2350,2300 à la vitesse 5.
- }
-
-
- //les fonctions "Action" sont appelés lorsque certains évenèment ont lieu
-
- function ActionClick() {
- MoveChar(1,MouseXCoord(),MouseYCoord(),5);
- //MouseXCoord()/MouseYCoord() retourne les coordonnées du curseur, tenant compte de la position de la map sur l'écran
- }
-
- function ActionMove() {
- window.status = Math.round(MouseXCoord())+'/'+Math.round(MouseYCoord());
- //affiche en status les coordonnées de la souris, pratique pour placer de nouveau objet
- }
-
- function ActionOver(Id) {
- document.title = Elmt[Id];
-
- //ci-dessous, un petit essaie d'intégrer Ajax au moteur... très basique.
- //pour essayer décommenter aussi l'elemental d'eau
- /*if(Id == 17) {
- CreateDialog(100,100,'<img src="img/spinner.gif">',18);
- //crée un div de dialogue au point 100,100, d'id 18, contenant l'image spinner.gif
-
- StickDialog(18,17);
- //"colle" ce div à l'élémental
-
- AjaxRequest('test.php','CreateDialog(100,100,Request.responseText,18);');
- //appelle en arrière plan la page test.php, quand le résultalt arrive place dans le div de dialogue le contenu du fichier
- }*/
- }
-
- function ActionOut(Id) {
-
-
-
- }
-
- //pour modifier le menu regarder dans le fichier index
- //CreateWin(350,350,WinAbout(),'About');
- //crée une fenêtre déplaçable d'id 'About' au point 350,350
- //de contenu WinAbout(), fonction définie dans le fichier game/win/options.win.js
//(fichier core/game/game.inc.js)
////////////////
//FICHIER GAME//
////////////////
//à terme vous devriez pouvoir adapter le moteur à vos besoin en utilisant ce seul fichier
//pour l'instant ça me semble délicat, cependant vous pouvez déjà voir ici un exemple d'utilisation basique du moteur
//PARAMETRES
//Le "Volumetric Lights" est une sorte de blur, c'était au début un bug et j'ai trouvé que ça rendait pas mal sur les toits/arbres
//ça rame pas mal par contre
OverMask = 0; //"Volumetric Lights" activé
OverMaskOpacity = 0.2; //intensité (immonde lorsque > 0.4)
ScrollSpeed = 50; //vitesse de défilement de la map
StaticZone = 0.4; //sensibilité pour le scroll, 0 < StaticZone < 0.5
BorderLim = 0; //affiche une bordure autour de la map, plutôt laid en fait
DynCursor = 1; //change l'apparence du curseur pendant le scroll
DefInterval = 5; //temps par défaut pour les setTimeout
WinOpacity = 0.9; //opacité des fenêtres
WinLightDrag = 1; //annule l'opacité des fenêtres pendant les dragndrop
Locator = 0; //affiche map
GamespaceBg = 'url(img/map/bg/fog.gif)'; //map de fond
MapBg = 'img/map/bg/AR3300.jpg'; //map
function StartGame() {
CreateGamespace(); //crée un div prenant tout l'écran où sera crée la map
CreateMap(5120,3840); //crée la map de tailler 5120*3840 (attention pour l'instant l'image MapBg sera ETIREE si elle est trop petite)
StartGamespace(); //démarre le tout
//CreateChar(400,900,'Elemental, Water',17,0.65);
CenterView(2060,2260); //cadre la vue sur ces coordonnées (assez peu précis en fait)
//CreateChar est aussi utilisé pour crée des objets tels que la fumée ou de l'eau...
//C'est assez illogique la fonction changera bientôt de nom
CreateChar(2510,3035,'FOUNTN',2,0.7);
//créer l'objet FOUNTN aux coord 2510,3035 avec l'id 2 et une opacité de 0.7
//veiller à ne pas créer 2 objets avec le même id
CreateChar(1940,355,'CHIMSMK',3,0.4);
CreateChar(2585,1125,'CHIMSMK',4,0.4);
CreateChar(1325,1045,'CHIMSMK',5,0.4);
CreateChar(4752,2425,'CHIMSMK',6,0.4);
CreateChar(930,2560,'CHIMSMK',7,0.4);
CreateChar(795,2710,'CHIMSMK',8,0.4);
CreateChar(4476,2553,'CHIMSMK',9,0.4);
CreateChar(4738,2571,'CHIMSMK',10,0.4);
CreateChar(4490,2419,'CHIMSMK',11,0.4);
CreateChar(3005,1713,'BUTRFLY',12);
CreateChar(3657,993,'BUTRFLY',13);
CreateChar(3275,995,'BUTRFLY',14);
CreateChar(4492,1084,'BUTRFLY',15);
CreateChar(1539,970,'BUTRFLY',16);
CreateChar(1500,1500,'wyvern',1);
MoveChar(1,2350,2300,5);
//bouge l'objet d'id 1 (la wyvern) vers le point 2350,2300 à la vitesse 5.
}
//les fonctions "Action" sont appelés lorsque certains évenèment ont lieu
function ActionClick() {
MoveChar(1,MouseXCoord(),MouseYCoord(),5);
//MouseXCoord()/MouseYCoord() retourne les coordonnées du curseur, tenant compte de la position de la map sur l'écran
}
function ActionMove() {
window.status = Math.round(MouseXCoord())+'/'+Math.round(MouseYCoord());
//affiche en status les coordonnées de la souris, pratique pour placer de nouveau objet
}
function ActionOver(Id) {
document.title = Elmt[Id];
//ci-dessous, un petit essaie d'intégrer Ajax au moteur... très basique.
//pour essayer décommenter aussi l'elemental d'eau
/*if(Id == 17) {
CreateDialog(100,100,'<img src="img/spinner.gif">',18);
//crée un div de dialogue au point 100,100, d'id 18, contenant l'image spinner.gif
StickDialog(18,17);
//"colle" ce div à l'élémental
AjaxRequest('test.php','CreateDialog(100,100,Request.responseText,18);');
//appelle en arrière plan la page test.php, quand le résultalt arrive place dans le div de dialogue le contenu du fichier
}*/
}
function ActionOut(Id) {
}
//pour modifier le menu regarder dans le fichier index
//CreateWin(350,350,WinAbout(),'About');
//crée une fenêtre déplaçable d'id 'About' au point 350,350
//de contenu WinAbout(), fonction définie dans le fichier game/win/options.win.js
Conclusion
Le fichier étant un peu gros, vous trouverez la dernière version ici : http://gravytea.com/florian/ForgotEngine/fe.zip Ca rte et persos sont inclus.
Historique
- 22 avril 2006 14:16:03 :
- Plus de problème lors du déplacement de la map sous IE.
- 29 avril 2006 17:57:03 :
- La map est dorénavant découpée en 256 morceaux d'une vingtaines de Ko qui se chargent de façon intelligente (plutôt qu'une seule grosse image de plusieurs Mo comme avant).
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Cherche programmeur(s) AJAX pour aider dev. RPG par navigateur [ par witchgunn ]
Bonjour, je suis webmaster (28 ans) et je mets sur les rails un projet de RPG jouable dans le navigateur. Le design en est aux finitions : [img]ht
[CS]Un thème HTML [ par rt15 ]
Salut, Il y a pas mal de questions sur le HTML qui finissent dans la bar (Ou sur le site du langage côté serveur utilisé, alors que le problème se li
Jeux d'arcade en DHTML: personne n'a réussi à en faire un bien? [ par Duxmachin ]
Bonjour à tous,Je suis nouveau en JS, je code depuis 2 mois,je me posais la question de savoir si quelqu'un a déjà réussi à c
impression jeu de cadre tout entier [ par attarte ]
J'ai un jeu de cadre découpé en deux. Un des deux cadres contient un bouton imprimer. Le javascript window.print() ne m'imprime que le cadre
[AJAX+DIV] Probleme de positionement de basile "<DIV>" [ par frostie ]
Boujour tout le monde, Je suis en train de developper une application PHP/AJAX (Asynchronous JAvascipt Xml) qui utilise beaucoup les balises <DIV&
Afficher un texte ou menu depuis un menu DHTML [ par 1ouf ]
Bonjour,Je sais que mon titre de sujet n'est pas clair mais je sais pas comment le dire, ni où chercher.Voilà alors en faite je souhaite cr&
AJAX ? [ par tony1239456 ]
Bonjour, je suis très intéressé par la nouvelle forme de progrzmmation AJAX. J'ai vu des scripts en action et sa m'a beaucoup plû
Ajax bug userInteractive = 3 [ par littlebigfox ]
Bonjour a tous!J'ai un petit souci, j'espere que quelqu'un peu m'aider, je ne comprend absolument pas. C'est tout bete, j'ai creer un objet xmlhttpreq
Heure visiteur en cookie ou autre [ par zonevirtuel ]
bonjour, en fait j'ai un gros soucis ... je suis concepteur d'un jeu sur internet a traffic international, francais, canadiens, et autres viennent r&
[DHTML] Apparition calque en transparence [ par bractar ]
Bonjour, j'aimerais reproduire une effet "classique" que j'ai pu voir sur différents sites (je ne me rappelle plus lesquels ^^; ). J'ai sur une p
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|