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

📄 3dobjects.h

📁 一个基于symbian s60 3rd 的3D汽车游戏演示程序,模拟器上编译通过。
💻 H
字号:
   /*
============================================================================
    * Name : 3DObjects.h
    * Part of : Example3D
    * Description : Definition of 3DObjects
    * Copyright (c) 2007 Nokia Corporation
============================================================================
    */

#ifndef __3DOBJECTS_H__
#define __3DOBJECTS_H__


/*
 * 3D objects are defined by vertices and faces
 * vertices are x,y,z coordinates in 3D-space
 * faces are triangles with indexes to vertices
 * and texture coordinates x1,y1,x2,y2,x3,y3
 * faces must define triangle vertices to be
 * clockwise arranged because of backface culling
 * ( only one side of face is visible
 *
 */

//
// Car 3D object
//


const TInt KNumCarVertices = 18;
const TInt KNumCarFaces = 24;

const TInt KCarVertexData[] = {
                                    -600,-500,-250,     // box right side
                                     100,-500,-250,
                                     100, 000,-250,
                                    -600, 000,-250,

                                    -600,-500, 250,     // box left side
                                     100,-500, 250,
                                     100, 000, 250,
                                    -600, 000, 250,

                                     100,-300,-250,     // windscreen low
                                     100,-300, 250,

                                     200,-200,-200,     // enginebox right
                                     500,-200,-200,
                                     500,   0,-200,
                                     200,   0,-200,
                                     
                                     200,-200, 200,     // enginebox right
                                     500,-200, 200,
                                     500,   0, 200,
                                     200,   0, 200,


    };



const TInt KCarFaceData[] = {
                                
                                0,4,5, 5,10, 5,5, 12,5,         // box top
                                0,5,1, 5,10, 12,5, 12,10,
                                0,1,2, 0,0, 7,0, 7,5,           // box left
                                0,2,3, 0,0, 7,5, 0,5,
                                5,4,7, 7,0, 0,0, 0,5,           // box right
                                5,7,6, 7,0, 0,5, 7,5,
                                4,0,3, 0,5, 5,5, 5,10,          // box back
                                4,3,7, 0,5, 5,10, 0,10,

                                1,5,9, 7,0, 12,0, 12,2,         // windscreen
                                1,9,8, 7,0, 12,2, 7,2,

                                9,14,10, 11,2, 12,2, 12,3,      // box->enginebox joint top
                                9,10,8, 11,2, 12,3, 11,3,
                                8,10,13, 7,2, 8,3, 8,5,         // right
                                8,13,2, 7,2, 8,5, 7,5,
                                14,9,6, 8,3, 7,2, 7,5,          // left
                                14,6,17, 8,3, 7,5, 8,5,

                                14,15,11, 8,2, 11,2, 11,3,      // enginebox top
                                14,11,10, 8,2, 11,3, 8,3,
                                10,11,12, 8,3, 11,3, 11,5,      // right
                                10,12,13, 8,3, 11,5, 8,5,
                                15,14,17, 11,3, 8,3, 8,5,       // left
                                15,17,16, 11,3, 8,5, 11,5,
                                11,15,16, 11,3, 12,3, 12,5,     // front
                                11,16,12, 11,3, 12,5, 11,5

    };


//
// Road 3D object
//


const TInt KNumRoadVertices = 9;
const TInt KNumRoadFaces = 8;

const TInt KRoadVertexData[] = 
    {
    -1500,0,-1500,
    -1500,0,0,
    -1500,0,1500,
    0,0,-1500,
    0,0,0,
    0,0,1500,
    1500,0,-1500,
    1500,0,0,
    1500,0,1500                          
    };

const TInt KRoadFaceData[] = 
    {                           
    0,1,4, 128,128, 192,128, 192,192,
    0,4,3, 128,128, 192,192, 128,192,
    1,2,5, 192,128, 255,128, 255,192,
    1,5,4, 192,128, 255,192, 192,192,
    3,4,7, 128,192, 192,192, 192,255,
    3,7,6, 128,192, 192,255, 128,255,
    4,5,8, 192,192, 255,192, 255,255,
    4,8,7, 192,192, 255,255, 192,255
    
    };


//
// Grass 3D object
//


const TInt KNumGrassVertices = 4;
const TInt KNumGrassFaces = 2;

const TInt KGrassVertexData[] = {
                                    -1500, 0, -1500,
                                    -1500, 0,  1500,
                                     1500, 0,  1500,
                                     1500, 0, -1500
    };

const TInt KGrassFaceData[] = {
                                0,1,2, 128,128, 255,128, 255,255, 
                                0,2,3, 128,128, 255,255, 128,255
    };


//
// House 3D object
//


const TInt KNumHouseVertices = 8;
const TInt KNumHouseFaces = 10;


const TInt KHouseVertexData[] = {
                                    -1500, -5000, -1500,
                                    -1500, -5000,  1500,
                                     1500, -5000,  1500,
                                     1500, -5000, -1500,
                                    -1500, 0, -1500,
                                    -1500, 0,  1500,
                                     1500, 0,  1500,
                                     1500, 0, -1500
    };

const TInt KHouseFaceData[] = {
                                0,1,2, 0,0, 127,0, 127,127, 
                                0,2,3, 0,0, 127,127, 0,127,
                                0,3,7, 0,128, 127,128, 127,255, 
                                0,7,4, 0,128, 127,255, 0,255,
                                2,1,5, 0,128, 127,128, 127,255, 
                                2,5,6, 0,128, 127,255, 0,255,
                                3,2,6, 0,128, 127,128, 127,255, 
                                3,6,7, 0,128, 127,255, 0,255,
                                1,0,4, 0,128, 127,128, 127,255, 
                                1,4,5, 0,128, 127,255, 0,255,

    };


//
// Tilemapped city
// x = grass
// a = house
// 0-3 = road east, south, west, north
//


const TInt KMapWidth = 16;
const TInt KMapHeight = 32;

const TUint8 KMap[KMapHeight][KMapHeight+1]={
                        "xxxxxxxxxxxxxxxx",
                        "xxxxxxxxxxxxxxxx",
                        "xx30000000000xxx",
                        "xx3xxxx1xxxx1xxx",
                        "xx3x3000001x1xxx",
                        "xx3x3a1a1a1x1xxx",
                        "xx3x3000001x1xxx",
                        "xx303a1a1a101xxx",
                        "xx3x3000001x1xxx",
                        "xx3x3a1a1a1x1xxx",
                        "xx3x3222221x1xxx",
                        "xx3xxxx1xxxx1xxx",
                        "xx32222222221xxx",
                        "xxxxxxxxxxxxxxxx",
                        "xxxxxxxxxxxxxxxx",
                        "xxxxxxxxxxxxxxxx",

                        "xxxxxxxxxxxxxxxx",
                        "xxxxxxxxxxxxxxxx",
                        "xx30000000000xxx",
                        "xx3xxxx1xxxx1xxx",
                        "xx3x3000001x1xxx",
                        "xx3x3a1a1a1x1xxx",
                        "xx3x3000001x1xxx",
                        "xx303a1a1a101xxx",
                        "xx3x3000001x1xxx",
                        "xx3x3a1a1a1x1xxx",
                        "xx3x3222221x1xxx",
                        "xx3xxxx1xxxx1xxx",
                        "xx32222222221xxx",
                        "xxxxxxxxxxxxxxxx",
                        "xxxxxxxxxxxxxxxx",
                        "xxxxxxxxxxxxxxxx"
    };


#endif

⌨️ 快捷键说明

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