AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Bon plan achat en duo : 2ème robot cuiseur Moulinex Companion ...
600 €
Voir le deal

 

 Questions par Lemente

Aller en bas 
+4
-Coco-
Térence
GDOR1
Lemente
8 participants
AuteurMessage
Lemente
Petit bavard
Lemente


Messages : 58

Questions par Lemente Empty
MessageSujet: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 12:19

Bonjour,
depuis quelque temps j'essai de me mettre à gamemaker, mais je manque un peu d'assiduité ... j'ai donc décidé de chercherde l'aide et de la motivation sur un forum!
J'ai trouvé une idée de projet qui me plait et qui devrait me permettre d'approfondir certaines fonctionnalités de gamemaker (studio gratuit).
Je m'excuse par avance, je n'ai accès à internet que par mon téléphone, ce qui m'empêche l'accès à beaucoup de contenu (notamment les tutoriels vidéo ou le téléchargement de jeux).
(j'editerai ce message pour le compléter, mais je préfère faire en sorte de ne pas le perdre par erreur!! merci de votre compréhension Smile ).
Revenir en haut Aller en bas
Lemente
Petit bavard
Lemente


Messages : 58

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 13:17

(Bon, appartement je n'ai pas non plus accès à la fonction "editer" ...).

J'ai pour projet de faire une (pale) copie de BroForce (un super jeu dont la bêta est actuellement disponible gratuitement!).

Voici une liste des choses à faire:
-perso qui saute
-perso qui tire (je cherche comment tirer toutes les secondes lorsqu'on reste appuyer sur une touche)
-terrain destructibles
-grenade
-ennemies (avec une ia très simple)

Si je fais ça deja!
J'ajouterai beaucoup d'autres choses ensuite.

Ma première question concerne donc les tirs: je ne trouve pas comment faire un tir qui se répète avec un laps de temps choisi entre chaque tir lorsque l'on reste appuyer sur une touche .(le tire se répète tout les "tics" du jeu je crois).
Merci de votre aide!
(des mon retour dans un endroit civilisé, j'éditerai ces messages).
Revenir en haut Aller en bas
GDOR1
Très bonne participation
GDOR1


Messages : 130

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 14:26

Dans l'event de création, tu initialises une variables "temps_tirs", puis tu fait qu'à chaque step (soit dans l'event step) sa valeur est diminuée de 1, tant qu'elle est au dessus de 0 ! Soit :
Code:
if temps_tirs > 0
{
temps_tirs -= 1
}

Et que l'on ne puisse tirer que quand temps_tirs est égale 0, et ensuite mettre temps_tirs sur 1 seconde :
Code:
if temps_tirs = 0
if mouse_check_button(mb_left) //On ne tire que si on appuie sur le clic gauche de la souris
{
temps_tirs = //Le nombre de steps dans 1 seconde (généralement réglé sur 30)
//Code pour créer l'objet du tir
}


Dernière édition par GDOR1 le Mer 10 Juil 2013 - 14:28, édité 1 fois
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 14:28

Même problème içi : https://cbna.forumactif.com/t12358-resolu-bruit-de-pas
Sinon, bienvenue, le meilleur moyen d'apprendre GM c'est de se débrouiller par soi meme au maximum ; donc faut lire les tutos (dans la section Game Maker), lire la doc ( http://gamemaker.info/fr/manual ) et surtout persévérer.
Commence pas forcément par un projet très ambitieux, un casse brique c'est déjà pas mal pour un début ; si tu vise trop haut, tu va te retrouver bloqué toutes les 5 minutes...
Ah et pour le terrain destructible, ca risque d'être chaud si tu veux faire un truc digne de ce nom (genre pas des cases de 32*32 qui disparaissent entièrement) ; faudrait utiliser les data structures, et à mon avis c'est un peu prématuré gnii Par contre rien ne t'empeche de faire certains éléments destructibles (genre porte, fenetre,etc....) mais n'espère pas avoir un demi cercle arraché sur un mur après avoir balancé une grenade Yum! (cysteine parlait de développer un truc comme ca à un moment, je sais pas ce que c'est devenu par contre)
Bref, bonne chance !

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Lemente
Petit bavard
Lemente


Messages : 58

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 17:36

Merci, ça marche bien et c'est pratique!
Pour le terrain destructible, c'est vrai qu'un jeu style worms aurait été sympa, mais je vais me contenter de blocs de 32 pixels Smile
(allez voir Broforce, c'est vraiment bien!).
J'ai avancé sur le terrain destructible.
Par contre la grenade pose problème, je continu mes tests!
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 17:44

Une piste :
- tu parcours la liste de tous les objets : une boucle for. Tu peux récupérer le nombre d'objets avec la variable instance_count, et un objet particulier avec instance_id[index].
- tu regarde si il s'agit d'un objet destructible : objet_index te retourne le nom de l'objet (sous forme de constante)
- si oui, tu regarde la distance entre la grenade et l'objet ; avec point_distance(), ou distance_to_object().
- si elle est inférieure à une certaine valeur, alors tu détruit l'objet ainsi : with(id_de_l_objet) instance_destroy();

Pour des ennemis, tu peux calculer les dégâts en fonction de la distance au lieu de simplement les détruires. Voilà, en principe tu devrais pas avoir trop de mal à coder ca toit même Smile

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
GDOR1
Très bonne participation
GDOR1


Messages : 130

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 18:00

Au pire, pour le terrain destructible, on peut utiliser une surface (que l'on actualise seulement à chaque explosion), qui est convertie en sprite pour un objet terrain. Et à chaque explosion on fait un draw_circle en bm_subtract, non ?
Revenir en haut Aller en bas
-Coco-
Utilisateur confirmé: Rang ***
-Coco-


Messages : 545
Localisation : Grenoble - Montpellier
Projet Actuel : Orion VII - 0%

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 20:08

Ou alors tu es patient et tu utilise 1 objet par case de terrain, avec par exemple une vie, qui quand elle descend à 0 supprime l'objet...

_________________
Oh, snap.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 23:37

GDOR1 a écrit:
Au pire, pour le terrain destructible, on peut utiliser une surface (que l'on actualise seulement à chaque explosion), qui est convertie en sprite pour un objet terrain. Et à chaque explosion on fait un draw_circle en bm_subtract, non ?
C'est vraiment pas con, j'aurais jamais pensé à ca gha 
A mon avis, ca reste quand même chaud à faire, mais ia moyen Smile J'essayerais de faire ca un de ces quatres, mais avoir les impacts de balles dans les murs pour pratiquement aucune perte de FPS.... money
Coco> ben c'est ce que je disais, mais ca reste assez moyen niveau visuel. Par contre, je viens d'y penser, on pourrait faire que quand un bloc est dans le rayon d'action de la grenade, il se subdivise en plusieurs petits blocs, ca fait moins pixelisé, et ca bouffe moins que de mettre uniquement de petits carrés. Mais dans tous les cas, ca reste moins optimisé que la solution de GDOR1, et difficilement faisable à grande échelle avec GM.

Bref, merci pour l'idée GDOR1, je vous tiendrait au courant si ca marche (bon le truc c'est que j'ai jamais utilisé les surfaces, et pratiquement jamais les blend modes, mais à part ca gnii )

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyMer 10 Juil 2013 - 23:51

La conversion surface > sprite est assez lente, du coup dès que la map est un peu grande ça ram bien...
Y a aussi la solution de détecter les collisions directement sur la surface, mais faut oublier les fonction place_free & co de GM.
http://host-a.net/u/onilink_/Destructible.rar
Et niveau perfs c'est toujours pas top...

_________________
Questions par Lemente Runningpotato1Questions par Lemente TvF6GED Questions par Lemente MdetltS
Revenir en haut Aller en bas
GDOR1
Très bonne participation
GDOR1


Messages : 130

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyJeu 11 Juil 2013 - 9:28

Pour éviter que le terrain entier soit chargé, on peut aussi le diviser en plusieurs surfaces. Et seuls les surfaces visibles seront actualisées.

Bon, et puis aussi je pense pas qu'avec le terrain destructible, on va faire des maps gigantesques ! C'est plutôt pour des petits combats ou on fait tout pêter ! Yum!
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyJeu 11 Juil 2013 - 10:29

Bah le soucis c'est quand dans un jeu style worms, toutes les surfaces sont susceptibles d'être actualisées (genre après un armagedon).
Bref sous GM ce genre de truc faut pas trop en vouloir...

_________________
Questions par Lemente Runningpotato1Questions par Lemente TvF6GED Questions par Lemente MdetltS
Revenir en haut Aller en bas
Mobi
Utilisateur confirmé: Rang ****
Mobi


Messages : 1256
Localisation : Dijon

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyJeu 11 Juil 2013 - 11:12

C'est faisable facilement avec extrême physique

_________________
Questions par Lemente Penguin
Revenir en haut Aller en bas
Alexandre13660
Bavard
Alexandre13660


Messages : 98
Projet Actuel : Cerebral Teste

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyVen 12 Juil 2013 - 17:17

Sur quelques site, il y a des tutoriels.
http://www.lecbna.org/
http://secondarts.com/
http://www.siteduzero.com/informatique/tutoriels/creez-vos-jeux-avec-game-maker
Et plein d'autres !
Puis après tu peut apprendre le langage sur le forum.
Revenir en haut Aller en bas
Lemente
Petit bavard
Lemente


Messages : 58

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyDim 3 Aoû 2014 - 23:57

Petit déterrage de topic, ça m'évite d'en recréer un ...
Je continu mon très lent apprentissage de Game Maker, toujours un jeu de plateforme.

Je me posait une question, mais j'ai du mal à la formuler dans un moteur de recherche ...

Faut il que les hitbox des sprites d'un même personnage soient toutes identiques?

J'ai croisé ce très joli sprite:

Questions par Lemente Pixle_sprites_idle_walk_run_by_moonphanter-d6iqf27

Et j'ai eu envie de le faire bouger dans gamemaker. Mais j'ai vite eu des problèmes de collisions, le sprite étant très fin.
Comment gérer ce genre de personnages?
Est ce que je fait une hitbox très fine, et tant pis si les jambes passent à travers le décor?
J'ai aussi pensé empêcher le démarrage de l'animation si le perso est trop près d'un mur.
Voir même, mais je ne vois pas trop comment faire, démarrer l'animation, et l'arrêter dès que le sprite est en contact avec un solid. (Peut être en utilisant l'option "precise collision checking", je viens d'y penser en écrivant ça).

Bref, si vous avez des idées, ou déjà eu cette expérience, ça m'intéresse !
Je ferais des tests demain.

Merci !
Revenir en haut Aller en bas
Asu
Utilisateur confirmé: Rang ****
Asu


Messages : 895

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyLun 4 Aoû 2014 - 9:38

Non la collision précise ça fera très bizarre. Mets une hitbox plus large que le perso mais quasiment aussi haute, ça devrait le faire

_________________
‎<‎Cysteine‎>‎ nON mais la touche maj s'active/se désactive toute seule
‎<‎Cysteine‎>‎ et a du mal à réponDRE QUANd j'appuie dessus
‎<‎Cysteine‎>‎ et je l'ai démont2? IL Ny a rien DEDANs
Revenir en haut Aller en bas
Lemente
Petit bavard
Lemente


Messages : 58

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyLun 4 Aoû 2014 - 10:07

Soundii a écrit:
Non la collision précise ça fera très bizarre. Mets une hitbox plus large que le perso mais quasiment aussi haute, ça devrait le faire

Je vais commencer par ça, merci.

Mais du coup mon perso ne va pas s'arrêter très près des obstacles.
Peut être que ce genre de perso n'est pas vraiment fait pour du plateformer type mario?

Si vous avez d'autres idées qui traînent Wink (ou des lies sur le sujet ...)

merci !

Edit: tant qu'a faire, autre question: j'ai essayé la hitbox elliptique sur un personnage, et ça m'a réglé certains problèmes de collisions (montée d'un escalier, et plus de souplesse lorsque on se prend le coin d'une plateforme).
Mais est ce que c'est vraiment une solution? ça ne risque pas de poser problème pour d'autres choses?
Je vais l'essayer pour mon précédent problème, voir ce que ça donne.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyLun 4 Aoû 2014 - 11:39

En général dans les jeux de plateforme les persos ont une hitbox rectangulaire. Avec tes trois sprites, ce que je ferais à ta place c'est leur mettre chacun une hitbox différente, puis tester dans cet ordre :
si la hitbox du bonhomme qui court ne rencontre pas d'obstacle (et que la touche courir est enfoncée), bah bouger en courant.
Autrement, si la hitbox du type qui marche rentre, bah le faire en marchant.

Comme ca quand tu t'approche d'un mur, il arrête de courir et tu t'approche au plus près du mur sans y rentrer. Bon après faut tester in-game comment ca rend, mais le truc elliptique à mon avis ce sera pas du tout réaliste, et pour les escaliers c'est pas comme ca qu'il faut faire.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente EmptyLun 4 Aoû 2014 - 11:39

Y a pas de solutions miracles pour les hitboxes, dans tous les cas, il faut qu'elle soit identique pour pas que tu te retrouves coincé dans un mur dès que tu changes de sprite.
Bien que plusieurs hitbox pour un perso soient possibles (genre jeux a la metroid), mais cela implique de faire des vérifications avant de passer de l'une a l'autre (si la hitbox est plus grande, pour pas se retrouver coincé).

Pour la hitbox en général on utilise un rectangle, mais certains jeux utilisent des formes assez différentes, par ex:
https://i.imgur.com/vCnIJ.png
Le plus dur étant d'obtenir le résultat le plus fidèle pour la physique, et toutes les frames d'animation..

_________________
Questions par Lemente Runningpotato1Questions par Lemente TvF6GED Questions par Lemente MdetltS
Revenir en haut Aller en bas
Contenu sponsorisé





Questions par Lemente Empty
MessageSujet: Re: Questions par Lemente   Questions par Lemente Empty

Revenir en haut Aller en bas
 
Questions par Lemente
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Questions en 3D
» Questions de Shikor.
» J'ai plusieurs questions
» Plusieurs questions
» Questions : Jeu d'avion GM

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: