第一章 游戏基础 一 动画 游戏是动画的延伸,只要知道了动画的原理,在动画变化时,使它根据键盘或鼠标的输入操作而变化,就是游戏了。 所以在介绍游戏编程之前,先讲讲动画。 动画一般分三种形式:形变、位变、色变。如下: 1 . 1 . 形变 即几种形状的图形或位图依次转变而成。(图1-1) 图1-1 先看一个简单的实例: a. a. 新建工程 1_1,选择单文档,完成。 b. b. 在 view 类加变量 int ituxing,并在构造函数里赋值为 ituxing=0; c. c. 在 OnDraw(CDC* pDC)函数上添上以下语句: void CMy1_1View::OnDraw(CDC* pDC) { CMy1_1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here //清除当前图形 CBrush mybrush1; mybrush1.CreateSolidBrush(RGB(255,255,255)); CRect myrect1(0,0,1024,768); pDC->FillRect(myrect1,&mybrush1); //判断当前图形ituxing if(ituxing==1) //ituxing=1,画矩形 pDC->Rectangle(20,20,89,89); else if(ituxing==2) //ituxing=2,画圆 pDC->Ellipse(20,20,89,89); else //否则,画三角形 { pDC->MoveTo(20,20); pDC->LineTo(89,45); pDC->LineTo(20,89); pDC->LineTo(20,20); } } d. d . 添 加OnTimer(UINT nIDEvent) 和OnCreate(LPCREATESTRUCT lpCreateStruct),并加上语句如下: void CMy1_1View::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default //获取指针pdc CDC *pDC=GetDC(); //调用OnDraw(pDC)重画 OnDraw(pDC); //使ituxing 循环 ituxing=(ituxing+1)%3; CView::OnTimer(nIDEvent); } int CMy1_1View::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here //设置更新时间 SetTimer(1, 750, NULL); return 0; } e. e. 完成。 2 . 2 . 位变 即同一个图形或位图依次在不同的位置上出现而形成动画。(图 1-2) 图 1-2 见实例 1_2: a. a. 复制实例 1_1 文件夹,改名为 1_2。 把void CMy1_1View::OnTimer(UINT nIDEvent) 中 的ituxing=(ituxing+1)%3; 改 为ituxing=(ituxing+1)%10; b. b. 把 OnDraw(CDC* pDC)函数改为: void ...