:: PlayerAdvance.org ::

:: PlayerAdvance.org :: (http://www.playeradvance.org/forum/index.php)
-   Ressources (http://www.playeradvance.org/forum/forumdisplay.php?f=184)
-   -   PSP AutoTiles Sample (http://www.playeradvance.org/forum/showthread.php?t=29959)

BennyRebirth 13/12/2008 21h32

AutoTiles Sample
 
Bonsoir everybody :)
En cette période glaciale, pendant que certains attrapent la crève, je l'ai attrapée aussi mais à ma grande surprise je l'ai eu accompagnée d'une pulsion soudaine m'obligeant à reprogrammer des ptites choses sur psp.

Ce soir je vous propose donc une petite fonction bien crade mais qui fonctionne très bien ^^ ( je penserai à nettoyer le code et à faire quelque chose de propre à l'avenir, c'est promis! ) pour gérer les autotiles avec l'oslib!

Pour les gens motivés qui souhaitent faire des jeux en vue de dessus, cette fonction peut vous permettre de gérer tres rapidement des niveaux aléatoires avec de beaux graphismes par exemple, et pour les gens qui veulent faire des RPG elle s'avère presque indispensable! ^^

Telecharger les sources + l'eboot ici ! ( MAJ 13/12/08 )

Mais les autotiles c'est quoi??!

Voici un petit exemple pour vous expliquer simplement :

Tout d'abord pour comprendre le principe il nous faut un TileSet correct, comme celui-ci :

http://www.cosmixradio.fr/demos/autotiles_ex2.png

J'ai utilisé des tiles de 32*32 mais ça fonctionne avec des tiles de 16*16 ou 64*64 sans problème, le plus important c'est juste de bien garder la tiles noires à chaque fin de ligne.

On prend ensuite un tableau qui représentera notre niveau :

Code:

unsigned short demo_map[16][16]={
{1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1},
{1,1,1,2,2,2,2,2,2,1,2,2,2,1,1,1},
{1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1},
{1,2,2,2,2,2,2,2,2,2,2,1,2,1,1,1},
{1,1,1,1,2,1,1,2,2,1,2,1,2,1,1,1},
{1,1,1,1,2,2,2,1,2,1,1,1,2,1,1,1},
{1,1,1,2,2,2,2,2,2,2,2,1,2,1,1,1},
{1,1,1,2,1,2,2,1,2,1,2,1,2,1,1,1},
{1,1,1,2,2,2,2,1,1,2,2,1,2,1,1,1},
{1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1},
{1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1},
{1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};

On considère le nombre 1 comme étant de l'herbe, et le nombre 2 comme étant de l'eau!
On charge le TileSet avec l'oslib comme pour un background normal :

Code:

        auto_tileset = oslLoadImageFile("demo_tileset.png", OSL_IN_RAM, OSL_PF_5551);
On applique ensuite ma fameuse fonction lors de la création du BackGround :

Code:

        demo_layer = oslCreateAutoMap(
                auto_tileset,
                demo_map,                                                        //Map
                32,32,                                                                //Tiles size
                16,16,                                                                //Map size
                OSL_MF_U16);

On affiche dans notre boucle principale :

Code:

oslDrawMap(demo_layer);
Et voila le résultat :

http://www.cosmixradio.fr/demos/autotiles_ex.png

Voila voila! Cette fonction est loin d'être révolutionnaire mais j'espère que ceci permettra à certains d'entre vous de gagner du temps !

A tres bientot !


Fuseau horaire GMT +2. Il est actuellement 01h41.

Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone