• 大小: 929KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签:

资源简介

一个简单的3D游戏源码,效果不错,可供初学者参考

资源截图

代码片段和文件信息

// Billiard ball simulator
// Created by Nelis Franken
// -----------------------------------------------------------
//  Main implementation file
// -----------------------------------------------------------

#include “billiards.h“

// Loads 24-bit bitmap files with 1 plane only.
// (Disclaimer: This function originally obtained from http://nehe.gamedev.net)
int ImageLoad(const char *filename Image *image) {

    FILE *file;
    unsigned long size;
    unsigned long i;
    unsigned short int planes;
    unsigned short int bpp;
    char temp finalName[80];

strcpy(finalName “textures/“ );
strcat(finalName filename );

    if ((file = fopen(finalName “rb“))==NULL) {
printf(“File Not Found : %s\n“finalName);
return 0;
    }

    fseek(file 18 SEEK_CUR);

    if ((i = fread(&image->sizeX 4 1 file)) != 1) {
printf(“Error reading width from %s.\n“ finalName);
return 0;
    }

    if ((i = fread(&image->sizeY 4 1 file)) != 1) {
printf(“Error reading height from %s.\n“ finalName);
return 0;
    }

    size = image->sizeX * image->sizeY * 3;

    if ((fread(&planes 2 1 file)) != 1) {
printf(“Error reading planes from %s.\n“ finalName);
return 0;
    }

    if (planes != 1) {
printf(“Planes from %s is not 1: %u\n“ finalName planes);
return 0;
    }

    if ((i = fread(&bpp 2 1 file)) != 1) {
printf(“Error reading bpp from %s.\n“ finalName);
return 0;
    }

    if (bpp != 24) {
printf(“Bpp from %s is not 24: %u\n“ finalName bpp);
return 0;
    }

    fseek(file 24 SEEK_CUR);

    image->data = (char *) malloc(size);
    if (image->data == NULL) {
printf(“Error allocating memory for color-corrected image data“);
return 0;
    }

    if ((i = fread(image->data size 1 file)) != 1) {
printf(“Error reading image data from %s.\n“ finalName);
return 0;
    }

    for (i=0;i temp = image->data[i];
image->data[i] = image->data[i+2];
image->data[i+2] = temp;
    }

    return 1;
}

// Determines the normal from any three points on a plane.
vector3 getNormal(GLfloat point1[3] GLfloat point3[3] GLfloat point4[3]) {
vector3 theNormal = vector3(0.00.00.0);
theNormal.x = (point1[1] - point4[1])*(point3[2] - point4[2]) - (point3[1] - point4[1])*(point1[2] - point4[2]);
theNormal.y = (point3[0] - point4[0])*(point1[2] - point4[2]) - (point1[0] - point4[0])*(point3[2] - point4[2]);
theNormal.z = (point1[0] - point4[0])*(point3[1] - point4[1]) - (point3[0] - point4[0])*(point1[1] - point4[1]);
return theNormal;
}

// Renders the billiard balls to screen (with dynamic shadows)
void renderBalls() {

GLfloat m[16];
for (int i=0; i < 15; i++) m[i] = 0.0;
m[0] = m[5] = m[10] = 1.0;
m[7] = (-1.0)/(light0Pos[1] + 2.0);

for (int p=0; p < ballCount; p++) {
glPushMatrix();
glTranslatef(ballList[p].position.xballList[p].position.yballList[p].position.z);

// Determine shadows.
glPushMatrix();
glTranslatef(light0Pos[0] light0Pos[1]+0.65 light0Pos[2]);
glMultMa

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4486  2003-01-13 15:06  简单游戏开发源码之-3D台球游戏源码简单C++\audio\hit.wav

     文件       1555  2003-01-13 15:12  简单游戏开发源码之-3D台球游戏源码简单C++\audio\shoot.wav

     文件        578  2003-01-13 14:36  简单游戏开发源码之-3D台球游戏源码简单C++\audio\side.wav

     文件       4050  2003-01-13 14:36  简单游戏开发源码之-3D台球游戏源码简单C++\audio\sunk.wav

     文件      47974  2003-01-15 17:56  简单游戏开发源码之-3D台球游戏源码简单C++\billiards.cpp

     文件     117044  2003-01-15 18:00  简单游戏开发源码之-3D台球游戏源码简单C++\billiards.exe

     文件       6911  2003-01-15 18:24  简单游戏开发源码之-3D台球游戏源码简单C++\billiards.h

     文件     768840  2002-01-21 19:52  简单游戏开发源码之-3D台球游戏源码简单C++\cygwin1.dll

     文件      61440  2001-06-05 16:04  简单游戏开发源码之-3D台球游戏源码简单C++\EaxAc3.dll

     文件     221184  2000-09-29 16:45  简单游戏开发源码之-3D台球游戏源码简单C++\glut32.dll

     文件        169  2003-01-13 12:13  简单游戏开发源码之-3D台球游戏源码简单C++\Makefile

     文件        122  2002-12-31 23:16  简单游戏开发源码之-3D台球游戏源码简单C++\Makefile.Linux

     文件       2853  2003-01-15 17:59  简单游戏开发源码之-3D台球游戏源码简单C++\mySphere.cpp

     文件       1036  2003-01-15 17:59  简单游戏开发源码之-3D台球游戏源码简单C++\mySphere.h

     文件     143360  2002-04-10 18:17  简单游戏开发源码之-3D台球游戏源码简单C++\OpenAL32.dll

     文件       5841  2003-01-15 19:15  简单游戏开发源码之-3D台球游戏源码简单C++\readme.txt

     文件      49208  2003-01-07 10:32  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_black.bmp

     文件      49208  2003-01-07 10:38  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_blue_solid.bmp

     文件      49208  2003-01-07 10:39  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_blue_stripe.bmp

     文件      49208  2003-01-07 12:19  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_brown_solid.bmp

     文件      49208  2003-01-07 12:20  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_brown_stripe.bmp

     文件      49208  2003-01-07 14:27  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_green_solid.bmp

     文件      49208  2003-01-07 12:22  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_green_stripe.bmp

     文件      49208  2003-01-07 12:23  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_orange_solid.bmp

     文件      49208  2003-01-07 12:24  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_orange_stripe.bmp

     文件      49208  2003-01-07 12:26  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_purple_solid.bmp

     文件      49208  2003-01-07 12:26  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_purple_stripe.bmp

     文件      49208  2003-01-07 12:29  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_red_solid.bmp

     文件      49208  2003-01-07 12:30  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_red_stripe.bmp

     文件       3128  2003-01-03 16:20  简单游戏开发源码之-3D台球游戏源码简单C++\textures\ball_white.bmp

............此处省略46个文件信息

评论

共有 条评论

相关资源