射击的乐趣:WIN32诠释打飞机游戏源码补充
打飞机游戏源码补充
从指定位置加载bmp并显示到对话框。
, , LR_LOADFROMFILE);
{
BITMAP bmpinfo;
CClientDC pdc( CDC dc;
dc.CreateCompatibleDC(&pdc);
dc.SelectObject(bmp);
CRect rect;
GetClientRect(&rect);
pdc.BitBlt(, ,, ,&dc, , , SRCCOPY);
DeleteDC(pdc);
ReleaseDC(&dc);
}
{
AfxMessageBox(_T( }
}
双缓冲贴图演示:
pBufferdc.BitBlt(, , bkinfo.bmWidth, bkinfo.bmHeight, &pBMPdc, , , SRCCOPY);
pBMPdc.SelectObject(bullebmp->m_hObject);
; i < iCurbullet; i++)
{
pBufferdc.TransparentBlt(bullet[i].pos_x, bullet[i].pos_y, bullet[i].Deswidth, bullet[i].Desheight, &pBMPdc, bullet[i].Sou_x, bullet[i].Sou_y, bullet[i].Deswidth, bullet[i].Desheight, RGB(, , ));
}
pdc.BitBlt(, , bkinfo.bmWidth, bkinfo.bmHeight, &pBufferdc, , , SRCCOPY);
DeleteDC(pdc);
DeleteObject(ptbmp);
DeleteDC(pBufferdc);
DeleteDC(pBMPdc);
}
定时器设置、取消、处理的演示代码:
;
;
life = ;
iCurPlane = ;
iCurbullet = ;
AddPlane();
AddDefender();
SetTimer(, , NULL);
SetTimer(, , NULL);
SetTimer(, , NULL);
SetTimer(, , NULL);
}
}
:
}
, );
}
{
KillTimer();
KillTimer();
))
{
AfxMessageBox(_T( OnOK();
}
{
}
}
}
; j < iCurbullet; j++)
{
bullet[j].pos_y -= bullespeed;
)
DeleteBullet(j--);
}
OnShot();
PastPlane();
}
);
))
AfxMessageBox(_T( OnOK();
}
{
}
}
superdefender.Desheight = defenderinfo.bmHeight;
superdefender.Deswidth = defenderinfo.bmWidth;
superdefender.pos_x = (bkinfo.bmWidth - defenderinfo.bmWidth)/;
superdefender.pos_y = bkinfo.bmHeight-defenderinfo.bmHeight;
superdefender.Sou_x = ;
superdefender.Sou_y = ;
superdefender.status = plstatus[];
}
碰撞检测以及处理的过程:
;
;
;
;
+ (superdefender.Deswidth + plane[i].Deswidth)*(superdefender.Deswidth + plane[i].Deswidth)/))
{
rect.left = plane[i].pos_x;
rect.right = plane[i].pos_x + plane[i].Deswidth;
rect.top = plane[i].pos_y;
rect.bottom = plane[i].pos_y + plane[i].Desheight;
CPoint point1, point2, point3, point4;
point1.x = superdefender.pos_x;
point1.y = superdefender.pos_y;
point2.x = superdefender.pos_x + superdefender.Deswidth;
point2.y = superdefender.pos_y;
point3.x = superdefender.pos_x;
point3.y = superdefender.pos_y + superdefender.Desheight;
point4.x = superdefender.pos_x + superdefender.Deswidth;
point4.y = superdefender.pos_y + superdefender.Desheight;
superdefender.status = DESTROYED;
}
{
life -= ;
AddDefender();
}
}
}
修改对话框大小以及自定义对话框的方法:
GetClientRect(rect);
ClientToScreen(rect);
MoveWindow(rect.left, rect.top, bkinfo.bmWidth, bkinfo.bmHeight, TRUE);
射击的乐趣:WIN32诠释打飞机游戏源码补充的更多相关文章
- 射击的乐趣:WIN32诠释打飞机游戏
一楼留给链接http://blog.csdn.net/crocodile__/article/details/11860129 楼上神贴,膜拜片刻...... 一.游戏玩法和已经实现的功能 1.打开游 ...
- HTML5小游戏源码收藏
html5魅族创意的贪食蛇游戏源码下载 html5网页版打砖块小游戏源码下载 html5 3D立体魔方小游戏源码下载 html5网页版飞机躲避游戏源码下载 html5三国人物连连看游戏源码下载 js ...
- ios源码-ios游戏源码-ios源码下载
游戏源码 一款休闲类的音乐小游戏源码 该源码实现了一款休闲类的音乐小游戏源码,该游戏的源码很简单,而且游戏的玩法也很容易学会,只要我们点击视图中的grid,就可以 人气:2943运行环境:/Xco ...
- 15款Cocos2d-x游戏源码
(1)用cocos2d-x开发的中国象棋游戏源码 使用Cocos2d-X2.2.3开发的一款中国象棋游戏,游戏中可以实现.新局面.悔棋.游戏音乐.胜利后会显示游戏结果. 源码下载:http://www ...
- 3D坦克大战游戏源码
3D坦克大战游戏源码,该游戏是基于xcode 4.3,ios sdk 5.1开发.在xcode4.3.3上完美无报错.兼容ios4.3-ios6.0 ,一款ios平台上难得的3D坦克大战游戏源码,有2 ...
- iOS版打地鼠游戏源码
打地鼠游戏源码,游戏是一款多关卡基于cocos2d的iPad打地鼠游戏源码,这也是一款高质量的打地鼠游戏源码,可以拥有逐步上升的关卡的设置,大家可以在关卡时设置一些商业化的模式来盈利的,非常完美的一款 ...
- html5 canvas简易版捕鱼达人游戏源码
插件描述:html5利用canvas写的一个js版本的捕鱼,有积分统计,鱼可以全方位移动,炮会跟着鼠标移动,第一次打开需要鼠标移出背景图,再移入的时候就可以控制炮的转动,因为是用的mouseover触 ...
- ios跑酷游戏源码完整版
今天在网上看到了一个很流行的ios游戏源码,酷跑游戏源码,个人下载感觉非常不错,运行起来非常不错的,大家可以研究一下吧,由于源码文件较大,没有上传,请大家见谅. 由于文件较大,没有上传了,大家可以到这 ...
- 网狐6603棋牌游戏源码.rar
网狐6603棋牌游戏源码.rar http://pan.baidu.com/s/1dFgGNq5 网络收集仅供学习,下载后请务必在24小时内删除! 以上是原vc6.0源码,下载后使用vs2015编译, ...
随机推荐
- 214. Shortest Palindrome
题目: Given a string S, you are allowed to convert it to a palindrome by adding characters in front of ...
- Git教程(11)把本地的项目传到远程
1,在远程建立仓库 得到远程仓库地址,如: https://github.com/paulboone/ticgit 2,进入到项目根目录,初始化一个本地仓库 $ git init 3,为本地仓库添加 ...
- ubuntu12.04 make xconfig出错解决
xconfig是linux下X Window环境中用于配制的一个工具,和menuconfig相似,但用法更友好方便,用如下命令可以进入配制界面: make xconfig 因为在ubuntu系统中,编 ...
- Android开发之MediaPlayer类
官网关于MediaPlayer类的使用简介:
- 使用Spring框架的12个开源项目
使用Spring框架的12个开源项目 http://www.csdn.net/article/2013-10-14/2817176-open-source-projects-that-use-spri ...
- [转]jBoss事务控制
转自:http://blog.csdn.net/trendgrucee/article/details/8545512 一.基础知识 1.JTA,即Java Transaction API,译为J ...
- JDBC基础教程
本文实例讲述了JDBC基础知识与技巧.分享给大家供大家参考.具体分析如下: 1.什么是JDBC? 通俗来讲JDBC技术就是通过java程序来发送SQL语句到数据库,数据库收到SQL语句后执行,把结果返 ...
- 结构型:代理模式 Vs 适配器模式 Vs 门面模式(外观模式)
先上UML图 代理模式: 适配器模式: 门面模式(外观模式): 打了例子……呃……举个比方 代理模式: 水浒街,西门庆看上潘金莲,想和她嘿咻嘿咻,但是自己有不能去找潘金莲去说,于是他找到了金牌代理人王 ...
- [转]ubuntu zip 文件乱码解决 压缩乱码
ubuntu zip 文件乱码解决 压缩乱码 1.1 通过unzip行命令解压,指定字符集 unzip -O CP936 xxx.zip (用GBK, GB18030也可以) 有趣的是unzip的ma ...
- [selenium webdriver Java]处理弹出窗口
Selenium WebDriver测试弹出窗口,包括识别弹出窗口,将driver转到新的窗口,在新的串钩中执行而是步骤,然后再转换到最初的窗口. 通过名称(name)识别和处理: Selenium ...