Changeset 1715


Ignore:
Timestamp:
Aug 11, 2012, 1:40:00 AM (11 years ago)
Author:
Jnat
Message:
 
Location:
trunk/games/demo-jnat
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/games/demo-jnat/demo-jnat.cpp

    r1713 r1715  
    33#if defined HAVE_CONFIG_H
    44#   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>
    524#endif
    625
     
    1029using namespace lol;
    1130
    12 class DemoJnat : public WorldEntity
     31
     32#include "demo-jnat.h"
     33
     34
     35
     36DemoJnat::DemoJnat()
    1337{
    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
     61DemoJnat::~DemoJnat(){
     62        Ticker::Unref(m_player);
     63}
     64
     65void 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
     82void DemoJnat::TickDraw(float seconds)
     83{
     84    WorldEntity::TickDraw(seconds);
     85
     86    if (!m_ready)
    1687    {
    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;
    3290    }
    3391
    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));
    4293
    43         /* Flat white LOL */
    44         m_mesh.Compile("sc#ccc scb#ccc");
     94    m_mesh.Render(m_matrix);
     95}
    4596
    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 };
    14497
    14598int main(int argc, char **argv)
    14699{
    147     Application app("Tutorial 5: EasyMesh", ivec2(960, 600), 60.0f);
     100    Application app("Jnat Demo", ivec2(960, 600), 60.0f);
    148101    new DemoJnat();
    149102    app.Run();
  • trunk/games/demo-jnat/demo-jnat.vcxproj

    r1713 r1715  
    4444  </ItemGroup>
    4545  <ItemGroup>
     46    <ClInclude Include="demo-jnat.h" />
     47    <ClInclude Include="player.h" />
    4648  </ItemGroup>
    4749  <PropertyGroup Label="Globals">
Note: See TracChangeset for help on using the changeset viewer.