AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Les Exemples de Caly

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Les Exemples de Caly   Dim 4 Mar 2012 - 1:09

Ceci n'est pas vraiment un projet en lui même mais un regroupement de moteurs de jeux.

Pour rester organisé je les postes tous ici au même endroit, ça évite d'avoir dix topics pour des petits moteurs sans prétentions.

Tout les moteurs sont réalisés sous GM8Pro.

Puzzle Engine:
Un moteur qui permet de détruire des bloques formant une chaîne de connections.
Il permet de créer tout un tas de jeux basés sur le placement de cubes/boite à empiler.
Très simple d’utilisation et très léger il vous permettra de créer un jeu en très peut de temps.
Spoiler:
 


Bounce Engine:
Un moteur qui gère les rebonds et la gravité des pentes.
Spoiler:
 


Joystick Control:
La gestion complète de la manette avec une utilisation simple et intuitive basé sur des Constantes, le tout en trois scripts.
Spoiler:
 
Graphismes: Pixelboy
Notes:
Spoiler:
 


Tileset Auto Draw :
Planche de 256 tuiles adaptées au script qui permet la création automatique de room.
Spoiler:
 



Save System
Suite de fonctions qui permettent une sauvegarde facile et sécurisée.
La sauvegarde se fait dans un fichier de votre choix protégée par un mot de passe le tout enregistré en binaire.
(compatible uniquement avec les versions de GM supportant les "ds_map_writte")


Time Manager
Système qui permet de gérer l'heure dans son jeu avec un seul script et quelques constantes de manière très simple.
Le système est basé sur le FPS et non sur une unité de temps réel, les secondes par FPS sont configurables par une variable.


Dernière édition par Caly le Sam 14 Fév 2015 - 11:12, édité 7 fois
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

MessageSujet: Re: Les Exemples de Caly   Dim 4 Mar 2012 - 16:57

Pour améliorer ton moteur de bounce: applique la théorie des chocs élastiques ! Smile c'est pas trop complexe à implémenter et c'est vachement plus réaliste

_________________
Suivez la timeline ! The PacWars Timeline
C# .NET, Web & Sound Design.
---
Oldies: http://livegallery.lescigales.org/
Lawl :
Spoiler:
 
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Dim 4 Mar 2012 - 19:26

Merci pour ton intérêt master47.
Je n'ai rien codé celons les lois de la physiques (car je n'y connais strictement rien), j'ai fait ça a l'oeil, du coup c’est pas forcement réel comme mouvement mais pour mon projet actuel ça me conviens.
Mais je compte effectivement lire des cours de physiques pour compléter ce moteur qui je pense peut être intéressant pour pas mal de personnes/projets.

En tout cas merci pour la piste à lire (théorie des chocs élastiques) Wink
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***


Messages : 697
Projet Actuel : laby-ereinte !

MessageSujet: Re: Les Exemples de Caly   Dim 4 Mar 2012 - 20:44

salut pour le moteur bounce pourrais ajouter un état "repos" à la balle ,car quand elle est entre les deux pentes qui forme un v elle oscille.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Lun 5 Mar 2012 - 8:34

Bonjour,

pour l'oscillement je ne sais pas trop comment faire.
Il se produit car j'ai mis que s'il est sur une pente il prend de la vitesse inverse à la direction de la pente.
Si je lui met un état repos le corps ne sera plus autonome sur les descentes de pentes ou sur les rebords de murs.

Ça deviens trop compliqué pour moi après ce stade Razz

Sinon pour les 'chocs élastiques' j'ai jeté un petit coup d'oeil ici : http://fr.wikipedia.org/wiki/Choc_%C3%A9lastique
le truc c'est que c'est des formules pour deux corps en mouvements et que là je ne gère qu'un corps en mouvement et un corps inerte.

J'ai regardé quelque formules de physiques et perso' j'y comprend rien, c'est trop complexe pour ma petite tête.
Revenir en haut Aller en bas
master47
Utilisateur confirmé: Rang *****


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

MessageSujet: Re: Les Exemples de Caly   Lun 5 Mar 2012 - 11:12

Le choc elastique intervient si tu places plusieurs balles en mouvement et qu'elles se frappent l'une l'autre, mais si en effet tes murs sont statiques alors le choc devient inelastique, va voir de ce coté là, ya plein d'exemples sur le net Smile

_________________
Suivez la timeline ! The PacWars Timeline
C# .NET, Web & Sound Design.
---
Oldies: http://livegallery.lescigales.org/
Lawl :
Spoiler:
 
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Dim 13 Mai 2012 - 2:29

Rajout de "Joystick control" car marre de voir de jeux durs jouable seulement au clavier.... Vus la simplicité de la mise en place vous n'avez plus aucunes excuses de pas gérer les manettes!

Par contre mes manettes n'ayant pas de joystick (POV) je ne l'ai pas intégré car je ne peut pas tester.
Revenir en haut Aller en bas
Topaze22
*Excellent utilisateur*


Messages : 6213
Localisation : Sur la Lune
Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World

MessageSujet: Re: Les Exemples de Caly   Dim 13 Mai 2012 - 11:11

Bonjour Caly !

J'ai regardé ton bounce engine, RAS à signaler.

J'ai voulu regardé ton lien concernant les joysticks, mais il est mort ^^

PS : dans mon projet, je prends en compte 3 touches pour le player 1, 3 touche pour le player deux et c'est compatible deux joysticks, le touche sans que l'on est jamais rien à configurer ^^ (yeay, Topaze number ouane)

_________________
Topique pour le Projet Hello Mario en préparation.
Sorti du topique lorsque la première démo sera disponible.
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****


Messages : 1607
Localisation : Clermont-Ferrand

MessageSujet: Re: Les Exemples de Caly   Dim 13 Mai 2012 - 11:14

Le POV ce n'est pas le joystick (ça c'est les axis), c'est le D-Pad : -1 au repos, un angle si une direction ou plus sont pressées (0, 45, 90, 135... 315).

Edit: le lien est mort :/

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
onilink_
Modérateur


Messages : 8823
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Les Exemples de Caly   Dim 13 Mai 2012 - 11:49

Ouaip, fallait pas copier le lien généré, il se détruit au bout de quelques heures :b
Et +1 pour le pov. Sur une manette de 360 c'est la vielle croix en bas a gauche.

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Dim 13 Mai 2012 - 12:03

Ok pour le POV mais j'ai des manettes des années 90 (copie de snes) donc j'ai codé celons ce que j'ai sous la main.

Le lien et corrigé et j'ai mis des notes dans le premier post.
Revenir en haut Aller en bas
M@d_Doc
Modérateur


Messages : 6597
Localisation : 47°44'8.04
Projet Actuel : aucun

MessageSujet: Re: Les Exemples de Caly   Dim 13 Mai 2012 - 12:13

Topaze22 a écrit:
RAS à signaler.
Mon Dieu.

_________________
Tous les icones de gm utilisables sur le cbna ICI
Revenir en haut Aller en bas
http://www.lecbna.org
Alec
Utilisateur confirmé: Rang *


Messages : 181

MessageSujet: Re: Les Exemples de Caly   Lun 14 Mai 2012 - 15:19

Caly a écrit:
Rajout de "Joystick control" car marre de voir de jeux durs jouable seulement au clavier....

Je me sent visé là ^^ !

Je serai bien curieux de voir tes scripts !
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Lun 14 Mai 2012 - 16:53

Citation :
Je me sent visé là ^^ !

Je serai bien curieux de voir tes scripts !

Toi tu as eu l'effort de mettre un simulateur de touches avec ton jeu.

Sinon pour regarder les scripts il y a juste à télécharger l'exemple Razz

Apres tu créer des constantes : "Ressources -> Define Constants"

et tu remplace dans ctrlInit:
Code:

    ds_map_add(i, JUMP,  vk_space );    ds_map_add(j, JUMP,  1);
    ds_map_add(i, CHANGE, ord('X') );              ds_map_add(j, CHANGE, 2);
    ds_map_add(i, PAUSE,  ord('P') );                ds_map_add(j, PAUSE,  99);
                                           
                                                                    //Ne pas toucher
    ds_map_add(i, UP,    vk_up );                    ds_map_add(k, UP,    0);
    ds_map_add(i, RIGHT,  vk_right );              ds_map_add(k, RIGHT, 0);
    ds_map_add(i, DOWN,  vk_down );            ds_map_add(k, DOWN,  0);
    ds_map_add(i, LEFT,  vk_left );                  ds_map_add(k, LEFT,  0);

Par ce que tu veux.

Exemple pour Nano Force tu utilise "entrer" pour passer les ecrans " X pour tirer et C pour l'autre tir.
Pour les direction tu utilise les fleches.
Ce qui donne:

Constantes:
KEY_X=0;
KEY_C=1;
START=2;

Et le code dans ctrlInit:
Code:

    ds_map_add(i, KEY_X,  ord('X') );              ds_map_add(j, KEY_X,  1);
    ds_map_add(i, KEY_C,  ord('C') );              ds_map_add(j, KEY_C, 2);
    ds_map_add(i, START,  vk_enter) );          ds_map_add(j, START, 3);
                                           
                                                                    //Ne pas toucher
    ds_map_add(i, UP,    vk_up );                    ds_map_add(k, UP,    0);
    ds_map_add(i, RIGHT,  vk_right );              ds_map_add(k, RIGHT, 0);
    ds_map_add(i, DOWN,  vk_down );            ds_map_add(k, DOWN,  0);
    ds_map_add(i, LEFT,  vk_left );                  ds_map_add(k, LEFT,  0);

Dans la ds_map 'j' les valeurs c'est le numéro de bouton.


Ensuite au lieu de faire :
Code:
if( keyboard_check_pressed(vk_enter)  ){}
tu fait
Code:
if( ctrlButton(START,PRESSED) ){}

Ce qui marchera pour la pression de la touche entrer ET la touche 3 de la manette.

Voilà, pas plus compliqué.





Revenir en haut Aller en bas
Alec
Utilisateur confirmé: Rang *


Messages : 181

MessageSujet: Re: Les Exemples de Caly   Lun 14 Mai 2012 - 17:13

Hey c'est classe, j'essaierai d'intégrer tout ça !
Revenir en haut Aller en bas
Alec
Utilisateur confirmé: Rang *


Messages : 181

MessageSujet: Re: Les Exemples de Caly   Lun 14 Mai 2012 - 17:42

J'avoue, je veux bien voir ce que ça donne en vrai (genre un exemple)
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Lun 14 Mai 2012 - 17:59

Bha il y a le lien dans le premier post (le titre des exemples)

-> http://www.host-a.net/u/Caly/joystick_control.gmk

Edit : oublie pas de regarder les constantes pour comprendre d'où viennent mes variables.
Revenir en haut Aller en bas
Alec
Utilisateur confirmé: Rang *


Messages : 181

MessageSujet: Re: Les Exemples de Caly   Mar 15 Mai 2012 - 6:12

J'arrive pas à intégrer ça à mon jeu (en fait les fonctions de saut m'embrouillent un peu)

Sinon, je vois bien le principe, et la maniabilité de ton personnage est très bonne !!!
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Mar 15 Mai 2012 - 12:54

Pour Nano voici la procédure:




Tu créer un fichier ".txt".
Dedant tu colle:
Code:

UP=0
RIGHT=1
DOWN=2
LEFT=3

PRESSED=1
CHECK=3
RELEASED=2

START=0
KEYX=1
KEYC=2

Dans ton GMK tu va dans "Resources->Define Constants" et tu "Load" ton fichier ".txt".
Voilà tes Constantes sont définis.





Ensuite tu importe les trois fonctions:
- ctrlInit
- ctrlUpdate
- ctrlButton




Apres ça tu modifie le script "ctrlInit".
Dans la section "Definition des touches par defaut."

Tu la remplace par :
Code:
 
    //-------------------------------------------------
    //--- Definition des touches par defaut. ----------
    //-------------------------------------------------
    ds_map_add(i, START,  vk_enter );      ds_map_add(j, START,  3);
    ds_map_add(i, KEYX,    ord('X') );          ds_map_add(j, KEYX,    1);
    ds_map_add(i, KEYC,    ord('C') );        ds_map_add(j, KEYC,    2);                                             
   
                                                              //Ne pas toucher
    ds_map_add(i, UP,    vk_up );              ds_map_add(k, UP,    0);
    ds_map_add(i, RIGHT,  vk_right );        ds_map_add(k, RIGHT, 0);
    ds_map_add(i, DOWN,  vk_down );      ds_map_add(k, DOWN,  0);
    ds_map_add(i, LEFT,  vk_left );            ds_map_add(k, LEFT,  0);




Apres il te faut un objet "maître" qui est présent tout le long du jeu.
Si tu en as pas tu le créer, généralement on le nome "Main".
Tu le place dans la première salle de ton jeu, tu le coche persistant et non solide avec aucun sprite.

Dans son Create tu fait:
Code:
ctrlInit();
Dans Begin Step:
Code:
ctrlUpdate();

Et voilà, à tout le débuts de step les touches seront mises à jours.




Ensuite la partie chiante tu remplace toutes tes conditions:
keyboard_check/pressed/released de tout ton jeu.

Exemple pour ton vaisseau.
if( ctrlButton(UP,CHECK) ) y-=3;
if( ctrlButton(DOWN,CHECK) ) y+=3;
etc...



C'est pas compliqué, j’espère que mon explication t'aidera.

Revenir en haut Aller en bas
Alec
Utilisateur confirmé: Rang *


Messages : 181

MessageSujet: Re: Les Exemples de Caly   Mar 15 Mai 2012 - 16:49

Ouais, ça devrait aller, j'avais pas compris "ressources" mais ça devrait rouler je pense !

Hey ça fonctionne bien pour la direction, par contre, pour les tirs, quand j'appuie sur la direction droite ça tire tout seul (en rouge ou en bleu) comme si X ou C étaient pressés alors que non !

je précise que j'ai remplacé les :
"if(keyboard_check(vk_up)" par" if( ctrlButton(UP,CHECK)"

et aussi les :
"if (keyboard_check(ord('C')))" par" if (j, KEYX, 1);"


J'utilise un pad bas de gamme aussi peut être que toi tu joues avec un pad 360 !
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Mar 15 Mai 2012 - 17:32

Non j'ai des pad Snes Smile

L’erreur viens de là :
Citation :

et aussi les :
"if (keyboard_check(ord('C')))" par" if (j, KEYX, 1);"

les
Code:
if (keyboard_check(ord('C')))
deviennent:
Code:
if( ctrlButton(KEYC,CHECK) )
et les
Code:
if (keyboard_check(ord('X')))
deviennent
Code:
if( ctrlButton(KEYX,CHECK) )
Revenir en haut Aller en bas
Alec
Utilisateur confirmé: Rang *


Messages : 181

MessageSujet: Re: Les Exemples de Caly   Mer 16 Mai 2012 - 8:37

J'ai fait comme tu as expliqué mais quand je déplace mon vaisseau et que je me dirige :
-à droite, j'ai le "oplayershot2" qui est tiré
-en bas, c'est le "oplayershot1"
-diagonale bas droite les deux tirs sont créés !



Code:
if( ctrlButton(KEYC,CHECK) )

instance_create(x, y, oplayershot1) 
   

/////////////////////////////////////////////////
if( ctrlButton(KEYX,CHECK) )


instance_create(x, y, oplayershot2)
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Mer 16 Mai 2012 - 14:01

C'est ma faute, change juste les valeurs des constantes START, KEYX et KEYC par 4, 5 et 6. Et normalement tout est ok.
Revenir en haut Aller en bas
Alec
Utilisateur confirmé: Rang *


Messages : 181

MessageSujet: Re: Les Exemples de Caly   Mer 16 Mai 2012 - 16:06

ça fonctionne à merveille merci l'ami !

reste plus qu'à rebosser tout le système de tir, j'ai un autre gros problème mais lié à mon code cette fois (post dans mon sujet nanoforce à ce sujet)
Revenir en haut Aller en bas
Zwergf
Plutôt bien


Messages : 42

MessageSujet: Re: Les Exemples de Caly   Mer 16 Mai 2012 - 20:15

Moi je regarde en long en large et en travers le moteur du bounce engine pour voir ce qui fait exactement que même à une speed de 99 la balle ne rentre pas dans les murs et touche quoiqu'il arrive le rebord avant de rebondir gnii
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Jeu 17 Mai 2012 - 2:46

C'est parce-que je vérifie les déplacements pixel par pixel.
Si tu met une vitesse de 99pixels par frame et bien je vérifie 99 fois si je peut me déplacer.
Revenir en haut Aller en bas
Zwergf
Plutôt bien


Messages : 42

MessageSujet: Re: Les Exemples de Caly   Jeu 17 Mai 2012 - 11:44

Ah j'avais pas pensé à ça ! Merci !
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Lun 1 Oct 2012 - 10:42

Ajout de Tileset Auto Draw.

D'autres trucs qui traînent sur mon pc devrais arriver sous peut normalement.
Revenir en haut Aller en bas
onilink_
Modérateur


Messages : 8823
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Les Exemples de Caly   Lun 1 Oct 2012 - 11:28

Pourquoi t'as fait une planche de tiles qui contient plusieurs fois les même tiles?

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****


Messages : 1262
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Les Exemples de Caly   Lun 1 Oct 2012 - 19:23

En fait ce n'est pas vraiment les mêmes tuiles mêmes si c'est le même, tu me suis? faut être Aouére pour comprendre.
Genre c'est pareil mais au fond c'est pas pareille quoi.
Faut voir au plus profond des tuiles.
Sentir leurs âmes.
Les respirer, s'imprégner de leurs profondeurs.
Voir leurs auras au fin fond de ta conscience.

Bon sinon une explication non-belge (dsl pour les Belges mais bon elle est à vous la mascotte):
Les tuile sont composé de deux calques. Le calque X et le calque Y.

X:
Spoiler:
 

Y:
Spoiler:
 

Ensuite tu les fusionnent sur les 256 tuiles pour pas te prendre la tête, et forcement ça donne des trucs identiques, mais ça évite des conditions dans le code et ça simplifie la vie contre quelques petits octets de plus en tuiles.
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Les Exemples de Caly   Aujourd'hui à 3:01

Revenir en haut Aller en bas
 
Les Exemples de Caly
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Infos section: tutoriels et exemples
» Banque d'exemples C++
» [Ressources] Banque d'exemples Game Maker
» Le positionnement géographique
» Première construction diapo

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Informations :: Projets-
Sauter vers: