| Platform Engine - Version 2.01 - Presets Rigides out | |
|
|
Auteur | Message |
---|
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Platform Engine - Version 2.01 - Presets Rigides out Mer 8 Déc 2010 - 21:42 | |
| Hello ! Certains doivent peut-être s'en souvenir, mais pendant la programmation de mon ancien projet PacWars ainsi que Anonymous, j'ai travaillé en parallèle sur un moteur de mouvement sur plateforme du nom de "Platform Engine". Je ne vais pas vous donner le code précis de cet engine (car je ne l'ai pas, sachant que dans les deux cas il a été personnalisé au jeu l'utilisant) mais j'ai décidé de programmer une nouvelle version de celui-ci dont je vous partagerai le code. Donc voici les caractéristiques de ce moteur :- Déplacements fluides - Tous paramètres modifiables - Facilement intégrable à un jeu ( deux scripts à copier coller et c'est prêt à être utilisé) - Support des slopes ( terrains pentus ) - Consommation en performances raisonnable - Sauts progressifs (ex: mario, ...) -> Version 2.01 A venir : - Sols glissants - ... Mode d'emploi :> 1 script à copier coller dans create :ev01: > 1 script à copier coller dans step :ev06: > Démarrage. Code Source :A mettre dans l'évènement create : - Spoiler:
// PlatForm Engine 2.00 (alpha) // par master47 // (C) 2010 - 2011
// Ci-dessous vous trouverez tous les paramètres qui permettent le fonctionement // de l'engine.
grav = 0.50; // gravité. Valeur conseillée [0.01 ; 1.99] mais n'importe quelle valeur // fonctionnera
maxHsp = 3; maxVsp = 10; maxSlope = 6; // maxHsp est la limite de vitesse horizontale // maxVsp est la limite de vitesse verticale
a = 0.75; airA = 0.5; // a et airA sont les deux variables représentant l'accélération. Où a représente // l'accélération à terre et airA l'accélération dans l'air
time = 4; cTime = 0; jumping = false; jumpSpeed = 2; // représente la vitesse de propulsion de l'objet dans l'air lors d'un saut
fric = 0.8; airFric = 0.125; // fric et airFric représentent deux variables correspondant à la friction, où // fric représente la friction à terre et airFric la friction dans l'air
// les variables suivantes correspondent au touches utilisées dans le moteur de // déplacement jumpKey = vk_up; leftKey = vk_left; rightKey = vk_right; downKey = vk_down;
// ces deux variables correspondent à la vitesse horizontale et verticale // vous pouvez les personaliser pour donner une vitesse initiale à l'objet vsp = 0; hsp = 0;
precision = 1; divider = 2;
A mettre dans l'évenement step (NE RIEN MODIFIER) - Spoiler:
// PlatForm Engine 2.01 (alpha) // par master47 // (C) 2010 - 2011
// Ce script est volatile, c'est-à-dire que vous devez le copier dans son // intégrité. Si vous voulez personaliser l'engine, il est conseillé d'aller // modifier les variables définies dans create. var i; i = instance_place( x, y + 1, Solides);
if( !jumping && i == noone) { vsp += grav; } else { if( vsp > 0) vsp = 0; } var l;
if( i != noone) { l = a; } else { l = airA; }
if( keyboard_check( rightKey)) { hsp += l; } if( keyboard_check( leftKey)) { hsp -= l; }
var c; c = sign( vsp); vsp = abs( vsp); if( vsp > maxVsp) { vsp = maxVsp; } if( vsp != 0) { if( vsp > 1) { var s, r; r = floor( vsp); s = 1 + (vsp - r) / r; s *= c; for( j = 0; j < vsp; j += 1) { if( instance_place( x, y + s, Solides) == noone) { y += s; } else { vsp = 0; break; } } } else { if( instance_place( x, y + vsp * c, Solides) == noone) { y += vsp * c; } else { vsp = 0; } } } vsp *= c;
if( !jumping) i = instance_place( x, y + 1, Solides);
if( i != noone && (keyboard_check( jumpKey) || keyboard_check_pressed( jumpKey)) && !jumping) { jumping = true; cTime = time; }
if( cTime > 0 && jumping) { vsp -= jumpSpeed; }
if( cTime > 0) cTime -= 1; if( cTime <= 0 || !keyboard_check( jumpKey)) { jumping = false; } var d; d = sign( hsp); hsp = abs( hsp);
if( hsp > maxHsp) { hsp = maxHsp; }
if( hsp != 0) { if( hsp > 1) { var t, u; t = floor( hsp); u = 1 + ( hsp - t) / t; u *= d; for( k = 0; k < hsp; k += 1) { if( instance_place( x + u, y, Solides) == noone) { x += u; } else { var v; v = false; for( m = 0; m < maxSlope; m += precision) { if( instance_place( x + u, y - m, Solides) == noone) { x += u; y -= m; hsp /= divider; v = true; break; } } if( !v) { hsp = 0; break; } } } } else { if( !instance_place( x + hsp * d, y, Solides)) { x += hsp * d; } else { var v; v = false; for( n = 0; n < maxSlope; n += precision) { if( !instance_place( x + hsp * d, y-n, Solides)) { x += hsp * d; y -= 1; v = true; break; } } if( !v) { hsp = 0; } } } }
var e, f; e = instance_place( x, y + 1, Solides);
if( e != noone) { f = fric; } else { f = airFric; }
if( !keyboard_check( leftKey) && !keyboard_check( rightKey)) { if( hsp > f) { hsp -= f; } else hsp = 0; } hsp *= d; Téléchargement Dernière version : 2.01 (Alpha) http://www.host-a.net/u/master47/Platform-Engine-v2.01(alpha).gmk
v2.00 ALPHA :: http://www.host-a.net/u/master47/Platform-Engine-v2.00(alpha).gmkv2.01 ALPHA :: http://www.host-a.net/u/master47/Platform-Engine-v2.01(alpha).gmkv2.01 ALPHA (Paramètres Rigides) :: http://www.host-a.net/u/master47/Platform-Engine-v2.01Rigid(alpha).gmk
Dernière édition par master47 le Lun 13 Déc 2010 - 16:13, édité 6 fois |
|
| |
justino Pas mal
Messages : 37 Localisation : sur internet, pourquoi? Projet Actuel : Explorateur de la mort et chicken-game qui avance bien avec DeinDall!
cool deindall tes sprites:noel2:
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Jeu 9 Déc 2010 - 16:16 | |
| Ca a l'air cool je l'integrere peut etre dans explorateur |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Jeu 9 Déc 2010 - 17:23 | |
| Nouveautés 2.01 :
- Gestion des sauts plus fonctionnelle. - Sauts progressifs supportés. |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Ven 10 Déc 2010 - 0:59 | |
| Pour la plupart des jeux, les paramètres qui régissent le mouvement d'un objet dans un moteur de plateforme sont plus "rigides" que ceux définis par défaut dans le moteur que je vous partage. C'est pourquoi voici un up du gmk où le système est considérablement plus rigide : http://www.host-a.net/u/master47/Platform-Engine-v2.01Rigid(alpha).gmk(peut-être moins de réalisme dans la simulation du mouvement mais bien plus de facilité de controle de la trajectoire de l'objet) |
|
| |
justino Pas mal
Messages : 37 Localisation : sur internet, pourquoi? Projet Actuel : Explorateur de la mort et chicken-game qui avance bien avec DeinDall!
cool deindall tes sprites:noel2:
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Ven 10 Déc 2010 - 20:12 | |
| Par contre dans ton moteur tu pourrais aussi ajouter Pour les debutant un systeme ou on choisirais le nom d'un objet invisible qu l'on metterais sur les tileset d'echelle ou de corde qui permettra au perso de monter Et aussi bonne chance |
|
| |
Linky439 Utilisateur confirmé: Rang *****
Messages : 2643 Localisation : Sur le forum du CBNA...ou pas Projet Actuel : La Galaxie Scellée
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Ven 10 Déc 2010 - 20:43 | |
| Rah ça m'a l'air parfait tout ça :p Je dl ça assez rapidement et je t'en donne des nouvelles |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Ven 10 Déc 2010 - 21:06 | |
| - justino a écrit:
- Par contre dans ton moteur tu pourrais aussi ajouter
Pour les debutant un systeme ou on choisirais le nom d'un objet invisible qu l'on metterais sur les tileset d'echelle ou de corde qui permettra au perso de monter :question:
Et aussi bonne chance :super: Oui, ok je vais préparer ca ;) Autre chose: Le fonctionement n'est pas compliqué, tous les objets considérés comme solides doivent avoir comme parent l'objet "Solides". |
|
| |
DeinDall Utilisateur confirmé: Rang ****
Messages : 858 Localisation : Quimper
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Ven 10 Déc 2010 - 21:29 | |
| pas mal, pas mal du tout^^ j'ai tester et, perso, "Konkratulaçion"^^ |
|
| |
zebdal Utilisateur confirmé: Rang *****
Messages : 2874 Localisation : Chez Vanilla Projet Actuel : Shrapnel
Kanon
Sengoku Rance Online
Vanilla H
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Ven 10 Déc 2010 - 22:57 | |
| je teste
EDIT: marche pas, j'ai pas gm8 -_- |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Sam 11 Déc 2010 - 1:43 | |
| ha sorry, je vais poster le code en supplément alors, il ne devrait pas y avoir de problème de compatibilité ;) |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Sam 11 Déc 2010 - 11:19 | |
| Comme tout boulo de Mr47 mérite respect, je suis allé tester, et ça marche nikel ! Je ne soulignerais que trois petits détails (qui ne sont pas forcément des erreurs ^^) -Perso, je trouve classe lorsque le personnage reste collé sur le sol lorsqu'il descend et que la pente n'est pas supérieur a 45° (1pxl vers l'avant pour 1 pxl vers le bas). -Changement de gravité ? (et oui, pour un moteur de plateforme, je pense que c'est la cerise sur le gâteau) -mmMM ! tu te sers de "parent" sur "solides" pour repérer les blocs solides ! Mince ! c'est pas con du tout, ça pourrait même te permettre d'avoir différents niveaux de profondeurs pour faire des effets spéciaux... (ça c'était un point positif). Bon et bien, bonne continuation, je garde un oeil la dessus |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Sam 11 Déc 2010 - 17:50 | |
| à défaut de pouvoir utiliser des classes, on utilise des objets, j'ai fait ca pour mieux structurer le moteur. Sinon c'est vrai que ya encore une faiblesse avec les slopes, je vais regarder ça ;) |
|
| |
zebdal Utilisateur confirmé: Rang *****
Messages : 2874 Localisation : Chez Vanilla Projet Actuel : Shrapnel
Kanon
Sengoku Rance Online
Vanilla H
| |
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Lun 13 Déc 2010 - 16:15 | |
| - zebdal a écrit:
- master47 a écrit:
- ha sorry, je vais poster le code en supplément alors, il ne devrait pas y avoir de problème de compatibilité ;)
1 jour que j'attends :noel: Voilà le code est sur le premier post. ;) Sinon pour la proposition de topaze, j'ai probablement une idée pour faire cela. |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out Sam 25 Déc 2010 - 12:47 | |
| bon ba on attend de voir ! |
|
| |
Contenu sponsorisé
| Sujet: Re: Platform Engine - Version 2.01 - Presets Rigides out | |
| |
|
| |
| Platform Engine - Version 2.01 - Presets Rigides out | |
|