/*************************************************
*
* implementation
*
**************************************************/
#include <windows.h>
#include <stdio.h>
#include <olectl.h>
#include <ole2.h>
#include "resource.h"
#include "func.h"
HBITMAP LoadAnImage(int rss)
{
////////////////////////////////////////////////////////////////
//
//
//
////////////////////////////////////////////////////////////////
HRSRC res = FindResource(GetModuleHandle(NULL),MAKEINTRESOURCE(rss),"bit");
HGLOBAL mem = LoadResource(GetModuleHandle(NULL), res);
void *data = LockResource(mem);
size_t sz = SizeofResource(GetModuleHandle(NULL), res);
IPicture *pic = NULL;
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, sz);
LPVOID pvData = GlobalLock( hGlobal );
HBITMAP hB = 0;
LPSTREAM pStream = NULL;
memcpy(pvData,data,sz);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal( hGlobal, TRUE, &pStream );
OleLoadPicture(pStream, 0, FALSE,IID_IPicture, (void **)&pic);
pic->get_Handle((unsigned int*)&hB);
pStream->Release();
HBITMAP hBB = (HBITMAP)CopyImage(hB,IMAGE_BITMAP,0,0,
LR_COPYRETURNORG);
FreeResource(mem);
GlobalFree(hGlobal);
pic->Release();
return hBB;
}
void loading(HWND hwnd){
////////////////////////////////////////////////////////////////
//
// (gif -> HBITMAP)
//
////////////////////////////////////////////////////////////////
int i,j,count=IDR_BIT1; //
SetTimer(hwnd,1,20,NULL);
HDC hdc=GetDC(hwnd);
HDC mdc1=CreateCompatibleDC(hdc);
// hdc mdc2=CreateCompatibleDC(hdc);
HBRUSH hbr=(HBRUSH)GetStockObject( WHITE_BRUSH);
tmpbitmap=CreateCompatibleBitmap(hdc,640,480); //
HBITMAP oldhb=(HBITMAP)SelectObject(mdc1,tmpbitmap);
HBRUSH old=(HBRUSH)SelectObject(mdc1,hbr);
hb_bgnd=CreateCompatibleBitmap(hdc,640,480);
hbm=CreateCompatibleBitmap(hdc,640+40,480+60);
Rectangle(mdc1,0,0,680,540);
SelectObject(mdc1,old);
DeleteObject(hbr);
chch.life=3; //
enemy[0].dir=rand()%4;
enemy[0].pt.top=300;
enemy[0].pt.left=250; //
enemy[0].pt.right=359;
enemy[0].pt.bottom=381;
enemy[1].dir=rand()%4; //ufo
enemy[1].pt.top=200;
enemy[1].pt.left=100;
enemy[1].pt.right=152;
enemy[1].pt.bottom=239;
enemy[1].deadoralive=0;
enemy[2].deadoralive=0;
enemy[3].deadoralive=0;
enemy[4].deadoralive=0; //
enemy[2].dir=rand()%4;
enemy[2].pt.top=250;
enemy[2].pt.left=450;
enemy[2].pt.right=502;
enemy[2].pt.bottom=289;
enemy[3].dir=rand()%4;
enemy[3].pt.top=400;
enemy[3].pt.left=300;
enemy[3].pt.right=352;
enemy[3].pt.bottom=439;
enemy[4].dir=rand()%4;
enemy[4].pt.top=350;
enemy[4].pt.left=300;
enemy[4].pt.right=352;
enemy[4].pt.bottom=389;
/*************************************************
*
*
**************************************************/
for(i=0;i<641;i++) //
mapp[480][i]=mapp[0][i]=1;
mapp[0][0]=1;
for (i=0;i<481;i++)
mapp[i][640]=mapp[i][0]=1;
/*************************************************
*
**************************************************/
for(i=0;i<4;i++)
for(j=0;j<6;j++)
chamcham[i][j]=LoadAnImage(count++);
for(i=0;i<12;i++) boss[i]=LoadAnImage(count++);
for(i=0;i<24;i++) count++;//eri[i]=LoadAnImage(count++);
for(i=0;i<23;i++) explo[i]=LoadAnImage(count++);
for(i=0;i<16;i++) ufo[i]=LoadAnImage(count++);
count+=2;
pannel =LoadAnImage(count++);
numb =LoadAnImage(count++);
clear =LoadAnImage(count++);
main =LoadAnImage(count++);
bgnd =LoadAnImage(count++);
bbgnd =LoadAnImage(count++);
shield[0] =LoadAnImage(count++);
shield[1] =LoadAnImage(count++);
life =LoadAnImage(count++);
for(i=0;i<4;i++) stand[i] =LoadAnImage(count++);
for(i=0;i<12;i++)number[i] =LoadAnImage(count++);
/*************************************************
*
* gif,jpg LOADING
*
**************************************************/
DeleteDC(hdc);
DeleteDC(mdc1);
}
void del(){
////////////////////////////////////////////////////////////////
//
// CLOSE
//
//////////////////////////////////////////////////////////////////
int i,j;
for(i=0;i<4;i++)
for(j=0;j<6;j++) DeleteObject(chamcham[i][j]);
for(i=0;i<12;i++) DeleteObject(boss[i]);
// for(i=0;i<24;i++) DeleteObject(eri[i]);
for(i=0;i<23;i++) DeleteObject(explo[i]);
for(i=0;i<16;i++) DeleteObject(ufo[i]);
DeleteObject(pannel);
DeleteObject(numb);
DeleteObject(clear);
DeleteObject(main);
DeleteObject(bgnd);
DeleteObject(bbgnd);
DeleteObject(shield[0] );
DeleteObject(shield[1]);
DeleteObject(tmpbitmap);
DeleteObject(life);
for(i=0;i<4;i++) DeleteObject(stand[i]);
for(i=0;i<12;i++) DeleteObject(number[i]);
/* if(hrgn0!=0) {
DeleteObject(hrgn0);
DeleteObject(hrgn1);
}*/
}
void OnPaint(HWND hwnd){
/*************************************************
*
*************************************************/
PAINTSTRUCT ps;
///////////////////////////
HDC hdc=BeginPaint(hwnd,&ps);
HDC mdc=CreateCompatibleDC(hdc);
HDC mdc2=CreateCompatibleDC(hdc);
HDC mdc3=CreateCompatibleDC(hdc);
/*************************************************
*
*
**************************************************/
HDC mdc4=CreateCompatibleDC(hdc);
HBITMAP oldbmp,oldbmp2,oldbmp3,oldbmp4;
// int temtime;
static int bossnum=0;
switch(mode){
/*************************************************
*
**************************************************/
case 0:{//오프닝
static int ttick=fps;
int temp;
HBITMAP tmhb=CreateCompatibleBitmap(hdc,640,480);
oldbmp=(HBITMAP)SelectObject(mdc,main);
oldbmp2=(HBITMAP)SelectObject(mdc2,tmhb);
BitBlt(mdc2,0,0,640,480,mdc,0,0,SRCCOPY);
if(((temp=GetTickCount())-ttick)>300 && (temp-ttick) <700){
TextOut(mdc2,250,350,"press any key.",18);
}else if((temp-ttick)>720) ttick=temp;
SetBkMode(mdc2,TRANSPARENT);
SetTextColor(mdc2, RGB(255,255,255));
TextOut(mdc2,260,370,"http://plan9.co.kr",19);
TextOut(mdc2,263,390,"maker U.S.S",13);
TextOut(mdc2,229,410,"Tools:API,OLE IPicture",25);
TextOut(mdc2,225,430,"Period:2006.03.01 ~ 03.06",27);
BitBlt(hdc,0+20,0+30,640+20,480+30,mdc2,0,0,SRCCOPY);
SelectObject(mdc,oldbmp);
SelectObject(mdc2,oldbmp2);
DeleteObject(tmhb);
}break;
case 1:{//
oldbmp=(HBITMAP)SelectObject(mdc,hbm);
oldbmp2=(HBITMAP)SelectObject(mdc2,bgnd);
oldbmp3=(HBITMAP)SelectObject(mdc3,bbgnd);
oldbmp4=(HBITMAP)SelectObject(mdc4,tmpbitmap);
HBRUSH hbr,oldh;
hbr=(HBRUSH)GetStockObject( LTGRAY_BRUSH);
oldh=(HBRUSH)SelectObject(mdc,hbr);
Rectangle(mdc,0,0,680,540);
SetBkMode(mdc,TRANSPARENT);
TextOut(mdc,5,5,"Space:Safe(enter enable) "
"arrow key:move ESC:exit TAB:restart",75);
BitBlt(mdc,0+20,0+30,640+20,480+30,mdc2,0,0,SRCCOPY);
hbr=(HBRUSH)GetStockObject( NULL_BRUSH);
SelectObject(mdc,hbr);
Rectangle(mdc,0+20,0+30,640+20,480+30);
if(hrgn0!=NULL){
HBRUSH hwhite=(HBRUSH)GetStockObject(WHITE_BRUSH);
HBRUSH hbrsh=(HBRUSH)GetStockObject(BLACK_BRUSH);
FillRgn(mdc2,hrgn0,hwhite);
BitBlt(mdc4,0,0,640,480,mdc3,0,0,WHITENESS);
FillRgn(mdc4,hrgn0,hbrsh);
BitBlt(mdc4,0,0,640,480,mdc3,0,0,SRCPAINT);
BitBlt(mdc2,0,0,640,480,mdc4,0,0,SRCAND);
DeleteObject(hrgn0);
DeleteObject(hbrsh);
DeleteObject(hwhite);
//DeleteObject(tmpbitmap);
//hrgn0=NULL;
}
if(hrgn1!=NULL){
HBRUSH hwhite=(HBRUSH)GetStockObject(WHITE_BRUSH);
HBRUSH hbrsh=(HBRUSH)GetStockObject(BLACK_BRUSH);
FillRgn(mdc2,hrgn1,hwhite);
BitBlt(mdc4,0,0,640,480,mdc3,0,0,WHITENESS);
FillRgn(mdc4,hrgn1,hbrsh);
BitBlt(mdc4,0,0,640,480,mdc3,0,0,SRCPAINT);
BitBlt(mdc2,0,0,640,480,mdc4,0,0,SRCAND);
D
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
Board clipper game (117个子文件)
icon.aps 292KB
tds0821_5.bmp 900KB
func.cpp 35KB
volfied.cpp 4KB
Thumbs.db 227KB
Thumbs.db 51KB
volfied.dsp 11KB
volfied.dsw 537B
SMyClear.gif 10KB
boss3.gif 3KB
boss4.gif 3KB
boss2.gif 3KB
boss5.gif 3KB
boss0.gif 3KB
boss1.gif 3KB
boss6.gif 3KB
boss7.gif 3KB
boss10.gif 3KB
boss11.gif 3KB
boss8.gif 3KB
boss9.gif 3KB
explo7.gif 2KB
explo6.gif 2KB
explo8.gif 2KB
explo9.gif 2KB
num8.GIF 2KB
num0.GIF 2KB
explo5.gif 2KB
explo10.gif 2KB
num2.GIF 2KB
numper.GIF 2KB
num3.GIF 2KB
num6.GIF 2KB
num5.GIF 2KB
num4.GIF 2KB
explo11.gif 2KB
explo12.gif 2KB
explo4.gif 2KB
num7.GIF 2KB
explo13.gif 2KB
explo14.gif 1KB
ufo7.gif 1KB
ufo15.gif 1KB
ufo10.gif 1KB
ufo6.gif 1KB
num1.GIF 1KB
ufo12.gif 1KB
ufo9.gif 1KB
ufo5.gif 1KB
ufo3.gif 1KB
ufo4.gif 1KB
ufo11.gif 1KB
num9.GIF 1KB
ufo2.gif 1KB
ufo13.gif 1KB
ufo14.gif 1KB
ufo0.gif 1KB
ufo1.gif 1KB
ufo8.gif 1KB
explo3.gif 1KB
001.gif 1KB
explo15.gif 1KB
explo16.gif 1KB
myscorenum.gif 1KB
levelpannel.gif 1KB
explo17.gif 1KB
numdot.GIF 1KB
shield1.GIF 956B
shield2.GIF 948B
explo18.gif 846B
explo19.gif 692B
explo20.gif 553B
ChamCham_profile001.gif 488B
ChamCham_stand_west.gif 469B
ChamCham_stand_east.gif 468B
ChamCham_stand_south.gif 459B
ChamCham_dash_west006.gif 453B
ChamCham_dash_east006.gif 448B
ChamCham_dash_east001.gif 426B
ChamCham_dash_west003.gif 426B
ChamCham_dash_east002.gif 424B
ChamCham_dash_east003.gif 424B
ChamCham_dash_west001.gif 422B
ChamCham_stand_north.gif 422B
explo21.gif 415B
ChamCham_dash_west002.gif 414B
ChamCham_dash_east005.gif 410B
ChamCham_dash_west005.gif 408B
ChamCham_dash_west004.gif 398B
ChamCham_dash_east004.gif 391B
ChamCham_dash_north006.gif 360B
ChamCham_dash_north002.gif 359B
ChamCham_dash_north003.gif 354B
ChamCham_dash_north001.gif 353B
explo2.gif 347B
explo1.gif 347B
ChamCham_dash_north004.gif 346B
ChamCham_dash_north005.gif 342B
ChamCham_dash_south002.gif 341B
ChamCham_dash_south004.gif 336B
共 117 条
- 1
- 2
revwin117
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0