mirror of
https://github.com/AntonioND/nitro-engine.git
synced 2025-06-18 16:45:33 -04:00
examples: Improve sprites example
This commit is contained in:
parent
8cb10264bb
commit
b40f67c593
2
examples/2d_system/sprites/graphics/assets.grit
Normal file
2
examples/2d_system/sprites/graphics/assets.grit
Normal file
@ -0,0 +1,2 @@
|
||||
# 256 color palette
|
||||
-gx -gb -gB8 -gTFF00FF
|
BIN
examples/2d_system/sprites/graphics/assets.png
Normal file
BIN
examples/2d_system/sprites/graphics/assets.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 41 KiB |
7
examples/2d_system/sprites/graphics/assets.txt
Normal file
7
examples/2d_system/sprites/graphics/assets.txt
Normal file
@ -0,0 +1,7 @@
|
||||
This file is derived from:
|
||||
|
||||
Name: Ancient ruins pixel art
|
||||
License: CC-BY 3.0
|
||||
Author: CraftPix.net 2D Game Assets
|
||||
|
||||
https://opengameart.org/content/ancient-ruins-pixel-art
|
Binary file not shown.
Before Width: | Height: | Size: 796 B After Width: | Height: | Size: 4.5 KiB |
@ -6,12 +6,31 @@
|
||||
|
||||
#include <NEMain.h>
|
||||
|
||||
#include "assets.h"
|
||||
#include "icon.h"
|
||||
|
||||
void Draw3DScene(void)
|
||||
NE_Sprite *Sprite[6];
|
||||
|
||||
void Draw3DScene1(void)
|
||||
{
|
||||
NE_2DViewInit();
|
||||
NE_SpriteDrawAll();
|
||||
|
||||
NE_ClearColorSet(NE_White, 31, 63);
|
||||
|
||||
NE_SpriteDraw(Sprite[3]);
|
||||
NE_SpriteDraw(Sprite[4]);
|
||||
NE_SpriteDraw(Sprite[5]);
|
||||
}
|
||||
|
||||
void Draw3DScene2(void)
|
||||
{
|
||||
NE_2DViewInit();
|
||||
|
||||
NE_ClearColorSet(NE_Gray, 31, 63);
|
||||
|
||||
NE_SpriteDraw(Sprite[0]);
|
||||
NE_SpriteDraw(Sprite[1]);
|
||||
NE_SpriteDraw(Sprite[2]);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
@ -20,51 +39,78 @@ int main(int argc, char *argv[])
|
||||
irqSet(IRQ_VBLANK, NE_VBLFunc);
|
||||
irqSet(IRQ_HBLANK, NE_HBLFunc);
|
||||
|
||||
NE_Init3D();
|
||||
NE_SwapScreens();
|
||||
NE_InitDual3D();
|
||||
NE_InitConsole();
|
||||
|
||||
NE_Material *Material = NE_MaterialCreate();
|
||||
NE_Palette *Palette = NE_PaletteCreate();
|
||||
NE_Material *MaterialIcon = NE_MaterialCreate();
|
||||
NE_Palette *PaletteIcon = NE_PaletteCreate();
|
||||
|
||||
NE_MaterialTexLoad(Material, NE_PAL16, 128, 128, NE_TEXGEN_TEXCOORD,
|
||||
NE_MaterialTexLoad(MaterialIcon, NE_PAL16, 128, 128,
|
||||
NE_TEXGEN_TEXCOORD | NE_TEXTURE_COLOR0_TRANSPARENT,
|
||||
iconBitmap);
|
||||
NE_PaletteLoad(Palette, iconPal, 32, NE_PAL16);
|
||||
NE_MaterialSetPalette(Material, Palette);
|
||||
NE_PaletteLoad(PaletteIcon, iconPal, iconPalLen / 2, NE_PAL16);
|
||||
NE_MaterialSetPalette(MaterialIcon, PaletteIcon);
|
||||
|
||||
NE_Material *MaterialAssets = NE_MaterialCreate();
|
||||
NE_Palette *PaletteAssets = NE_PaletteCreate();
|
||||
|
||||
NE_ClearColorSet(NE_Gray, 31, 63);
|
||||
NE_MaterialTexLoad(MaterialAssets, NE_PAL256, 512, 256,
|
||||
NE_TEXGEN_TEXCOORD | NE_TEXTURE_COLOR0_TRANSPARENT,
|
||||
assetsBitmap);
|
||||
NE_PaletteLoad(PaletteAssets, assetsPal, assetsPalLen / 2, NE_PAL16);
|
||||
NE_MaterialSetPalette(MaterialAssets, PaletteAssets);
|
||||
|
||||
NE_Sprite *Sprite[4];
|
||||
Sprite[0] = NE_SpriteCreate();
|
||||
Sprite[1] = NE_SpriteCreate();
|
||||
Sprite[2] = NE_SpriteCreate();
|
||||
Sprite[3] = NE_SpriteCreate();
|
||||
Sprite[4] = NE_SpriteCreate();
|
||||
Sprite[5] = NE_SpriteCreate();
|
||||
|
||||
NE_SpriteSetPos(Sprite[0], 0, 0);
|
||||
NE_SpriteSetSize(Sprite[0], 128, 128);
|
||||
// Sprite with the same size as the texture
|
||||
NE_SpriteSetMaterial(Sprite[0], MaterialIcon);
|
||||
NE_SpriteSetPos(Sprite[0], 10, 40);
|
||||
NE_SpriteSetPriority(Sprite[0], 10);
|
||||
NE_SpriteSetMaterial(Sprite[0], Material);
|
||||
|
||||
// Sprite with a different size than the texture (scaled down) and a
|
||||
// different color
|
||||
NE_SpriteSetMaterial(Sprite[1], MaterialIcon);
|
||||
NE_SpriteSetPos(Sprite[1], 114, 32);
|
||||
NE_SpriteSetSize(Sprite[1], 56, 56);
|
||||
NE_SpriteSetPriority(Sprite[1], 5);
|
||||
NE_SpriteSetParams(Sprite[1], 15, 1, NE_Green);
|
||||
NE_SpriteSetMaterial(Sprite[1], Material);
|
||||
NE_SpriteSetSize(Sprite[1], 56, 56);
|
||||
|
||||
// Sprite with a different size than the texture (scaled down), and with
|
||||
// transparency.
|
||||
NE_SpriteSetMaterial(Sprite[2], MaterialIcon);
|
||||
NE_SpriteSetPos(Sprite[2], 100, 50);
|
||||
NE_SpriteSetSize(Sprite[2], 56, 56);
|
||||
NE_SpriteSetPriority(Sprite[2], 1);
|
||||
NE_SpriteSetMaterial(Sprite[2], Material);
|
||||
NE_SpriteSetParams(Sprite[2], 15, 2, NE_White);
|
||||
NE_SpriteSetSize(Sprite[2], 56, 56);
|
||||
|
||||
NE_SpriteSetPos(Sprite[3], 256 - 64, 192 - 64);
|
||||
NE_SpriteSetSize(Sprite[3], 64, 64);
|
||||
NE_SpriteSetPriority(Sprite[3], 12);
|
||||
NE_SpriteSetMaterial(Sprite[3], Material);
|
||||
// The following sprites will only use a small part of the texture
|
||||
|
||||
NE_SpriteSetMaterial(Sprite[3], MaterialAssets);
|
||||
NE_SpriteSetPos(Sprite[3], 50, 60);
|
||||
NE_SpriteSetMaterialCanvas(Sprite[3], 384, 0, 484, 118);
|
||||
NE_SpriteSetSize(Sprite[3], 484 - 384, 118 - 0);
|
||||
|
||||
NE_SpriteSetMaterial(Sprite[4], MaterialAssets);
|
||||
NE_SpriteSetPos(Sprite[4], 0, 0);
|
||||
NE_SpriteSetMaterialCanvas(Sprite[4], 73, 0, 152, 75);
|
||||
NE_SpriteSetSize(Sprite[4], 152 - 73, 75 - 0);
|
||||
|
||||
NE_SpriteSetMaterial(Sprite[5], MaterialAssets);
|
||||
NE_SpriteSetPos(Sprite[5], 170, 20);
|
||||
NE_SpriteSetMaterialCanvas(Sprite[5], 0, 77, 72, 175);
|
||||
NE_SpriteSetSize(Sprite[5], 72 - 0, 175 - 77);
|
||||
|
||||
int rot = 0;
|
||||
int x = 100, y = 50;
|
||||
|
||||
printf("PAD: Move\n");
|
||||
printf("START: Exit to loader\n");
|
||||
|
||||
while (1)
|
||||
{
|
||||
NE_WaitForVBL(0);
|
||||
@ -84,9 +130,12 @@ int main(int argc, char *argv[])
|
||||
if (keys & KEY_LEFT)
|
||||
x--;
|
||||
|
||||
if (keys & KEY_START)
|
||||
break;
|
||||
|
||||
NE_SpriteSetPos(Sprite[2], x, y);
|
||||
|
||||
NE_Process(Draw3DScene);
|
||||
NE_ProcessDual(Draw3DScene1, Draw3DScene2);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user