前言:
在之前的学习内容中,我们学习了使用键盘控制我们的代码小游戏,硬件也不只有键盘吧,还缺啥?那肯定是我们的鼠标,键盘的交互,我们使用了下面这种类型的代码,进行AWSD移动操作,十分简单。而我们今天的鼠标,也同样简洁易懂编辑
voidupdateWithInput() { charinput; if(kbhit()) { input=getch(); if(input=='a') { position_y--; } } }
相关代码
定义鼠标消息
MOUSEMSG m;
检测当前是否有鼠标信息
(到这一块就比较熟悉了,与检测键盘输入类似)
if (m.uMsg==WM_MOUSEMOVE) { putpixel(m.x, m.y, WHITE); //跟随鼠标移动位置画白点 } elseif (m.uMsg==WM_LBUTTONDOWN) { rectangle(m.x-5, m.y-5, m.x+5, m.y+5); //左键画方 } elseif (m.uMsg==WM_RBUTTONUP) { circle(m.x, m.y, 10); //右键画圆 }
m.uMsg == WM_LBUTTONDOWN
m.uMsg == WM_RBUTTONUP
则是与鼠标左右点击进行相应操作
这个过程也可以运用于弹跳的小球,控制挡板运动
voidupdateWithInput() //与用户输入有关的更新{ MOUSEMSGm; if (MouseHit()) { m=GetMouseMsg(); if (m.uMsg==WM_MOUSEMOVE) { bar_x=m.x; bar_y=m.y; bar_left=bar_x-bar_width/2; bar_right=bar_x+bar_width/2; bar_top=bar_y-bar_high/2; bar_bottom=bar_y+bar_high/2; } elseif (m.uMsg==WM_LBUTTONDOWN) //左键初始化小球位置为挡板上面中心 { bx=bar_x; by=bar_top-radius-3; } } }
此时就能够实现这样的效果喽
编辑
今天的知识分享就到这,咱们下期再见!