Changeset 1715
- Timestamp:
- Aug 11, 2012, 1:40:00 AM (11 years ago)
- Location:
- trunk/games/demo-jnat
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/games/demo-jnat/demo-jnat.cpp
r1713 r1715 3 3 #if defined HAVE_CONFIG_H 4 4 # include "config.h" 5 #endif 6 7 #if defined _WIN32 8 # include <direct.h> 9 #endif 10 11 #if defined _XBOX 12 # define _USE_MATH_DEFINES /* for M_PI */ 13 # include <xtl.h> 14 # undef near /* Fuck Microsoft */ 15 # undef far /* Fuck Microsoft again */ 16 #elif defined _WIN32 17 # define _USE_MATH_DEFINES /* for M_PI */ 18 # define WIN32_LEAN_AND_MEAN 19 # include <windows.h> 20 # undef near /* Fuck Microsoft */ 21 # undef far /* Fuck Microsoft again */ 22 #else 23 # include <cmath> 5 24 #endif 6 25 … … 10 29 using namespace lol; 11 30 12 class DemoJnat : public WorldEntity 31 32 #include "demo-jnat.h" 33 34 35 36 DemoJnat::DemoJnat() 13 37 { 14 public: 15 void AddPiece(int x, int y, int h, int dx, int dy, int dh) 38 m_angle = 0; 39 40 // set color 41 m_mesh.Compile("sc#221 scb#1c1"); 42 m_mesh.AppendFlatChamfBox(vec3(1000, 10, 500), 1.f); 43 44 m_player = new Player(); 45 Ticker::Ref(m_player); 46 47 /* Center everything -- is it needed? */ 48 //m_mesh.Compile("tx4 tz4"); 49 50 m_camera = new Camera(vec3(0.f, 600.f, 0.f), 51 vec3(0.f, 0.f, 0.f), 52 vec3(0, 1, 0)); 53 m_camera->SetPerspective(70.f, 960.f, 600.f, .1f, 1000.f); 54 m_camera->SetTarget(vec3(0.f, 0.f, 0.f)); 55 m_camera->SetPosition(vec3(0.f, 80.f, -100.f)); 56 Ticker::Ref(m_camera); 57 58 m_ready = false; 59 } 60 61 DemoJnat::~DemoJnat(){ 62 Ticker::Unref(m_player); 63 } 64 65 void DemoJnat::TickGame(float seconds) 66 { 67 WorldEntity::TickGame(seconds); 68 69 70 // exit 71 if (Input::GetButtonState(27 /*SDLK_ESCAPE*/)) 72 Ticker::Shutdown(); 73 74 m_angle = 0; 75 76 mat4 anim = mat4::rotate(m_angle, vec3(0, 1, 0)); 77 mat4 model = mat4::translate(vec3(0, 0, 0)); 78 79 m_matrix = model * anim; 80 } 81 82 void DemoJnat::TickDraw(float seconds) 83 { 84 WorldEntity::TickDraw(seconds); 85 86 if (!m_ready) 16 87 { 17 m_mesh.OpenBrace(); 18 for (int j = 0; j < y; ++j) 19 for (int i = 0; i < x; ++i) 20 { 21 m_mesh.OpenBrace(); 22 m_mesh.Compile("ad12,2.2,0 ty.1 ac12,.2,2.4,2.2,0,1 ty.8 ac12,1.7,2.4,2.4,0,1 ty2.5"); 23 m_mesh.Translate(vec3(i * 8.f, (h - 1) * 3.2f, j * 8.f)); 24 m_mesh.CloseBrace(); 25 } 26 m_mesh.OpenBrace(); 27 m_mesh.AppendFlatChamfBox(vec3(x * 8.f, h * 3.2f, y * 8.f), -.1f); 28 m_mesh.Translate(vec3((x - 1) * 4.f, (h - 1) * 1.6f, (y - 1) * 4.f)); 29 m_mesh.CloseBrace(); 30 m_mesh.Translate(vec3(dx * 8.f, dh * 3.2f, dy * 8.f)); 31 m_mesh.CloseBrace(); 88 m_mesh.MeshConvert(); 89 m_ready = true; 32 90 } 33 91 34 DemoJnat() 35 { 36 m_angle = 0; 37 //m_mesh.Compile("sc#e94 scb#964 [asph11 7 7 7 tx10]"); 38 //m_mesh.Compile("sc#94e scb#649 [asph3 7 7 7 tx-6 tz-9]"); 39 //m_mesh.Compile("sc#49e scb#469 [asph31 7 7 7 tx-6 tz9]"); 40 m_mesh.Compile("sc#1c1 scb#1c1"); 41 AddPiece(16, 16, 1, -8, -8, -4); 92 Video::SetClearColor(vec4(0.0f, 0.0f, 0.0f, 1.0f)); 42 93 43 /* Flat white LOL */44 m_mesh.Compile("sc#ccc scb#ccc"); 94 m_mesh.Render(m_matrix); 95 } 45 96 46 AddPiece(1, 4, 1, -7, -7, -3);47 AddPiece(2, 1, 1, -6, -4, -3);48 49 AddPiece(1, 4, 1, -3, -7, -3);50 AddPiece(2, 1, 1, -2, -7, -3);51 AddPiece(2, 1, 1, -2, -4, -3);52 AddPiece(1, 2, 1, -1, -6, -3);53 54 AddPiece(1, 4, 1, 1, -7, -3);55 AddPiece(2, 1, 1, 2, -4, -3);56 57 /* High red LOL */58 m_mesh.Compile("sc#e33 scb#e33");59 60 AddPiece(3, 1, 3, 3, 4, -3);61 AddPiece(1, 1, 3, 5, 4, 0);62 AddPiece(1, 1, 3, 5, 4, 3);63 AddPiece(1, 1, 3, 5, 4, 6);64 65 AddPiece(3, 1, 3, -1, 4, -3);66 AddPiece(1, 1, 3, 1, 4, 0);67 AddPiece(1, 1, 3, 1, 4, 3);68 AddPiece(1, 1, 3, -1, 4, 0);69 AddPiece(1, 1, 3, -1, 4, 3);70 AddPiece(3, 1, 3, -1, 4, 6);71 72 AddPiece(3, 1, 3, -5, 4, -3);73 AddPiece(1, 1, 3, -3, 4, 0);74 AddPiece(1, 1, 3, -3, 4, 3);75 AddPiece(1, 1, 3, -3, 4, 6);76 77 /* Some random crap */78 m_mesh.Compile("sc#e0e scb#e0e");79 AddPiece(1, 1, 1, -1, 0, 2);80 m_mesh.Compile("sc#0ee scb#0ee");81 AddPiece(2, 1, 1, -1, 0, 1);82 m_mesh.Compile("sc#e94 scb#e94");83 AddPiece(1, 1, 1, 0, 0, 0);84 m_mesh.Compile("sc#94e scb#94e");85 AddPiece(2, 1, 1, 0, 0, -1);86 m_mesh.Compile("sc#9e4 scb#9e4");87 AddPiece(1, 2, 3, -1, -1, -2);88 m_mesh.Compile("sc#49e scb#49e");89 AddPiece(2, 3, 1, 0, -1, -2);90 m_mesh.Compile("sc#4e9 scb#4e9");91 AddPiece(6, 2, 1, -2, 0, -3);92 m_mesh.Compile("sc#e49 scb#e49");93 AddPiece(6, 2, 1, -2, -2, -3);94 95 /* Center everything -- is it needed? */96 m_mesh.Compile("tx4 tz4");97 98 m_camera = new Camera(vec3(0.f, 600.f, 0.f),99 vec3(0.f, 0.f, 0.f),100 vec3(0, 1, 0));101 m_camera->SetPerspective(70.f, 960.f, 600.f, .1f, 1000.f);102 m_camera->SetTarget(vec3(0.f, -10.f, 0.f));103 m_camera->SetPosition(vec3(-100.f, 60.f, 0.f));104 Ticker::Ref(m_camera);105 106 m_ready = false;107 }108 109 virtual void TickGame(float seconds)110 {111 WorldEntity::TickGame(seconds);112 113 m_angle += seconds * 45.0f;114 115 mat4 anim = mat4::rotate(m_angle, vec3(0, 1, 0));116 mat4 model = mat4::translate(vec3(0, 0, 0));117 118 m_matrix = model * anim;119 }120 121 virtual void TickDraw(float seconds)122 {123 WorldEntity::TickDraw(seconds);124 125 if (!m_ready)126 {127 m_mesh.MeshConvert();128 m_ready = true;129 }130 131 Video::SetClearColor(vec4(0.0f, 0.0f, 0.0f, 1.0f));132 133 m_mesh.Render(m_matrix);134 }135 136 private:137 float m_angle;138 mat4 m_matrix;139 EasyMesh m_mesh;140 Camera *m_camera;141 142 bool m_ready;143 };144 97 145 98 int main(int argc, char **argv) 146 99 { 147 Application app(" Tutorial 5: EasyMesh", ivec2(960, 600), 60.0f);100 Application app("Jnat Demo", ivec2(960, 600), 60.0f); 148 101 new DemoJnat(); 149 102 app.Run(); -
trunk/games/demo-jnat/demo-jnat.vcxproj
r1713 r1715 44 44 </ItemGroup> 45 45 <ItemGroup> 46 <ClInclude Include="demo-jnat.h" /> 47 <ClInclude Include="player.h" /> 46 48 </ItemGroup> 47 49 <PropertyGroup Label="Globals">
Note: See TracChangeset
for help on using the changeset viewer.