游戏开发
游戏开发相关笔记
皮卡qiu~
这个作者很懒,什么都没留下…
展开
-
Visual C++游戏编程基础之以范围检测碰撞
一、基本思路1.如何检测碰撞2.贴图的处理,因为位图底色为白色,屏蔽图与之前完全相反,如图所示因为二进制全0表示黑色,全1表示白色,故首先将屏蔽图与背景图做OR运算,那么背景图会留下白色的部分,然后将前景图再与背景图做AND运算,最后只显示彩图;3.用vx1、vx2的第一、二部的车速,(x1,y1),(x2,y2)表示两辆车的贴图坐标;二、效果三、主要代码如下...原创 2019-07-03 22:16:14 · 506 阅读 · 1 评论 -
Visual C++游戏编程基础之摩擦力、加速度、重力
一、基本思路1.假设小球在空中只受到重力作用,一开始给它一个水平的速度,就像是平抛运动一样;2.当小球碰到地面时,受到摩擦力作用,分为x方向和y方向;3.在摩擦力作用下,1.减少水平方向的速度,2减少y方向的速度,并把Vy取负,实现触底反弹的效果;4.反弹过程Vy在重力作用下不断减小,Vx不变,直到Vy=0到达最高点,然后Vy在重力下为正,开始下落,因为Vy在摩擦力 作用下...原创 2019-07-01 22:03:12 · 1387 阅读 · 0 评论 -
Visual C++游戏编程基础之匀速运动
一、基本思路1.匀速运动:物体在每一个时刻的速度是相同的,即Vx和Vy保持不变;2.关于下次的贴图坐标: 下次X的坐标=当前X的坐标 + Vx; 下次Y的坐标=当前Y的坐标 + Vy;3.设小球匀速运动,碰到窗口边缘则反弹;二、效果...原创 2019-06-20 21:47:46 · 1231 阅读 · 0 评论 -
Visual C++游戏编程基础之搜寻迷宫出口
一、基本思路1.建立8*8迷宫数组,使用0,1,2,3初始化,0,1,2,3分别表示墙、通道、入口、出口,使用地图贴图知识建立迷宫;2.建立堆栈结构记录走过的方格编号,即走到某个方格就把该方格编号压入堆栈;若发现路不通,就把该编号出栈,栈顶元素表示 小球所在的方格编号;3.根据迷宫数组中的值,在初始化函数中对每一格进行贴图,墙贴蓝色的,其余均为白色,找到迷宫入口,记录编号并压入...原创 2019-06-16 21:31:13 · 634 阅读 · 0 评论 -
Visual C++游戏编程基础之行为型AI游戏
一、设计目标1.建立一个回合制游戏,角色设定怪物与玩家,并在下方显示它们的生命值;2.在背景图上贴上攻击标志,鼠标点击该标志时,玩家向怪物发动 攻击,并在左下角输出怪物的状态信息;3.玩家回合结束后,轮到怪物,根据怪物的HP来决定要选择哪种攻击方式或者逃跑或重伤而死;4.当某一方HP为0时,贴上游戏结束标志;二、基本思路1.初始化过程中,将背景图、怪物及其HP、玩家及其HP...原创 2019-06-16 18:51:28 · 578 阅读 · 0 评论 -
Visual C++游戏编程基础之追逐移动
一、基本思路1.追逐移动的实现与飞机追随鼠标光标原理类似;2.现在小鸟作为追逐者,设定其贴图坐标为(nowX-25,nowY-16),其中(nowX,nowY)是飞机的贴图坐标;3.通过判断小鸟贴图坐标的X坐标与nowX-25谁大谁小,来决定小鸟在飞机左边还是右边,从而决定贴哪张图;二、效果三、代码实现#include "stdafx.h"#include <...原创 2019-06-15 21:53:47 · 637 阅读 · 0 评论 -
Visual C++游戏编程基础之利用鼠标消息实现贴图
一、鼠标键入消息1.WM_LBUTTONDBLCLK 双击鼠标左键;2.WM_LBUTTONDOWN 单击鼠标左键;3.WM_LBUTTONUP 松开鼠标左键;4.鼠标中键及右键分别将上述L替换为M、R;5.WM_MOUSEMOVE 鼠标移动消息;6.WM_MOLSEWHEEL ...原创 2019-06-13 21:39:43 · 5818 阅读 · 2 评论 -
Visual C++游戏编程基础之键盘消息
一、键盘1.虚拟键码:Windows系统下所有的按键被视为虚拟键(包含鼠标在内),每一个虚拟键都有其对应的虚拟键码;2.键盘消息(1)VM_KEWDOWN:按下按键消息;(2)VM_KEYUP :松开按键消息;(3)VM_CHAR :字符消息,当按下的按键为定义于ASCII码中的可打印字符时,便发出此字符消息;3.系统键(1)VM_SYSKE...原创 2019-06-09 22:06:32 · 5609 阅读 · 1 评论 -
Visual C++游戏编程基础之多背景循环动画
一、基本思路1.现在有三张背景图:天空和草地、山峦、房屋;2.天空在最远处,其次是草地和山峦(因为山峦在草地上),最后是房屋;3.背景的循环速度是天空最慢、然后是山峦、最后是草地和房屋;4.恐龙让它原地跑动,以num记录图号,每次到末尾号,再从第0号开始;二、背景循环贴图1.以天空为例,设x0表示背景图从左向右滚动右边需要切割的宽度,初值为0;2.设背景图宽度640,裁...原创 2019-06-09 20:39:29 · 6630 阅读 · 1 评论 -
Visual C++游戏编程基础之动画显示问题
一、为什么要进行贴图修正目的是解决恐龙底下的阴影问题,要想办法让它重合,不然看起来不流畅,所以要适当修改即将贴图的坐标;二、排序贴图1.为什么要进行排序贴图? 假设有两只恐龙,1号和2号,先贴1号后贴2号,结果可能出现如图遮掩的情况 为了避免这种情况,采用排序贴图;2.什么是排序贴图? (1)首先约定,y越小表示越远,y越大表示越近; (2)建立...原创 2019-06-06 22:03:31 · 5251 阅读 · 2 评论 -
Visual C++游戏编程基础之透明动画
一、原理1.利用前面学过的透明处理,这一次相当于是对每一帧图片进行透明处理,如第一次循环对第一帧进行透明处理,接着显示;第二次对第二帧透明处理,接着显示,直到最后一帧,然后再从第一帧开始,就这样无限循环二、代码如下#include "stdafx.h"HINSTANCE hInst;HBITMAP dra,bg;//bg为背景图,dra为恐龙连续跑动,前景图及屏蔽图HDC ...原创 2019-06-05 21:29:00 · 556 阅读 · 0 评论 -
Visual C++游戏编程基础之游戏循环
一、重要函数1.函数原型 BOOLPeekMessage(LPMSGIpMsg,HWNDhWnd,UINTwMSGfilterMin,UINTwMsgFilterMax,UINTwRemoveMsg); 功 能:用于检测消息,检测到了就返回非0值,否则返回0; 参数一:接收消息信息的MSG结构指针; 参数二:其消息被检查的窗口句柄; 参...原创 2019-06-02 21:23:06 · 900 阅读 · 0 评论 -
Visual C++ 游戏编程基础之定时器的使用
一、重要函数1.定时器函数介绍 注意事项:1.定时器代号不为0,且在同一个窗口内唯一; 2.时间间隔单位是千分之一秒; 3.专门处理VM_TIMER消息的函数,若不需要则设为NULL,把消息处理放到WndProc函数中;2.定时器删除函数 Bool KillTimer( int 定时器代...原创 2019-06-02 19:20:54 · 866 阅读 · 0 评论 -
Visual C++游戏编程基础之景物贴图
一、基本思路1.首实现斜角贴图,需要显示菱形图块,使用矩形图块贴图,但是要将它的周围进行透明处理,只显示菱形部分2.计算图块索引值的公式: 列编号 = 索引值 / 每一列的图块个数; 行编号 =索引值 %每一列的图块个数;3.计算每一图块的贴图坐标公式,设矩形(菱形)长w,宽h,(xstart,ystart)为起始坐标 左上点x坐标 = xstart + 行...原创 2019-06-01 21:36:20 · 897 阅读 · 0 评论 -
Visual C++游戏编程基础之平面地图贴图
一、基本思路1.地图由3*4张图块组成,列方向4块,行方向3块,这里有3种不同颜色的图块;2.将3张不同的图块分别用0、1、2表示,建立地图数组,8行8列,用0、1、2这三个数进行初始化3.建立空白位图存到mdc,循环整个地图数组,从第一个开始,根据数组值(0或1或2)取出对应的地图,存到内存bufdc中4.根据索引值计算行列编号,计算贴图坐标,并一张一张的贴到mdc中,mdc最后...原创 2019-05-31 21:52:28 · 1147 阅读 · 0 评论 -
Visual C++游戏编程基础之透明半透明效果
一、基本思路1.半透明的原理 一张位图由许多像素组成,而每一像素包含R、G、B三原色,三原色的值决定了像素的色彩,要实现半透明效果,需要把前景图 和背景图彼此对应的像素颜色按某一比例进行调配,称为 ‘不透明度’,直接贴图,则前景图不透明度为100%,背景图为0%; 公式:半透明图色彩=前景图色彩 * 不透明度 + 背景图色彩 * (1-不透明度)2.半透明操作步骤...原创 2019-05-29 22:33:52 · 1276 阅读 · 0 评论 -
Visual C++游戏编程基础之图片透明处理
一、透明处理步骤1.屏蔽图与背景图做与运算,黑色为0,白色为1;2.前景图与背景图作或运算,处理后的位图贴到DC上二、实现代码#include "stdafx.h"HINSTANCE hInst;HBITMAP bg,dra;//定义背景图句柄bg,前景图句柄draHDC mdc;//声明内存DC--mdc来暂存位图ATOM MyRegisterCla...原创 2019-05-27 21:14:59 · 713 阅读 · 0 评论 -
Visual C++游戏编程基础之位图绘制
一、位图绘制步骤1.加载位图,这里要用到函数LoadImage( ),其函数原型如下:HANDLE LoadImage( HINSTANCE hinst, //实例句柄 LPCTSTR lpszName,//指向图像的名称 UINT uType, //指定图像类型,这里是装载位图 int cxDesired, //加载宽度 int c...原创 2019-05-20 22:02:06 · 984 阅读 · 0 评论 -
Visual C++游戏编程基础之封闭几何图形绘制
#include "stdafx.h"HINSTANCE hInst;HPEN hPen;HBRUSH hBru[4];//定义4种风格的画刷int sBru[4] = {HS_VERTICAL,HS_HORIZONTAL,HS_CROSS,HS_DIAGCROSS};ATOM MyRegisterClass(HINSTANCE hInstance);BOOL Ini...原创 2019-05-16 21:41:26 · 571 阅读 · 0 评论 -
Visual C++游戏编程基础之多边形绘制
一、解析几何知识以(0,0)为圆心,半径为100的圆,它的内接五边形就是它均分五等分的点连起来,坐标(x, y)分别为(100*sin(72°), 100*cos(72°))、(100*sin(72°*2), 100*cos(72°*2))……二、重要函数介绍1.BOOL Polyline( HDChdc,CONST POINT*lppt,intcPoints) fu...原创 2019-05-14 22:13:32 · 1942 阅读 · 0 评论 -
Visual C++游戏编程基础之显示鼠标光标位置
一、重要函数1.WORD LOWORD (DWORD dwValue); function:返回低位字节,这里获取x坐标2.WORD HIWORD (DWORD dwValue); function:返回高位字节,这里获取y坐标3.WINGDIAPI COLORREF WINAPI SetTextColor(HDC, COLORREF); functio...原创 2019-05-13 21:46:37 · 664 阅读 · 0 评论 -
Visual C++游戏编程基础之画笔、画刷的使用
一、概念画笔:线条的样式画刷:封闭图形内部填充的样式二、重要函数介绍1.HPEN CreatePen(int nPenStyle, int nWidth, COLORREF crColor); function:指定的样式、宽度和颜色创建画笔 nPenStyle:实线、虚线、点线等等 nWidth:线宽 crColor:颜色2.HBRUSH Cr...原创 2019-05-12 22:29:55 · 1759 阅读 · 0 评论 -
Visual C++游戏编程基础之窗口的建立
关键函数介绍1.WinMain函数----主程序int APIENTRY WinMain(HINSTANCE hInstance, //应用程序实例句柄 HINSTANCE hPrevInstance, //应用程序之前的实例句柄 LPSTR lpCmdLine, //指定传...原创 2019-05-11 22:07:28 · 778 阅读 · 0 评论