射击的乐趣: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编译, ...
随机推荐
- 219. Contains Duplicate II
题目: Given an array of integers and an integer k, find out whether there are two distinct indices i a ...
- ajax返回son数据
JSON 只是一种文本字符串.它被存储在 responseText 属性中 为了读取存储在 responseText 属性中的 JSON 数据,需要根据 JavaScript 的 eval 语句. 函 ...
- MySQL复制应用中继日志解析
前言:SQL线程应用中继日志,在binlog_format是row格式的时候,是居于主键更新,下面结合一张图来证明 1.从一个大神那边得到一张图片,SQL线程应用中继日志流程,下面就实验验证一下:(P ...
- 为Windows 7添加“Internet打印”功能
http://wangchunhai.blog.51cto.com/225186/1156589/
- JADE提升篇
以下如果未特殊声明,都在JADE管理器中运行,然后再Eclipse控制台中查看! JADE行为类 在前面的例子中,Agent所作的工作都定义在了setup方法中,实际上它具有的行为和执行的动作都应该定 ...
- Ubuntu安装已经下载好的文件包
默认的文件下载都在 ~/Downloads 文件夹里面. 按 ctrl+alt+t 打开命令. 1.解压下载好的文件包,如: tar -xvf Sublime\ Text\ 2.0.2.tar.bz2 ...
- hdu4631Sad Love Story(多校3)(最接近点对)
http://acm.hdu.edu.cn/showproblem.php?pid=4631 比赛的时候搜到了最接近点对的求法 Nlog(N) 又估摸着依次插入求的话会TLE 想了想觉得可以先把最近的 ...
- HashMap和Hashtable的区别(1)
导读: 1 HashMap不是线程安全的 hastmap实现了map接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值.HashMap允许null key和null ...
- 干货分享:让你分分钟学会 javascript 闭包
闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...
- Java [leetcode 27]Remove Element
题目描述: Given an array and a value, remove all instances of that value in place and return the new len ...