WOWCube Docs logo
WOWCube Docs
Mission Control
Section Shortcuts
APIExamplesSourceWOWConnectChangelog
Filters
SDK and language defaults persist in cookies.
SDK version
Navigation Tree
Collapsed by default, focused on the active path.
Made byMcKay Seamons
GitHub
  1. Home
  2. Docs
  3. Examples
  4. GfxSpriteAtlas.h
Mission NodeSDK 6.3C++renderingProject Included

GfxSpriteAtlas.h

Example: GfxSpriteAtlas.h

Examples / SDK 6.3 / C++ / rendering / Gfx Engine - Sprite Atlas / project / src
GfxSpriteAtlas.h
CPP
1// This header file is generated by WOWCube SDK project wizard
2//
3// Application UUID: 6EqWQJuAqt
4//
5#pragma once
6
7#include "Gfx.h"
8
9enum GfxObjects
10{
11 myBackground=0,
12 mySprite,
13 myRT = 5,
14 terrain=10,
15 plant,plant2,plant3,plant4,
16 rock,rock2,rock3,
17 pit,
18 fireball=20
19};
20
21class FireballSpriteAtlasElement: public Cubios::Gfx::SpriteAtlasElement
22 {
23 public:
24 FireballSpriteAtlasElement(Cubios::Gfx::SpriteAtlasBase* host, const Cubios::Math::Rect2 rc): Cubios::Gfx::SpriteAtlasElement(host,rc)
25 {
26 this->currentFrame = Cubios::random(0,3);
27 }
28
29 virtual ~FireballSpriteAtlasElement() {}
30
31 void Render()
32 {
33 if(this->currentFrame>3) this->currentFrame = 0;
34
35 Cubios::Math::Vec2 pos = this->ScreenPosition();
36 Cubios::GFX_drawSubImage(this->host->resourceId, pos.X,pos.Y,
37 this->rc.v0.X+this->currentFrame*51,this->rc.v0.Y,this->rc.W,this->rc.H,
38 0xFF,
39 Cubios::Gfx::Colors::magenta,
40 Transform.ScaleX, Transform.ScaleY,
41 Transform.SafeRotation()+ScreenAngle, Transform.Mirroring);
42
43 this->currentFrame++;
44 }
45
46 void Tick(int speed)
47 {
48 Transform.Position.X+=speed;
49 if(Transform.Position.X>250) {
50 Transform.Position.X = -20;
51 Transform.Position.Y = Cubios::random(30,180);
52 }
53 }
54
55 FireballSpriteAtlasElement* Copy()
56 {
57 FireballSpriteAtlasElement* obj = new FireballSpriteAtlasElement(this->host, this->rc);
58
59 obj->Transform = this->Transform;
60 obj->Color = this->Color;
61
62 return obj;
63 }
64
65 private:
66 uint8_t currentFrame = 0;
67 };
68
69class GfxSpriteAtlas: public Cubios::Application
70{
71public:
72 GfxSpriteAtlas();
73 virtual ~GfxSpriteAtlas();
74
75 virtual void on_PhysicsTick(const std::array<Cubios::Screen, 3>& screens) override;
76 virtual void on_Twist(const Cubios::TOPOLOGY_twistInfo_t& twist) override;
77 virtual void on_Message(uint32_t type, uint8_t* pkt, u32_t size) override;
78 virtual void on_ExternalMessage(uint8_t* pkt, u32_t size) override;
79 virtual void on_Pat(uint32_t count) override;
80 virtual void on_Render(std::array<Cubios::Screen, 3>& screens) override;
81 virtual void on_Tick(uint32_t currentTime, uint32_t deltaTime) override;
82 virtual void on_Timer(uint8_t timerID) override;
83 virtual void on_Close() override;
84
85 void InitializeResources();
86
87private:
88 void prepareOffscreenResource();
89
90private:
91 Cubios::Gfx::SpriteAtlas<Cubios::Gfx::SpriteAtlasElement>* terrainAtlas;
92 Cubios::Gfx::SpriteAtlas<FireballSpriteAtlasElement>* fireballAtlas;
93};
Wrapped for easier reading. Turn wrap off to inspect exact line lengths.
Context Rail

Project files

GfxSpriteAtlas.cpp
project/src/GfxSpriteAtlas.cpp
GfxSpriteAtlas.h
project/src/GfxSpriteAtlas.h
wowcubeapp-build.json
project/wowcubeapp-build.json
Context Rail

Related nodes

GfxSpriteAtlas.cpp
Examples / SDK 6.3 / C++ / rendering / Gfx Engine - Sprite Atlas / project / src
Gfx Engine - Sprite Atlas
Examples / SDK 6.3 / C++ / rendering
info.json
Examples / SDK 6.3 / C++ / rendering / Gfx Engine - Sprite Atlas
wowcubeapp-build.json
Examples / SDK 6.3 / C++ / rendering / Gfx Engine - Sprite Atlas / project
Previous Node
GfxSpriteAtlas.cpp
Examples / SDK 6.3 / C++ / rendering / Gfx Engine - Sprite Atlas / project / src
Next Node
wowcubeapp-build.json
Examples / SDK 6.3 / C++ / rendering / Gfx Engine - Sprite Atlas / project