【C语言】——实现鼠标与画布(黑框)交互,根据鼠标移动,进行你所想要的个性体验

简介: 在之前的学习内容中,我们学习了使用键盘控制我们的代码小游戏,硬件也不只有键盘吧,还缺啥?那肯定是我们的鼠标,键盘的交互,我们使用了下面这种类型的代码,进行AWSD移动操作,十分简单。而我们今天的鼠标,也同样简洁易懂。

前言:

 

在之前的学习内容中,我们学习了使用键盘控制我们的代码小游戏,硬件也不只有键盘吧,还缺啥?那肯定是我们的鼠标,键盘的交互,我们使用了下面这种类型的代码,进行AWSD移动操作,十分简单。而我们今天的鼠标,也同样简洁易懂image.gif编辑

voidupdateWithInput()
{
charinput;
if(kbhit()) 
    {
input=getch();
if(input=='a')
        {
position_y--;
        }
    } 
}

image.gif

相关代码

定义鼠标消息

MOUSEMSG m;

image.gif

检测当前是否有鼠标信息

(到这一块就比较熟悉了,与检测键盘输入类似)

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);                             //右键画圆        }

image.gif

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;
        }
    }
}

image.gif

此时就能够实现这样的效果喽

image.gif编辑

今天的知识分享就到这,咱们下期再见!

相关文章
|
1月前
|
C语言
【C语言】扫雷(可展开空白版与鼠标操作版)
【C语言】扫雷(可展开空白版与鼠标操作版)
31 0
|
17天前
|
程序员 C语言
C语言库函数 — 内存函数(含模拟实现内存函数)
C语言库函数 — 内存函数(含模拟实现内存函数)
28 0
|
28天前
|
编译器 C语言 C++
【C语言】memset()函数(内存块初始化函数)
【C语言】memset()函数(内存块初始化函数)
26 0
|
28天前
|
编译器 C语言 C++
【C语言】memcpy()函数(内存块拷贝函数)
【C语言】memcpy()函数(内存块拷贝函数)
42 0
|
1天前
|
C语言
【C语言】字符分类函数与字符转换函数
【C语言】字符分类函数与字符转换函数
7 1
|
1天前
|
程序员 编译器 C语言
C语言之函数与参数
C语言之函数与参数
5 0
|
2天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
2天前
|
C语言
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
|
4天前
|
存储 C语言
C语言函数的返回值
C语言函数的返回值
7 0
|
4天前
|
C语言 Windows
C语言中的fopen与fclose函数详解
C语言中的fopen与fclose函数详解
11 1