| Les Exemples de Caly | |
|
+7M@d_Doc onilink_ D-z Topaze22 marty master47 Caly 11 participants |
|
Auteur | Message |
---|
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Les Exemples de Caly Dim 4 Mar 2012 - 2: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: PixelboyNotes: - Spoiler:
Les constantes : - UP - RIGHT - DOWN - LEFT Doivent forcement exister et avoir une valeur différente l'une de l'autre.
Les constantes: - PRESSED - CHECK - RELEASED Doivent forcement exister et avoir forcement comme valeur: PRESSED=1 RELEASED=2 CHECK=3
Le reste des constantes c'est au bon vouloir du joueur on peut en rajouter tant qu'on en veux avec les valeurs qu'on veux.
Tileset Auto Draw :Planche de 256 tuiles adaptées au script qui permet la création automatique de room. - Spoiler:
Save SystemSuite 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 ManagerSystè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. Menu en anneauUn menu en anneau animé comme dans "Secret of Mana". Tout est codé dans un seul Objet et complètement configurable sans toucher au cœur du code. J'ai commenté tout au maximum pour une meilleurs compréhension au possible. - Spoiler:
Message BoxUn objet gérant les messages écrits caractère par caractère et en couleur selon des balises personnalisables. L'objet est conçu de telle sorte que tout est paramétrable sans toucher au code. L'animation de l'image de fond se fait automatique avec deux variables (width/height). Les sauts de lignes saut automatiquement pris en comptes. On peut écrire un « # » si on écrit « \# », seul les chevrons (< >) ne peuvent pas êtres écrit sans provoquer un bug visuel. Nb: J’ai inclus des scripts/constantes qui gèrent les manettes car je l'utilise sur mon projet actuel. Nb2 : J’ai pour projet d’insérer une balise qui permet de faire une pause de quelques secondes avant que le texte ne continue de défiler mais ça sera pour plus tard. - Spoiler:
Dernière édition par Caly le Ven 31 Mar 2017 - 2:03, édité 13 fois |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Les Exemples de Caly Dim 4 Mar 2012 - 17:57 | |
| Pour améliorer ton moteur de bounce: applique la théorie des chocs élastiques ! c'est pas trop complexe à implémenter et c'est vachement plus réaliste |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Dim 4 Mar 2012 - 20: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) |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: Les Exemples de Caly Dim 4 Mar 2012 - 21: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. |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Lun 5 Mar 2012 - 9: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 Sinon pour les 'chocs élastiques' j'ai jeté un petit coup d'oeil ici : http://fr.wikipedia.org/wiki/Choc_%C3%A9lastiquele 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. |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Les Exemples de Caly Lun 5 Mar 2012 - 12: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 |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Dim 13 Mai 2012 - 4: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. |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Les Exemples de Caly Dim 13 Mai 2012 - 13: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.
|
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Les Exemples de Caly Dim 13 Mai 2012 - 13: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.
|
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Les Exemples de Caly Dim 13 Mai 2012 - 13: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. |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Dim 13 Mai 2012 - 14: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. |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Les Exemples de Caly Dim 13 Mai 2012 - 14:13 | |
| - Topaze22 a écrit:
- RAS à signaler.
Mon Dieu. _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Alec Utilisateur confirmé: Rang *
Messages : 183
| Sujet: Re: Les Exemples de Caly Lun 14 Mai 2012 - 17: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 ! |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Lun 14 Mai 2012 - 18: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 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é. |
|
| |
Alec Utilisateur confirmé: Rang *
Messages : 183
| Sujet: Re: Les Exemples de Caly Lun 14 Mai 2012 - 19:13 | |
| Hey c'est classe, j'essaierai d'intégrer tout ça ! |
|
| |
Alec Utilisateur confirmé: Rang *
Messages : 183
| Sujet: Re: Les Exemples de Caly Lun 14 Mai 2012 - 19:42 | |
| J'avoue, je veux bien voir ce que ça donne en vrai (genre un exemple) |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Lun 14 Mai 2012 - 19:59 | |
| |
|
| |
Alec Utilisateur confirmé: Rang *
Messages : 183
| Sujet: Re: Les Exemples de Caly Mar 15 Mai 2012 - 8: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 !!! |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Mar 15 Mai 2012 - 14: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. |
|
| |
Alec Utilisateur confirmé: Rang *
Messages : 183
| Sujet: Re: Les Exemples de Caly Mar 15 Mai 2012 - 18: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 ! |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Mar 15 Mai 2012 - 19:32 | |
| Non j'ai des pad Snes 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) ) |
|
| |
Alec Utilisateur confirmé: Rang *
Messages : 183
| Sujet: Re: Les Exemples de Caly Mer 16 Mai 2012 - 10: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)
|
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Mer 16 Mai 2012 - 16: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. |
|
| |
Alec Utilisateur confirmé: Rang *
Messages : 183
| Sujet: Re: Les Exemples de Caly Mer 16 Mai 2012 - 18: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) |
|
| |
Zwergf Plutôt bien
Messages : 42
| Sujet: Re: Les Exemples de Caly Mer 16 Mai 2012 - 22: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 |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Jeu 17 Mai 2012 - 4: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. |
|
| |
Zwergf Plutôt bien
Messages : 42
| Sujet: Re: Les Exemples de Caly Jeu 17 Mai 2012 - 13:44 | |
| Ah j'avais pas pensé à ça ! Merci ! |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Lun 1 Oct 2012 - 12:42 | |
| Ajout de Tileset Auto Draw.
D'autres trucs qui traînent sur mon pc devrais arriver sous peut normalement. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Les Exemples de Caly Lun 1 Oct 2012 - 13:28 | |
| Pourquoi t'as fait une planche de tiles qui contient plusieurs fois les même tiles? |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 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.
| Sujet: Re: Les Exemples de Caly Lun 1 Oct 2012 - 21: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. |
|
| |
Contenu sponsorisé
| Sujet: Re: Les Exemples de Caly | |
| |
|
| |
| Les Exemples de Caly | |
|