Salut tout le monde . je me demander si c’était possible de recréer cet effet sur Gdevelop :https://zackbellgames.com/2015/03/31/effects-blood-splatter/#more-442.
D’après ce que j’ai compris si on a un objet effet blood alors on a juste a copier l’image de cet objet puis de coller cet image dans l’objet image background. J’ai fouiller et je n’ai pas trouver comment faire ceci il y a bien l’événement copier une image sur un autre mais pas copier l’image d’un objet sur un autre objet…
Voilà merci d’avance.
Pour moi c’est juste différents Sprites (objet animés) qui apparait a une position a un plan supérieur que le background.
ça aurait été simple. On peut faire ceci mais comment tu feras si tu a 1000 objets ? je te rapelle que pendant le deroulement du jeu tu ne supprime aucun objet. le sang produit (un objet ) doit rester jusqu’a la fin du jeu ou niveau . Cette idée peut marcher avec un nombre de mob raisonnable mais avec beaucoup de monstre sur une scène grande comment faire ?
si tu les fait apparaitre sur le calque de la caméra et donc que les tache suive ton perso et ta caméra l’effet voulu est là mais tu crées pas 1000 objet?
Désolé je me suis mal exprimer Je voulais dire plusieurs instances d’un meme objet ce que je me demande c’est ça ne va pas ralentir le jeu ? je pourrai créer une instances a chaque fois…
Je pense que si tu créés un grand nombre d’objets “statiques” ça peut passer (du moins en plateforme native…), mais si tu souhaites en plus les animer, ça risque de se compliquer… Après à toi de voir quelle durée de vie tu souhaites pour tes sprites, parce que si tu en génère des milliers ça vite être chaud… tu peux imaginer les supprimer au bout X secondes (mais sans chronomètre sinon gares aux perfs !), les supprimer en dehors de l’écran (et bordure supplémentaires +xxx). Après il faut aussi optimiser ta sprite en terme de taille/poids etc.
Perso je pose une de mes real, j’arrive faire ça sans perdre de performance en natif :
- 150 mobs (sprites animés, taille de 1800px*800px (oui c’est énorme !)
- chaque mobs à un émetteur de particule qui le suit (effet de bave au niveau des “mandibules”)
- Chaque mob lorsqu’il est touché créé un émetteur de particule supplémentaire (mais capacité -1 donc durée de vie courte) qui fait gicler du sang partout + une sprite statique est créé sur le calque derriere pour faire une tache de sang.
Tout ça à 60 fps fixer (et je parle même pas de l’IA de chaque mob indépendant + d’autres effets (notamment ignition). Je suis très satisfait des performances du moteur natif de GD sur ce point.
150 mobs mais en plusieurs scene ou la meme scene ?
et c’est super etonnant vu que tu dis 60 fps … les particule qui suit=vent les mob disparaisse après un certain temps?
En faite moi j’avais 4 mob sur une scene qui avait chacun un emetteur de particule qui suivait mais je mettait un temps quasi infini du coup ça permetter au particule de rester sur la scene mais au bout d’un certain temps ça lagguer…
Mais je pense qu’avec des objets statique ça doit passer
En une seule scène ! Pour l’émetteur de particule capacité infinie, flux en random entre 100 et 400, mais durée de vie courte entre 0.1 et 0.3 secondes.
Après tout est affaire d’optimisation, j’utilise énormément le moniteur de suivi des performances, je ne déclenche les événements (IA, animation/effet) que lorsqu’on mes mobs sont à une limite de 200pixels de la bordure de l’écran, j’ai des “déclenché une seule fois” partout où c’est possible pour eviter que les évents ne se répètent dans le vide et pour rien.
Ha ok donc je pense que c’est possible. Comme tu dis après c’est la performance.
Tu peux aussi et surtout limiter le nombre maximal de particules, de sortes à ce que tu ne surcharge pas inutilement la scene. Par defaut c’est 5000, mais honetement descendre à 1000 voire moins s’avere tout aussi efficace.