資源簡(jiǎn)介
使用OpenGL實(shí)現(xiàn)多個(gè)小球在密閉空間內(nèi)的碰撞反彈三維場(chǎng)景,編程基于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個(gè)字節(jié)
??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個(gè)字節(jié)
??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;?????????????????//?圖形的大小(字節(jié)數(shù))
????unsigned?long?i;????????????????????//?標(biāo)準(zhǔn)計(jì)數(shù)器
????unsigned?short?int?planes;??????????//?圖形的平面數(shù)(必須為1)
????unsigned?short?int?bpp;?????????????//?每個(gè)像素的位數(shù)(必須為24)
????char?temp;??????????????????????????//?臨時(shí)的顏色保存
????//?確保文件存在
????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);
????
????//?計(jì)算圖形的大小(假定每個(gè)像素為24位或3個(gè)字節(jié))
????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);
????//?讀入數(shù)據(jù)
????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;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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個(gè)文件信息
評(píng)論
共有 條評(píng)論