website logo
Auteur
avatar
AmiDARK

Forum » » OS4 toutes plateformes confondues » » AmiDARK Engine - Alpha WIP - 2D Demo


Posté : 14-09-2009 01:27 icone du post

Salut,

Allez, je poste une première petite démonstration montrant l'avancement du projet.
Elle utilise les images 2D ( Textures OpenGL ), l'alpha mapping, et la transparence.
Scrolling sur plusieurs plans en différentiels et parallaxes ...

Voici le lien pour la télécharger et l'installer :
http://www.odyssey-creators.com/AmiDARK_Engine0.1WIP_2DDemo.rar >

Voici aussi un petit visu de ce à quoi cela devrait ressembler :
http://www.odyssey-creators.com/AmiDARKEngine0.1WIP2DDemo.png< br />Bon SGrab m'a un peu foiré les arbres et les herbes ... normalement elles apparaissent bien comme il faut (verticales et pas en travers :p)

Sinon, voici pour ceux qui veulent se prendre un peu la tête, le code source de la démo :


/***********************************************************
**
**?AmiDARK?Engine?Development?Project
**------------------------------------
**
**?Sample?:?Textures/Images?demonstration
**?Author?:?Frederic?Cordier
**?Date?:???2009JUI22-043821?**
************************************************************
*/
#!!!include!!!?"AmiDARKEngine.c"
??int?ILoop;
??float?XMountain[3];
??float?XTrees[?4?];
??float?XHerbs[?3?];
??float?XClouds[5][?2?];

void?DarkLoop(?void?){
??//?Crée?l'affichage?en?mode?640x480?en?32bits.
??DESetDisplayMode(?640,?480,?32?);
??//?Définit?les?positions?initiales?des?3?images?de?décor?de?m ontagnes.
??XMountain[?1?]?=?0.0;
??XMountain[?2?]?=?512.0;
??XMountain[?3?]?=?1024.0;
??//?Idem?pour?les?4?images?d'arbres.
??XTrees[?1?]?=?0.0;
??XTrees[?2?]?=?512.0;
??XTrees[?3?]?=?1024.0;
??XTrees[?4?]?=?1536.0;
??//?Idem?pour?les?3?images?d'herbes.
??XHerbs[?1?]?=?0.0;
??XHerbs[?2?]?=?512.0;
??XHerbs[?3?]?=?1024.0;
??//?Idem?pour?les?nuages.
??XClouds[1][?1?]?=?0.0;
??XClouds[1][?2?]?=?640.0;
??XClouds[2][?1?]?=?0.0;
??XClouds[2][?2?]?=?640.0;
??XClouds[3][?1?]?=?0.0;
??XClouds[3][?2?]?=?640.0;
??XClouds[4][?1?]?=?0.0;
??XClouds[4][?2?]?=?640.0;
??XClouds[5][?1?]?=?0.0;
??XClouds[5][?2?]?=?640.0;
??//?Definition?du?nombre?maximum?de?textures/images?dont?on?a?besoin.
??DESetMaximumTextures(?13?);
??//?Chargement?de?toutes?les?images?pour?la?démonstration.
??DELoadImageEx(?"Images/RTSky02_SunWake05.png",?1,?0?);
??DELoadImageEx(?"Images/Mountains512.png",?2,?0?);
??DELoadImageEx(?"Images/Layer_Trees512A.png",?3,?0?);
??DELoadImageEx(?"Images/Layer_Trees512B.png",?4,?0?);
??DELoadImageEx(?"Images/Layer_Herbs512.png",?5,?0?);
??DELoadImageEx(?"Images/Layer_Water640.png",?6,?0?);
??DELoadImageEx(?"Images/Layer_Cllouds4[640x12]_Alpha.png",?7,?0?);
??DELoadImageEx(?"Images/Layer_Cllouds3[640x18]_Alpha.png",?8,?0?);
??DELoadImageEx(?"Images/Layer_Cllouds2[640x38]_Alpha.png",?9,?0?);
??DELoadImageEx(?"Images/Layer_Cllouds1[640x80]_Alpha.png",?10,?0?);
??DELoadImageEx(?"Images/Layer_Cllouds0[640x42]_Alpha.png",?11,?0?);
??DELoadImageEx(?"Images/Layer_Ground[640x60].png",?12,?0?);
??DELoadImageEx(?"Images/Logo.png",?13,?0?);
??DECls();
??while(?!DELoop()?){
????//?Tracé?du?fond?de?ciel?bleu?avec?le?soleil?et?la?lune.
????DEPasteImage(?1,?0,?0?);
????//?Gestion?du?scrolling?des?montagnes?devant?le?fond?de?ciel?bleu.
????for?(?ILoop?=?1;?ILoop???????XMountain[?ILoop?]?=?XMountain[?ILoop?]?-?0.25;
??????if?(?XMountain[?ILoop?]?????????XMountain[?ILoop?]?=?XMountain[?ILoop?]?+?640.0;
???????}
??????DEPasteImageEx(?2,?(int)XMountain[?ILoop?],?224,?1?);
??????//?Affichage?de?l'eau?qui?se?déplace?en?parallèle?des?mon tagnes.
??????DEPasteImage(?6,?(int)XMountain[?ILoop?],?320?);
?????}
????//?Gestion?du?scrolling?des?arbres?devant?les?montagnes?et?le?ciel?bleu.< br />????for?(?ILoop?=?1;?ILoop???????XTrees[?ILoop?]?=?XTrees[?ILoop?]?-?0.70;
??????if?(?XTrees[?ILoop?]?????????XTrees[?ILoop?]?=?XTrees[?ILoop?]?+?2048.0;
???????}
?????}
????//?Gestion?des?scrollings?des?nuages?sur?les?5?plans
????for?(?ILoop?=?1;?ILoop???????XClouds[1][?ILoop?]?=?XClouds[1][?ILoop?]?-?0.15;
??????if?(?XClouds[1][?ILoop?]?????????XClouds[1][?ILoop?]?=?XClouds[1][?ILoop?]?+?640.0;
???????}
??????XClouds[2][?ILoop?]?=?XClouds[2][?ILoop?]?-?0.30;
??????if?(?XClouds[2][?ILoop?]?????????XClouds[2][?ILoop?]?=?XClouds[2][?ILoop?]?+?640.0;
???????}
??????XClouds[3][?ILoop?]?=?XClouds[3][?ILoop?]?-?0.45;
??????if?(?XClouds[3][?ILoop?]?????????XClouds[3][?ILoop?]?=?XClouds[3][?ILoop?]?+?640.0;
???????}
??????XClouds[4][?ILoop?]?=?XClouds[4][?ILoop?]?-?0.60;
??????if?(?XClouds[4][?ILoop?]?????????XClouds[4][?ILoop?]?=?XClouds[4][?ILoop?]?+?640.0;
???????}
??????XClouds[5][?ILoop?]?=?XClouds[5][?ILoop?]?-?0.75;
??????if?(?XClouds[5][?ILoop?]?????????XClouds[5][ILoop?]?=?XClouds[5][?ILoop?]?+?640.0;
???????}
?????}
????DEPasteImageEx(?7,?XClouds[1][?1?],?178,?1?);
????DEPasteImageEx(?7,?XClouds[1][?2?],?178,?1?);
????DEPasteImageEx(?8,?XClouds[2][?1?],?160,?1?);
????DEPasteImageEx(?8,?XClouds[2][?2?],?160,?1?);
????DEPasteImageEx(?9,?XClouds[3][?1?],?122,?1?);
????DEPasteImageEx(?9,?XClouds[3][?2?],?122,?1?);
????DEPasteImageEx(?10,?XClouds[4][?1?],?42,?1?);
????DEPasteImageEx(?10,?XClouds[4][?2?],?42,?1?);
????DEPasteImageEx(?11,?XClouds[5][?1?],?0,?1?);
????DEPasteImageEx(?11,?XClouds[5][?2?],?0,?1?);
????//?Affichage?des?arbres?devant?le?décor?de?fond.
????for(?ILoop?=?1;?ILoop???????DEPasteImageEx(?ILoop?+?2,?(int)XTrees[?ILoop?],?214,?1?);
??????DEPasteImageEx(?ILoop?+?2,?(int)XTrees[?ILoop?+?2?],?214,?1?);
??????DEPasteImage(?12,?(int)XTrees[?ILoop?],?420?);
??????DEPasteImage(?12,?(int)XTrees[?ILoop?+?2?],?420?);
?????}
????//?Gestion?du?scrolling?des?herbes?devant?les?arbres.
????for?(?ILoop?=?1;?ILoop???????XHerbs[?ILoop?]?=?XHerbs[?ILoop?]?-?1.0;
??????if?(?XHerbs[?ILoop?]?????????XHerbs[?ILoop?]?=?XHerbs[?ILoop?]?+?1536.0;
???????}
??????DEPasteImageEx(?5,?XHerbs[?ILoop?],?440,?1?);
?????}
????//?Affichage?du?logo?de?la?démo?en?plein?milieu?de?l'écran.
????DEPasteImageEx(?13,?64,?48,?1?);
????//?Synchro.
????DESync();
???}
// On supprime les images de la mémoire.
??for?(?ILoop?=?1;?ILoop?????DEDeleteImage(?ILoop?);
???}
?}



On dirait presque du langage basic :p tellement mon système simplifie la vie :p

N'hésitez pas à donner votre avis :p

@ +
AmiDARK
Message édité par : AmiDARK / 14-09-2009 01:49
Note de K-L : mettre un espace avant le lien pour le rendre cliquable
Message édité par : K-L / 14-09-2009 05:52

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=491&forum=6