3D Book

Nos travaux => Stéph Book => Stéph' Blog => Discussion démarrée par: Stéph le Le 26 mars 2013 à 11:59:20 am

Titre: Frame-Engine, un moteur de jeux HTML5
Posté par: Stéph le Le 26 mars 2013 à 11:59:20 am
Je viens de tomber sur le projet Frame-Engine (http://www.frame-engine.com/fr/). Un tout nouveau framework JavaScript, encore en bêta, pour développer notamment des jeux 2D et qui vous permettra donc de programmer de manière simple et efficace, un jeu HTML5 multiplateforme et compatible avec tous les navigateurs.

En plus, c'est développé par un français, donc avec des tutoriels, un forum et des aides en français. :poucehaut:

(http://steph.3dbook.fr/data/fichiers_blog/News/Frame-Engine.jpg)

La Lib est déjà assez complète

- Algorithme de rendu optimisé 
- Implémentation des évènements utilisateurs
- Classe de base pour les UI
- Classes de jeux vidéos
- Support des tablettes et téléphones
- Gratuit pour un usage non commercial

Le code est assez proche de ce qu'on peu avoir avec certaines libs de jeux dans un langage basic, un projet à suivre...

var area = new Area();
var lp, bean,pierre;
var initSpeed = 1200;
var dragStart = false, score = 0;

function setup(){
Engine.init(false, 1280, 720);
Engine.setCurrentArea(area);
Library.addSound("sounds/entry");
}

area.init = function(){
this.addDrawable(3,new Drawable(0,0,"images/ciel.jpg"));
this.addDrawable(3,new Drawable(0,194,"images/back.png"));
this.addDrawable(1,new Drawable(0,412,"images/front.png"));
this.addDrawable(0, new Drawable(Engine.width * 0.5 - 111, 450, "images/lancepierre.png"));
bean = new Entity(100,350,"images/haricot.png",0,0,300);
this.addDrawable(2, bean);
bean.setCheckPoint([ new CheckPoint(1290, 430), new CheckPoint(855,325), new CheckPoint(475, 480), new CheckPoint(-120,340)],1200);
bean.onCheckPointDone = function () { this.x = 1290; this.y = 420;}
Library.loadImage("images/haricot2.png");
}

area.afterRender = function(){
fill(0,0,0);
textSize(14);
text("Score : " + score, Engine.width - 100, 40);
stroke(249,212,0);
lineWidth(6);
if (Engine.mousePressed && Functions.pointInSquare(mouseX,mouseY,Engine.width * 0.5 - 101,470,202, 20)){
dragStart = true;
line(mouseX,mouseY,Engine.width * 0.5 - 101,477);
line(mouseX,mouseY,Engine.width * 0.5 + 101,477);
}else if (Engine.mousePressed && dragStart){
stroke(0,0,0);
fill(0,0,0);
ellipse(mouseX,mouseY - 4,8);
stroke(249,212,0);
line(mouseX,mouseY,Engine.width * 0.5 - 101,477);
line(mouseX,mouseY,Engine.width * 0.5 + 101,477);
}else{
if (dragStart){
pierre = new ColorDrawable(mouseX,mouseY,8,8,color(0,0,0));
pierre.setShape(1);
this.addDrawable(0,pierre);
pierre.offX =  (Engine.width * 0.5 - mouseX) / 10;
pierre.offY =  (477 - mouseY) / 10;
BaseElement.timeOut(pierre,1000, function(){this.remove();});
pierre.beforeProcess = function(){
BaseElement.advanceBy(this, this.offX, this.offY, 20);
if (this.hit(bean) ){
if(bean.imageName == "images/haricot.png"){
this.remove();
Drawable.changeImage(bean, "images/haricot2.png");
var d = new Drawable(bean.x,bean.y,"images/crane.png");
d.beforeProcess = function(){
BaseElement.advanceBy(this, pierre.offX,pierre.offY);
}
BaseElement.rotateTo(d,360,1000,function(){ this.remove();});
Engine.currentArea.addDrawable(0, d);
}else{
this.remove();
bean.stopCheckPoint(null);
Drawable.changeImage(bean,"images/haricot.png");
bean.checkPointState = 0;
initSpeed -= 50;
bean.setSpeed(initSpeed);
BaseElement.fadeOut(bean,200, function(){
bean.setPos(1290, 430);
BaseElement.fadeIn(bean,10);
bean.restartCheckPoint();
score += 10;
});
}
}
}
}
dragStart = false;
line(Engine.width * 0.5 + 101,477,Engine.width * 0.5 - 101,477);
}
}
Titre: Re : Frame-Engine, un moteur de jeux HTML5
Posté par: Gertrudez le Le 11 juin 2018 à 12:36:01 pm
I would like to know about this forum where you brought it from or invented it.