⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3dengine.h

📁 一个三维打斗游戏
💻 H
字号:
// (C) Copyright 1996 by Anthony J. Carin.  All Rights Reserved.
#ifndef _3DENGINE_H
#define _3DENGINE_H

#include "3dshapes.h"
#include <stdio.h>

const   long  VIEWRANGE = 17;

extern view camera;

class surfs : public polygon
{

public:

         surfs() :  polygon() {};
virtual ~surfs() {}
         surfs(surfs& s) : polygon(s) {}
         surfs(coordinate& a, coordinate& b, coordinate& c);
         surfs(coordinate& a, coordinate& b, coordinate& c, coordinate& d);

virtual char IsABmp() { return FALSE; }

virtual void CalcNormals();
virtual void xrotate(direction& d);
virtual void yrotate(direction& d);
virtual void zrotate(direction& d);
virtual void operator +=(coordinate& c);
virtual void operator =(surfs& s);
virtual char iswithin(coordinate& c);
virtual void draw();

protected:

float  NormalX;
float  NormalY;
float  NormalZ;

};

inline surfs::surfs(coordinate& a, coordinate& b, coordinate& c) :
      polygon(a,b,c) {}

inline surfs::surfs(coordinate& a, coordinate& b, coordinate& c, coordinate& d) :
      polygon(a,b,c,d) {}

class bmpsurf;

class image
{

public:

         image(LPCTSTR filename, direction ydir = 0);
virtual ~image();
         void     setto(coordinate& p)    { m_view.setto(p); }
         void     setto(view& p)          { m_view = p; }
         void     setxdir(direction& dir) { m_view.setxdir(dir); }
         void     setydir(direction& dir) { m_view.setydir(dir); }
         void     setzdir(direction& dir) { m_view.setzdir(dir); }
         void     setyoff(direction& dir) { m_yoff = dir; }
         void     setcolor(COLORREF c);
         void     setbmpsurf(short index, CString& face);
         void     draw();
         void     OnlySurfExemptFromIntersect();
         CString  GeneralUseString()      { return m_genstring; }
         surfs   *OnlySurf();

protected:

         float  m_dist;

private:

         FILE    *fptr;
         short    numpoints;
         short    numsurfs;
         point   *m_points;
         surfs  **m_surfs;
         surfs  **m_mysurfs;
         tccolor  color;
         view     m_view;
         float    m_size;
         direction m_yoff;
         direction xdirfromcamera;
         direction ydirfromcamera;
         CString  m_genstring;
         void     readfile(LPCTSTR filename);
         void     getsize(char *buf);
         void     getsurfaces(char *buf);
         void     getpoints(char *buf);
         char    *findend(char *ptr);
         float    convertfloat(char *ptr) { return (float)atof(ptr)/100.0f; }
         void     copysurfs();
         void     getdistance();
         char     outofrange();
         int      multiplesurfs(char *ptr);
};

inline void  image::getdistance()
{
      m_dist = m_view.distanceto(camera);
}

inline void image::setcolor(COLORREF c)
{
   color = c;
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -