• 大小: 18.59MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-21
  • 语言: 其他
  • 标签: vc++  三维  游戏  opengl  

资源简介

自己写的游戏DEMO,直接编译运行,完成了三维场景渲染,运动,碰撞检测,雾效果等

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include “3ds.h“
#include
using namespace std;

//-------------------------------------------------------
// generic stuff
//-------------------------------------------------------

#define SEEK_START           1900
#define SEEK_CURSOR          1901
             
#define MAIN3DS             0x4D4D
#define EDIT3DS             0x3D3D  // this is the start of the editor config
#define EDIT_MATERIAL       0xAFFF
#define EDIT_object         0x4000
#define OBJ_TRIMESH         0x4100
#define OBJ_LIGHT           0x4600
#define OBJ_CAMERA          0x4700
#define LIT_OFF             0x4620
#define LIT_SPOT            0x4610
#define TRI_VERTEXLIST      0x4110
#define TRI_VERTEXOPTIONS   0x4111
#define TRI_FACELIST        0x4120
#define TRI_FACEMAPPING     0x4140
#define TRI_MATRIX          0x4160
#define RGB_COLOR           0x0010
#define COLOR24             0x0011
#define SPOTLIGHT           0x4610


struct LChunk
{
    short id;
    int start;
    int end;
};

LVector3 AddVectors(const LVector3 a const LVector3 b)
{
    LVector3 t;
    t.x = a.x+b.x;
    t.y = a.y+b.y;
    t.z = a.z+b.z;
    return t;
}

LVector3 SubtractVectors(const LVector3 a const LVector3 b)
{
    LVector3 t;
    t.x = a.x-b.x;
    t.y = a.y-b.y;
    t.z = a.z-b.z;
    return t;
}

float VectorLength(const LVector3 vec)
{
    return (float)sqrt(vec.x*vec.x + vec.y*vec.y+vec.z*vec.z);
}

LVector3 NormalizeVector(const LVector3 vec)
{
    float a = VectorLength(vec);
    if (a == 0)
        return vec;
    LVector3 v;
    v.x = vec.x/a;
    v.y = vec.y/a;
    v.z = vec.z/a;
    return v;
}

LVector3 CrossProduct(const LVector3 a const LVector3 b)
{
    LVector3 v;
    v.x = a.y*b.z - a.z*b.y;
    v.y = a.z*b.x - a.x*b.z;
    v.z = a.x*b.y - a.y*b.x;
    return v;
}

void LoadIdentityMatrix(LMatrix &m)
{
    m.xAxis.x = 1.0f;
    m.xAxis.y = 0.0f;
    m.xAxis.z = 0.0f;

    m.yAxis.x = 0.0f;
    m.yAxis.y = 1.0f;
    m.yAxis.z = 0.0f;

    m.zAxis.x = 0.0f;
    m.zAxis.y = 0.0f;
    m.zAxis.z = 1.0f;

    m.pos.x = 0.0f;
    m.pos.y = 0.0f;
    m.pos.z = 0.0f;
}

LVector3 VectorByMatrix(const LMatrix m const LVector3 vec)
{
    LVector3 res;
    res.x = m.xAxis.x*vec.x + m.xAxis.y*vec.y + m.xAxis.z*vec.z;
    res.y = m.yAxis.x*vec.x + m.yAxis.y*vec.y + m.yAxis.z*vec.z;
    res.z = m.zAxis.x*vec.x + m.zAxis.y*vec.y + m.zAxis.z*vec.z;
    res = AddVectors(vec m.pos);
    return res;
}

//-------------------------------------------------------
// Lobject implementation
//-------------------------------------------------------

Lobject::Lobject()
{
    m_name = 0;
    m_nameSize = 0;
}

Lobject::~Lobject()
{
    if (m_name != 0)
        free(m_name);
}

void Lobject::SetName(const char *value)
{
    m_nameSize = strlen(value)+1;
    m_name = (char*)malloc(m_nameSize);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2010-04-21 15:27  GraphicsHomework\
     文件       21819  2010-04-17 09:25  GraphicsHomework\3ds.cpp
     文件        5196  2010-04-17 09:26  GraphicsHomework\3ds.h
     文件        1690  2005-11-09 16:05  GraphicsHomework\body.cpp
     文件        2449  2005-11-09 16:05  GraphicsHomework\body.h
     文件        8962  2010-04-17 12:37  GraphicsHomework\BoundingBox.cpp
     文件        1582  2010-04-17 12:27  GraphicsHomework\BoundingBox.h
     文件        6763  2010-04-18 13:50  GraphicsHomework\Camera.cpp
     文件        1598  2010-04-17 12:28  GraphicsHomework\Camera.h
     文件       21442  2010-04-16 21:09  GraphicsHomework\CLoad3DS.cpp
     文件        1352  2010-04-16 16:06  GraphicsHomework\CLoad3DS.h
     文件        4160  2005-11-09 16:05  GraphicsHomework\coordinate_frame.cpp
     文件        3522  2010-04-15 16:24  GraphicsHomework\coordinate_frame.h
     文件        4203  2010-04-17 15:27  GraphicsHomework\CPrerequisites.cpp
     文件        5052  2010-04-17 08:18  GraphicsHomework\CPrerequisites.h
     目录           0  2010-04-21 15:23  GraphicsHomework\Data\
     目录           0  2010-04-21 15:23  GraphicsHomework\Data\3DS\
     文件       59320  2010-04-11 13:19  GraphicsHomework\Data\3DS\balloon.3DS
     文件       93307  2010-04-17 10:44  GraphicsHomework\Data\3DS\boy.3DS
     文件       93334  2010-04-14 19:58  GraphicsHomework\Data\3DS\boy_back.3DS
     文件      200553  2010-04-13 22:48  GraphicsHomework\Data\3DS\building.3DS
     文件      231125  2010-04-15 11:24  GraphicsHomework\Data\3DS\building_nb.3DS
     文件      196223  2010-04-17 15:57  GraphicsHomework\Data\3DS\dinosaur.3DS
     文件      210575  2002-04-29 17:41  GraphicsHomework\Data\3DS\F111_L.3DS
     文件       91812  2010-04-14 23:08  GraphicsHomework\Data\3DS\farTree.3DS
     文件      152229  2010-04-17 17:06  GraphicsHomework\Data\3DS\GUTEMB_L.3DS
     文件      156778  2002-04-22 16:16  GraphicsHomework\Data\3DS\GUTEMB_L_back.3DS
     文件       10315  2010-04-17 07:54  GraphicsHomework\Data\3DS\house.3DS
     文件       19860  2010-04-12 18:24  GraphicsHomework\Data\3DS\house_back.3ds
     文件       14796  2010-04-14 21:34  GraphicsHomework\Data\3DS\middleTree.3DS
     文件       40431  2010-04-12 22:05  GraphicsHomework\Data\3DS\muoshou.3DS
............此处省略127个文件信息

评论

共有 条评论