欢迎来到天天文库
浏览记录
ID:41114793
大小:35.50 KB
页数:4页
时间:2019-08-16
《利用鼠标键盘操作图形原理 游戏简单原理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、要点:在VIEW类的ondraw()函数中画图形响应KEYUP或KEYDOWN或鼠标消息,并在其中用switch()-case,break;响应相应的消息。切记:switch后要加invalidate()函数以使窗口失效而重画,不然程序时无法顺利进行下去的。1.a. 2. 新建单文档工程1_4。 3. 4.b. 添加半径和圆心 5. 6. int ir;//半径 7. 8. CPoint center;//圆心 9. 10.在CMy
2、1_4View()中赋值如下: 11. 12. CMy1_4View::CMy1_4View() 13. 14.{ 15. 16. // TODO: add construction code here 17. 18. center.x=400; 19. 20. center.y=200; 21. 22. ir=50; 23. 24.} 25. 26
3、.c. 在OnDraw(CDC* pDC)函数中画圆 27. 28. void CMy1_4View::OnDraw(CDC* pDC) 29. 30.{ 31. 1. CMy1_4Doc* pDoc = GetDocument(); 2. 3. ASSERT_VALID(pDoc); 4. 5. // TODO: add draw code f
4、or native data here 6. 7.//画圆 8. 9. pDC->Ellipse(center.x-ir,center.y-ir,center.x+ir,center.y+ir); 10. 11.} 12. 13. 14. 15.d. 添加OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags),使它按照键盘方向键的操作而移动圆的位置。如下: 16. 17. 18. 19
5、. void CMy1_4View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 20. 21.{ 22. 23. // TODO: Add your message handler code here and/or call default 24. 25. //利用方向键左右上下移动20 26. 27. switch(nChar) 28. 29. { 30. 31.
6、 case VK_LEFT: 32. 33. center.x-=20; 34. 35. break; 36. 1. case VK_RIGHT: 2. 3. center.x+=20; 4. 5. break; 6. 7. case VK_UP: 8. 9. center.y-=20; 10. 11.
7、 break; 12. 13. case VK_DOWN: 14. 15. center.y+=20; 16. 17. break; 18. 19. } 20. 21. //重画 22. 23. Invalidate(); 24. 25. CView::OnKeyDown(nChar, nRepCnt, nFlags); 26. 27.} 28. 29
8、.e. 执行,看看效果,你就可以操纵了。 30. 31.f. 那么,利用鼠标又是怎样操作呢?添加OnLButtonDown(UINT nFlags, CPoint point)如下: 32. 33. 34. 35. void CMy1_4View::OnLButtonDown(UINT nFlags, CPoint point) 36. 37.{ 38. 3
此文档下载收益归作者所有