资源简介
一个简单的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个文件信息
- 上一篇:小波阈值图像去噪源代码
- 下一篇:台式机电源电路图
评论
共有 条评论