1

Salut les gars,

J'aimerais savoir comment faire en C sur ti pour créer une surface en mémoire (offscreen)représentant une bitmap toute prête pour désiner des sprites et des mosaïques dessus?

Le but est de refaire un TileMap Engine en C SIMPLE avec un minimum de fonctions à implémenter afin d'avoir une table UNIQUE de tiles qui sont toutes dans le même format (couches séparées)...

Je sais faire ça sans problème sur PC, mais pas sur TI, j'imagine qu'il doit y avoir un méchanisme similaire pour créer des bitmaps...

Une aide ou suggestion serait le bienvenue.

Bien à vous.

Fred.


There is no spoon.

2

Il existe des librairies graphiques qui te mâcheront le travail. Les plus courantes sont genlib et extgraph.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

3

ok, je vais regarder ça.

Sasume: le TileMap Engine est peut-être un peut trop puissant pour l'usage que je dois en faire. En effet, je ne dois créer qu'une seule fois la map au moment du chargement du niveau. après il ne reste plus qu'à la réutiliser pour générer les frames. enfin, cela évitera d'avoir plusieurs tables de mosaïques, actuellement, j'en ai une pour les mosaïques fixes en couches entrelacées et une pour les mosaïques animées en couches séparées...
There is no spoon.

4

Ben genlib est encore plus puissante que le tilemap engine.
Mais l'un comme l'autre ne sont pas vraiment adaptés à des tout petits projets.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

5

bah, je verrais ça ultérieurement quand le jeu sera finalisé wink
merci quand même smile
There is no spoon.

6

Si c'est pour un jeu, genlib sera peut-être appropriée, elle fournit tout un environnement cohérent pour le développement de jeux.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

7

en gros il veux pouvoir faire scroller une image?

8

nan,

du fait que je n'utilise pas tout dans le tile map engine, mais simplement une petite partie, je voulais juste refaire en C, vite fait, la partie qui m'intéresse c-à-d la génération de la map fixe une fois pour toute lors du chargement du niveau.

sur PC ça prend quelques lignes de code en C avec allegro, mais je ne sais pas encore faire ça sur TI:
En gros, le générateur de map sur PC fait ces 3 étapes
- allocation de la bitmap offscreen (ok sur PC, comment faire sur TI?)
- parcour de la table des indexes des mosaïques puis affichage dans la bitmap offscreen (ok, no problemo sur PC, sur TI j'imagine que c'est pareil)
- affichage de la bitmap offscreen générée sur l'écran à une coordonnée donnée (ok sur PC, comment faire sur TI?, no problemo avec le tilemap engine wink )
There is no spoon.

9

Je comprends rien grin

Tu veux afficher une map sans avoir besoin de la scroller ?

10

Jyaif :
Je comprends rien grin


pas la peine de le dire, je l'avais compris wink
There is no spoon.

11

Jyaif :
Tu veux afficher une map sans avoir besoin de la scroller ?

12

Si j'ai bien compris, il veut juste afficher une map tout court. C'est assez simple, il suffit de parcourir ta map et pour chaque élément afficher la partie du tileset correspondante au bloc en question sur l'écran en multipliant sa position par la taille de tile, par ex. pour du 16x16:
for (j=0;j<hauteurMap;j++)
   for (i=0;i<largeurMap;i++)
   {
      bloc = taMap[j][i];
      DessineSprite(i * 16, j * 16, tonTileset + 16*16/8 * bloc);
   }
}

Ca veut dire que 'tonTileset' est un sprite de 16x(n*16) où n est le nombre de tiles, et où tes tiles sont placées verticalement smile
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

13

Brunni: cette partie là, je sais faire, no problemo, ce que je ne sais pas faire, c'est comment créer le bitmap.
si c'est un simple malloc, combien d'octets faut-il allouer sachant qu'on est en 4 niveaux de gris?
There is no spoon.

14

Ça dépend de ton format de sprite.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

15

La bitmap du tileset? Ca tu n'as pas à t'en soucier, tu la génères avec n'importe quel programme de conversion de sprite pour TI smile
La bitmap de l'écran? => malloc(2*largeurDeTaMapEnPixels*hauteurDeTaMapEnPixels/8). Ensuite les librairies graphiques te permettent en général de spécifier sur quel écran dessiner, comme 'PortSet' pour AMS ou un argument à chaque routine pour ExtGraph.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741