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
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
[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
onunload: attendre la fin d'un echange ajax avnt de fermer la fenêtre? [ par trygelin ]
Afin de fermer une session, lors de changement de page, ou fermeture du navigateur je souhaite déclencher une requete AJAX: j'ai écrit la procédure ai
[BAR]cherche pour jeu [ par madmax52 ]
Bonjour je cherche quelqu'un pour la création d'un jeu de gestion. [^^happy10] Si vous voulez essayer et que l'aventure vous, tente contacter moi ...
menu horizontal/vertical sous ajax/php/mysql [ par thibill ]
Salut à tous et toutes, Est-ce qu'il y a qq'un qui a déjà fabriqué un menu horizontal 3 niveaux permettant de tirer les données du menu directement d
Interaction avec le serveur : AJAX + PHP [ par kate1910 ]
bonjour , est ce que quelqu'un pourra me dire c'est koi l'erreur dans mon code : [code=js]function ajax() { var xhr=null; if (window.XMLH
problem ds ma fonction ajax [ par kate1910 ]
bonjour tout le monde svp est ce que quelqu'un peut me dire c'est quoi le probleme dans ma fonction ajax,normalement cette derniére va permettre a de
Ajax crossdomain flXHR [ par Teclis01 ]
Bonjour tout le monde :) Voilà quelques temps que j'essaye de faire fonctionner un plugin prototype qui permet de faire des requêtes ajax sur un serv
Solution en Ajax pour afficher la suite de résultats sql [ par fabrizti ]
Bonjour tout le monde. J'ai une page php, mysql qui affiche un certains nombres d'articles (avec une région répétée) en fonction des pages. Mais Si il
A propos d'AJAX [ par karimfellah ]
slt à tous, j'ai besoin du code ajax qui permet de verifier si le nom de l'utilisateur existe dans la base ou nom tout en affichant la résultat dans
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|