射击的乐趣: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编译, ...
随机推荐
- 在windows下使用git需要反复输入用户名和密码的问题
节选自我还在写的git文档中的一部分,用md写的,博客园竟然还不支持markdown,完全没有格式啊,懒得弄了,不过解决方法是没有问题的 在win下使用git,如果没有任何设置,一定会反复输入用户名和 ...
- 【开源推荐】AllJoyn:打造全球物联网的通用开源框架
摘要:随着智能设备的发展,物联网逐渐进入了人们的生活.据预测,未来几乎一切东西(超过500亿台设备)都可以互联.高通公司发布了开源项目AllJoyn,这是一个能够使连接设备间进行互操作的通用软件框架和 ...
- poj 水题系列
题目:http://poj.org/problem?id=3006 筛选法求素数 #include <iostream> #include<cstdio> #include&l ...
- eclipse 中创建maven web项目
Maven的Eclipse插件m2eclipse在线安装地址 http://m2eclipse.sonatype.org/sites/m2e:我又试了link方式安装也没什么作用,不知怎么回事? 还有 ...
- 安装nging,php
http://www.zihou.me/html/2010/11/14/2658.html http://www.linuxidc.com/Linux/2011-04/34964p4.htm http ...
- BZOJ3451: Tyvj1953 Normal
题解: 好神的一道题.蒟蒻只能膜拜题解. 考虑a对b的贡献,如果a是a-b路径上第一个删除的点,那么给b贡献1. 所以转化之后就是求sigma(1/dist(i,j)),orz!!! 如果不是分母的话 ...
- I.MX6 Linux kernel LVDS backlight enable
/*************************************************************************** * I.MX6 Linux kernel LV ...
- 【众秒之门 JavaScript与jQuery技术精粹 #BOOK#】第1章 初学JavaScript需知的七件事
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- 使用powerdesigner 画图的详细说明
一.概念数据模型概述 数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求: 1)能够比较真实地模拟现实世界 2)容易为人所理解 3)便于计算机实现 概念数据模型也称信息模型,它以实体- ...
- MVC的EF编辑,不用查询直接修改
EF中会为每个 管理的 实体对象 创建一个代理包装类对象,其中会跟踪 实体对象 的状态和每个属性的状态: 一.通常使用EF更新的方式,先查询出要修改的数据,然后再修改新的值:实体对象被修改的属性 在 ...