GameMaker - FAQ
- psychogore
- 1 crédit c'est déjà trop
- Messages : 2358
- Inscription : 23 mai 2003, 09:04
perso, je serais plus partisan de l'affichage de l'ombre dans la methode draw.
En effet, il y a moyen, en fonction de l'altitude supposée de l'objet, de zoomer ou dezoomer cette ombre, ou de la decaler pour renforcer l'effet de profondeur.
Et en plus, si 2 ennemis se touchent en ayant l'ombre comme partie du sprite, ça va faire bizarre...
En effet, il y a moyen, en fonction de l'altitude supposée de l'objet, de zoomer ou dezoomer cette ombre, ou de la decaler pour renforcer l'effet de profondeur.
Et en plus, si 2 ennemis se touchent en ayant l'ombre comme partie du sprite, ça va faire bizarre...
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
J'y réfléchirais surement en temps voulu à mon avis quand il sera question d'optimisation.
Après quand je vois les ombres dans les caves qui s'affiche sur... du vide ? Je me dis que c'est de l'ordre du détail.
Après quand je vois les ombres dans les caves qui s'affiche sur... du vide ? Je me dis que c'est de l'ordre du détail.
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
J'essaye de passer le jeu en 60 fps et comme prévu j'ai des déplacements de 0.5 à faire. Manque de bol pour moi ça marche pas. Faut définir les variables d'une manière particulière ? J'ai le souvenir que sous processing il y avait une distinction int/float si c'était des nombres entiers ou pas.
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3404
- Inscription : 15 mai 2006, 15:26
- Localisation : Rayon chaussettes du Kiabi du coin
- Contact :
Moi pas comprendre...
Soit tu t'y prend mal, soit effectivement, c'est pas possible...
Mais ce qui me surprend, c'est que j'arrive à avoir des valeur de déplacement de type float pour un step.
Quand je met en place de l'inertie, y a un minimum de friction et celle-ci n'est jamais parfaitement entière... Je me retrouve généralement avec une vitesse en float et rarement sur des trajectoires rectilignes. Et j'utilise ces données de type float sans les arrondir. J'ai testé avec des valeurs arrondies, et ca donne parfois des déplacements étranges que je ne veux pas
j'ai déjà eu des friction de l'ordre du 0.2 et aucun soucis pour les vitesses entre 1 et 0 px/step.
Soit tu t'y prend mal, soit effectivement, c'est pas possible...
Mais ce qui me surprend, c'est que j'arrive à avoir des valeur de déplacement de type float pour un step.
Quand je met en place de l'inertie, y a un minimum de friction et celle-ci n'est jamais parfaitement entière... Je me retrouve généralement avec une vitesse en float et rarement sur des trajectoires rectilignes. Et j'utilise ces données de type float sans les arrondir. J'ai testé avec des valeurs arrondies, et ca donne parfois des déplacements étranges que je ne veux pas
j'ai déjà eu des friction de l'ordre du 0.2 et aucun soucis pour les vitesses entre 1 et 0 px/step.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
Y'a peut être eu un problème quelque part, j'y rejetterais un oeil demain.
Mais tu déclare la variable en question comme float ou GM fait ça tout seul ?
Edit : Alors en effet je viens de tester un déplacement tout bête de 0.5 et ça marche. Probablement des interactions qui ont fait merder le truc. Je ressayerais ça demain pour voir où ça a merdé.
Mais tu déclare la variable en question comme float ou GM fait ça tout seul ?
Edit : Alors en effet je viens de tester un déplacement tout bête de 0.5 et ça marche. Probablement des interactions qui ont fait merder le truc. Je ressayerais ça demain pour voir où ça a merdé.
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3404
- Inscription : 15 mai 2006, 15:26
- Localisation : Rayon chaussettes du Kiabi du coin
- Contact :
GM considère toute les variable signed float.
Ca évite de devoir spécifier.
Mais on peut très bien direà GM que telle ou telle variable est un entier relatif ( toutes les variables seront signées )
Ca évite de devoir spécifier.
Mais on peut très bien direà GM que telle ou telle variable est un entier relatif ( toutes les variables seront signées )
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
Alors je viens de faire des tests, aucun problème pour faire bouger un objet de 0.5, par contre impossible de faire bouger ma view de 0.5.
view_yview[0] -= 0.5;
Ça, ça marche pas.
T'as une idée ou je vais être obligé de faire défiler mon background plutôt que ma view ?
EDIT :
Visiblement gamemaker sait pas faire ça, du coup j'ai bidouillé ça :
Je mérite un supplice pour un affront pareil ?
view_yview[0] -= 0.5;
Ça, ça marche pas.
T'as une idée ou je vais être obligé de faire défiler mon background plutôt que ma view ?
EDIT :
Visiblement gamemaker sait pas faire ça, du coup j'ai bidouillé ça :
Code : Tout sélectionner
if(BLABLABLA)
view_yview[0] -= 1;
else
{
if(incre==true)
{
view_yview[0] -= 1;
incre=false
}
else
incre=true
}
Dernière modification par back le 02 déc. 2010, 17:19, modifié 1 fois.
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3404
- Inscription : 15 mai 2006, 15:26
- Localisation : Rayon chaussettes du Kiabi du coin
- Contact :
Fait un objet que la view suivra.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-
- Empereur Bydo
- Messages : 3404
- Inscription : 15 mai 2006, 15:26
- Localisation : Rayon chaussettes du Kiabi du coin
- Contact :
C'est pas le bon topic
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-
- Empereur Bydo
- Messages : 3404
- Inscription : 15 mai 2006, 15:26
- Localisation : Rayon chaussettes du Kiabi du coin
- Contact :
Oui c'est possible...
Un peu complexe cela dit. Et comme j'ai jamais travaillé la dessus, je peux pas te donner une solution toute faite.
Il doit etre possible de partir d'un rayon de cercle, et de dessiner un sprite en faisant subir une rotation à ton rayon...
Je serai parti sur cette idée pour ma part.
En fait, c'est le principe justement de la montre, sauf que tu n'effaces pas la position des aiguilles précédentes
Un peu complexe cela dit. Et comme j'ai jamais travaillé la dessus, je peux pas te donner une solution toute faite.
Il doit etre possible de partir d'un rayon de cercle, et de dessiner un sprite en faisant subir une rotation à ton rayon...
Je serai parti sur cette idée pour ma part.
En fait, c'est le principe justement de la montre, sauf que tu n'effaces pas la position des aiguilles précédentes
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
- Alec
- King Fossile
- Messages : 15826
- Inscription : 12 juil. 2004, 18:04
- Localisation : nstc-j
Si je faisait une jauge...
Vu que tu peux définir l'index du sprite en fonction d'actions, ça te donne un truc complêtement réglable !
J'aurai fait un sprite qui effectue son cycle (pendant ou en fonction de un tir/bonus glané/charge etc...)
Et inversement quand tu largue la bombe ou le tir spécial pour "vider la gauge"
Enfin si tu veux un truc parfaitement fluide, ok le truc dont vous parlez ça devrait faire l'affaire !
Vu que tu peux définir l'index du sprite en fonction d'actions, ça te donne un truc complêtement réglable !
J'aurai fait un sprite qui effectue son cycle (pendant ou en fonction de un tir/bonus glané/charge etc...)
Et inversement quand tu largue la bombe ou le tir spécial pour "vider la gauge"
Enfin si tu veux un truc parfaitement fluide, ok le truc dont vous parlez ça devrait faire l'affaire !
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
Mais un sprite qui fait un simple cycle il peut garder affiché chacune de ses positions ?
Sinon j'ai trouvé un script pour tracer des camemberts. Mais du coup on peux ajouter un masque par dessus pour avoir un filet et pas un disque ?
Sinon j'ai trouvé un script pour tracer des camemberts. Mais du coup on peux ajouter un masque par dessus pour avoir un filet et pas un disque ?
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
Bon j'ai essayé le script que j'ai linké plus haut et ça marche pas mal :
Bon c'est pas un filet mais un disque.
Pour le moment c'est pas très beau mais au moins ça marche.
Par contre plus ça va et plus j'ai des petits lags pas très catholiques qui ne sont pas liés à la quantité de boulettes.
Edit : En fait je l'ai pas du tout linké, le voilà : http://forums.yoyogames.com/forums/10/t ... 748?page=2
Bon c'est pas un filet mais un disque.
Pour le moment c'est pas très beau mais au moins ça marche.
Par contre plus ça va et plus j'ai des petits lags pas très catholiques qui ne sont pas liés à la quantité de boulettes.
Edit : En fait je l'ai pas du tout linké, le voilà : http://forums.yoyogames.com/forums/10/t ... 748?page=2
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3404
- Inscription : 15 mai 2006, 15:26
- Localisation : Rayon chaussettes du Kiabi du coin
- Contact :
pour ce qui est de la technique de sprite, Alec a pu voir ce que j'avais fait, c'est complexe et simple à la fois
Au préalable :
1) Un sprite animé avec toutes les étapes d'animation nécessaire
2) Un peu de math sur les angles
Le code :
J'ai mis ca dans le draw event de mon objet voiture.
La variable dir est la rotation actuelle de l'objet.
subimage est une variable pour savoir quelle image à l'intérieur de mon animation je vais afficher comme image courante de mon objet. (je divise dir par 6 car mon animation est de 360/6 images )
Le if/else sert juste à mettre des limites sur la variable dir sinon je me retrouve avec des problèmes ^^
edit : l'affichage d'un sprite est plus rapide que de dessiner en temps réel un sprite...
Au préalable :
1) Un sprite animé avec toutes les étapes d'animation nécessaire
2) Un peu de math sur les angles
Le code :
Code : Tout sélectionner
{
if (dir > 359)
{
dir=0;
}
else if (dir < 0 )
{
dir=359;
}
subimage=dir/6;
draw_sprite(sprite_joueur,subimage,x,y);
}
La variable dir est la rotation actuelle de l'objet.
subimage est une variable pour savoir quelle image à l'intérieur de mon animation je vais afficher comme image courante de mon objet. (je divise dir par 6 car mon animation est de 360/6 images )
Le if/else sert juste à mettre des limites sur la variable dir sinon je me retrouve avec des problèmes ^^
edit : l'affichage d'un sprite est plus rapide que de dessiner en temps réel un sprite...
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
Ca m'a l'air pas mal, par contre l'idée c'est de supprimer le sprite au fur et à mesure et pas l'afficher. C'est possible une boucle qui "déaffiche" du coup ?
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3404
- Inscription : 15 mai 2006, 15:26
- Localisation : Rayon chaussettes du Kiabi du coin
- Contact :
Tu cherches pas dans la bonne direction ^^
Regarde bien comment j'ai fait, la première partie me sert à calculer l'image que je dois afficher, la seconde partie me permet de sélectionner l'image dans le sprite animé à afficher.
(En fait, il manque un gros bout de la première partie, tout ce qui concerne la variable dir, mais c'est pas vraiment important ici ^^ )
Cherche un peu.
Si tu as trouvé le mécanisme pour afficher la bonne image au bon moment, l'inverse est très facile aussi
Regarde bien comment j'ai fait, la première partie me sert à calculer l'image que je dois afficher, la seconde partie me permet de sélectionner l'image dans le sprite animé à afficher.
(En fait, il manque un gros bout de la première partie, tout ce qui concerne la variable dir, mais c'est pas vraiment important ici ^^ )
Cherche un peu.
Si tu as trouvé le mécanisme pour afficher la bonne image au bon moment, l'inverse est très facile aussi
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
J'essaye de m'y remettre un peu et j'avais lu complètement le code de travers.
En fait le code que tu utilises c'est celui que je comptais faire au début, mais que j'ai finalement abandonné car j'avais la flemme de dessiner pleins d'étapes.
Enfin bon, je crois que je vais quand même devoir m'y coller
En fait le code que tu utilises c'est celui que je comptais faire au début, mais que j'ai finalement abandonné car j'avais la flemme de dessiner pleins d'étapes.
Enfin bon, je crois que je vais quand même devoir m'y coller
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3404
- Inscription : 15 mai 2006, 15:26
- Localisation : Rayon chaussettes du Kiabi du coin
- Contact :
C'est la méthode la plus efficace, meme si pas la plus rapide à produire...
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-
- Mou-Stick
- Messages : 13
- Inscription : 01 nov. 2010, 11:30
- Localisation : Rennes
- Contact :
justeGunny a écrit : 2) Un peu de math sur les angles
Le code :
Code : Tout sélectionner
{ if (dir > 359) { dir=0; } else if (dir < 0 ) { dir=359; } subimage=dir/6; draw_sprite(sprite_joueur,subimage,x,y); }
Code : Tout sélectionner
dir=dir mod 360;
subimage=dir/6;
draw_sprite(sprite_joueur,subimage,x,y);
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
Good, finalement 16 étapes ça suffit pour avoir une idée précise du timming.
J'ai utilisé ta technique "à la main", mais le principal c'est que ça marche bien.
J'ai utilisé ta technique "à la main", mais le principal c'est que ça marche bien.
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3622
- Inscription : 16 mars 2010, 22:54
- Localisation : Seoul
Rassures-moi Gunny, c'est possible de créer deux systèmes de particules différents ?
J'en ai créé 2 avec aucun noms de variables communes et 2 sprites différents, mais le second mange le premier. (J'ai le même sprite pour les deux !)
J'en ai créé 2 avec aucun noms de variables communes et 2 sprites différents, mais le second mange le premier. (J'ai le même sprite pour les deux !)
"... don't be there, or you gonna get drilled !"
-
- Empereur Bydo
- Messages : 3404
- Inscription : 15 mai 2006, 15:26
- Localisation : Rayon chaussettes du Kiabi du coin
- Contact :
Oui c'est possible !
Je ne sais pas comment est ton code, mais ca ressemble à un problème d'ID de système de particule passé à l'emitter.
J'ai déjà utilisé plusieurs système de particules sur un même objet ( je superposais les effets pour voir si je pouvais avoir quelque chose d'intéressant ^^ )
En général, on utilise un ou plusieurs emitter par système de particule. ( pour faire varier la direction, la vie d'une particule... on met ca dans l'emitter )
Je ne sais pas comment est ton code, mais ca ressemble à un problème d'ID de système de particule passé à l'emitter.
J'ai déjà utilisé plusieurs système de particules sur un même objet ( je superposais les effets pour voir si je pouvais avoir quelque chose d'intéressant ^^ )
En général, on utilise un ou plusieurs emitter par système de particule. ( pour faire varier la direction, la vie d'une particule... on met ca dans l'emitter )
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.