资源简介
使用OpenGL实现多个小球在密闭空间内的碰撞反弹三维场景,编程基于Visual C++

代码片段和文件信息
// Image.cpp: implementation of the CImage class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “MyCollision1.h“
#include “Image.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CImage::CImage()
{
}
CImage::~CImage()
{
}
unsigned int CImage::getint(FILE *fp)
{
int c c1 c2 c3;
// 获得4个字节
c = getc(fp);
c1 = getc(fp);
c2 = getc(fp);
c3 = getc(fp);
return ((unsigned int) c) +
(((unsigned int) c1) << 8) +
(((unsigned int) c2) << 16) +
(((unsigned int) c3) << 24);
}
unsigned int CImage::getshort(FILE *fp)
{
int c c1;
// 获得2个字节
c = getc(fp);
c1 = getc(fp);
return ((unsigned int) c) + (((unsigned int) c1) << 8);
}
int CImage::ImageLoad(char *filename Image *image)
{
FILE *file;
unsigned long size; // 图形的大小(字节数)
unsigned long i; // 标准计数器
unsigned short int planes; // 图形的平面数(必须为1)
unsigned short int bpp; // 每个像素的位数(必须为24)
char temp; // 临时的颜色保存
// 确保文件存在
if ((file = fopen(filename “rb“))==NULL) {
printf(“File Not Found : %s\n“filename);
return 0;
}
fseek(file 18 SEEK_CUR);
// 读宽度
image->sizeX = getint (file);
printf(“Width of %s: %lu\n“ filename image->sizeX);
// 读高度
image->sizeY = getint (file);
printf(“Height of %s: %lu\n“ filename image->sizeY);
// 计算图形的大小(假定每个像素为24位或3个字节)
size = image->sizeX * image->sizeY * 3;
planes = getshort(file);
if (planes != 1) {
printf(“Planes from %s is not 1: %u\n“ filename planes);
return 0;
}
bpp = getshort(file);
if (bpp != 24) {
printf(“Bpp from %s is not 24: %u\n“ filename bpp);
return 0;
}
fseek(file 24 SEEK_CUR);
// 读入数据
image->data = (char *) malloc(size);
if (image->data == NULL)
{
MessageBox(NULL“Error allocating memory for color-corrected image data“ “ERROR“MB_OK);
return 0;
}
if ((i = fread(image->data size 1 file)) != 1)
{
MessageBox(NULL“Error reading image data“ “ERROR“MB_OK);
return 0;
}
for (i=0;i {
temp = image->data[i];
image->data[i] = image->data[i+2];
image->data[i+2] = temp;
}
return 1;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-10-17 20:47 MyCollision1\
目录 0 2011-07-25 03:51 MyCollision1\Data\
文件 49208 2005-10-19 15:33 MyCollision1\Data\Boden.bmp
文件 23584 2005-10-19 15:33 MyCollision1\Data\Explode.wav
文件 49208 2005-10-19 15:33 MyCollision1\Data\Marble.bmp
文件 12344 2005-10-19 15:33 MyCollision1\Data\Spark.bmp
文件 49208 2005-10-19 15:33 MyCollision1\Data\Wand.bmp
文件 2697 2005-10-19 15:33 MyCollision1\Image.cpp
文件 690 2005-10-19 15:33 MyCollision1\Image.h
文件 2513 2005-10-19 15:33 MyCollision1\MainFrm.cpp
文件 1581 2005-10-19 15:33 MyCollision1\MainFrm.h
文件 540 2005-10-19 15:33 MyCollision1\Mathex.h
文件 6387 2005-10-19 15:33 MyCollision1\Matrix33.cpp
文件 3094 2005-10-19 15:33 MyCollision1\Matrix33.h
文件 2376 2005-10-19 15:33 MyCollision1\MyCollision1.clw
文件 4317 2005-10-19 15:33 MyCollision1\MyCollision1.cpp
文件 5236 2005-10-19 15:33 MyCollision1\MyCollision1.dsp
文件 549 2005-10-19 15:33 MyCollision1\MyCollision1.dsw
文件 1416 2005-10-19 15:33 MyCollision1\MyCollision1.h
文件 74752 2014-10-17 20:47 MyCollision1\MyCollision1.ncb
文件 55808 2014-10-17 20:47 MyCollision1\MyCollision1.opt
文件 2226 2014-10-17 20:46 MyCollision1\MyCollision1.plg
文件 10615 2005-10-19 15:33 MyCollision1\MyCollision1.rc
文件 1862 2005-10-19 15:33 MyCollision1\MyCollision1Doc.cpp
文件 1535 2005-10-19 15:33 MyCollision1\MyCollision1Doc.h
文件 27593 2005-10-19 15:33 MyCollision1\MyCollision1View.cpp
文件 3608 2005-10-19 15:33 MyCollision1\MyCollision1View.h
文件 4453 2005-10-19 15:33 MyCollision1\ReadMe.txt
目录 0 2014-10-17 20:46 MyCollision1\Release\
目录 0 2011-07-25 03:51 MyCollision1\Release\Data\
文件 49208 2005-10-19 15:33 MyCollision1\Release\Data\Boden.bmp
............此处省略29个文件信息
相关资源
- C++获取计算机的CPU ID,硬盘序列号等
- C++头文件转delphi工具 + 源码
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- 安卓c语言开发SDL2+opengles
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
评论
共有 条评论