简单的鼠标操作<一个填充格子的小游戏>
#include "graphics.h"
#include "conio.h" void main(){
// 初始化界面
initgraph(, ); for (int x = ; x < ; x += ){ // 画 10 * 4 个50 * 50 的空白格子
for (int y = ; y < ; y += ){
rectangle(x, y, x + , y + );
}
}
// 画3个色板
setfillcolor(RED);
fillrectangle(, , , );
setfillcolor(BLUE);
fillrectangle(, , , );
setfillcolor(GREEN);
fillrectangle(, , , ); MOUSEMSG m;
while (){
m = GetMouseMsg(); // 获取鼠标信息
if (m.uMsg == WM_LBUTTONDOWN){ // 当鼠标左键击下
if (m.x > && m.x < && m.y > && m.y < ){
setfillcolor(RED);
}
if (m.x > && m.x < && m.y > && m.y < ){
setfillcolor(BLUE);
}
if (m.x > && m.x < && m.y > && m.y < ){
setfillcolor(GREEN);
}
} m = GetMouseMsg(); M: if (m.uMsg == WM_RBUTTONDOWN){ // 获取鼠标右键的信息
int i, j;
i = (int)(m.x / );
j = (int)(m.y / );
// 当鼠标右键点击的位子不在方格内则重新获取鼠标信息
if (i * > || j * > ){
goto M;
}
// 画鼠标右键点击的格子变为相应的颜色
fillrectangle(i * , j * , i * + , j * + );
}
}
closegraph();
}
// 鼠标消息的结构
struct MOUSEMSG
{
UINT uMsg; // 当前鼠标消息
bool mkCtrl; // Ctrl 键是否按下
bool mkShift; // Shift 键是否按下
bool mkLButton; // 鼠标左键是否按下
bool mkMButton; // 鼠标中键是否按下
bool mkRButton; // 鼠标右键是否按下
int x; // 当前鼠标 x 坐标
int y; // 当前鼠标 y 坐标
int wheel; // 鼠标滚轮滚动值
};
其中,“当前鼠标消息”可能是以下值:
WM_MOUSEMOVE 鼠标移动消息
WM_MOUSEWHEEL 鼠标滚轮拨动消息
WM_LBUTTONDOWN 左键按下消息
WM_LBUTTONUP 左键弹起消息
WM_LBUTTONDBLCLK 左键双击消息
WM_MBUTTONDOWN 中键按下消息
WM_MBUTTONUP 中键弹起消息
WM_MBUTTONDBLCLK 中键双击消息
WM_RBUTTONDOWN 右键按下消息
WM_RBUTTONUP 右键弹起消息
WM_RBUTTONDBLCLK 右键双击消息
简单的鼠标操作<一个填充格子的小游戏>的更多相关文章
- 一个很有意思的小游戏:Dig2China
最近通关了一个小游戏,游戏故事是这样的:一个美国小男孩想要去中国,他决定从自家后院往下挖,横穿地心去中国,期间经历了很多次失败.但是,每次尝试都能收获一批钱,用这些钱升级钻地机,调整自己的工具,终于在 ...
- HTML5存储(带一个粗糙的打怪小游戏案例)
本地存储localStorage设置存储内容setItem(key,value) localStorage.setItem('leo','23'); 更新存储内容对象[key]=value对象.key ...
- 一个打砖块的小游戏1.0 KILL THE BLOCKS !
/******************************************** * 程序名称:MR.DUAN 的打砖块(KILL THE BLOCKS !) * 作 者:WindAutum ...
- 一个控制台贪吃蛇小游戏(wsad控制移动)
/******************************************** * 程序名称:MR.DUAN 的贪吃蛇游戏(链表法) * 作 者:WindAutumn <flutti ...
- oracle常见为题汇总,以及一个简单数据连接操作工厂
本人软件环境:win8.1 64位操作系统,vs2013,安装好了与oracle数据库对应的客户端 连接oracle数据库.以及操作数据库 1.使用IIS建立网站,浏览网页时候,提示“ ...
- selenium中元素操作之简单的鼠标、键盘操作(三)
1.鼠标操作导入类:ActionChains --鼠标的操作形成一连串的动作链,由selenium的ActionChains类来完成模拟鼠标操作手表操作的过程:1.鼠标的操作,先放到一个列表中2.利用 ...
- 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”
这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...
- 8天掌握EF的Code First开发系列之2 简单的CRUD操作
本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境 ...
- WPF 中模拟键盘和鼠标操作
转载:http://www.cnblogs.com/sixty/archive/2009/08/09/1542210.html 更多经典文章:http://www.qqpjzb.cn/65015.ht ...
随机推荐
- 【转】python requests库添加自定义cookie的方法
requests库是个很方便的爬虫,相关文档已经很详细了.不过我今天在爬网页时,有一个网站是在脚本中添加cookie的,但我向requests.cookies里添加cookie费了不少周折.尝试了多个 ...
- python命令行传入参数
1.sys import sys a=eval(sys.argv[1])b=eval(sys.argv[2]) print(a+b) 1 2 3 4 5 6 evel() ...
- 宝塔php open_basedir restriction in effect
解决方法一: 1.网站管理的 防跨站攻击去掉勾选,重启网站,清除浏览器缓存 解决方法二:
- 【Java.Regex】使用正则表达式查找一个Java类中的成员函数
代码: import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; imp ...
- Mosquitto--webServer应用测试结果
https://blog.csdn.net/u012377333/article/details/71123671 Mosquitto--webServer应用测试结果 一.测试环境介绍 二.测试流程 ...
- transition 滑动动画
html: <!-- 组件会在 `currentTabComponent` 改变时改变 --> <transition name="slide" mode=&qu ...
- Vue导出ZIP
Export2Zip /* eslint-disable */ require('script-loader!file-saver'); import JSZip from 'jszip' expor ...
- Vue动态路由 Get传值
<template> <!-- 所有的内容要被根节点包含起来 --> <div id="home"> 我是首页组件 <ul> < ...
- Python 保存数据的方法:
open函数保存 使用with open()新建对象 写入数据(这里使用的是爬取豆瓣读书中一本书的豆瓣短评作为例子) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- iframe子页面无法返回上一页的问题
本文讨论的场景是ipad终端. 如题,因业务需要,需要使用iframe嵌套子页面.让外层始终保持一个socket连接,避免socket每跳转一个页面都要重新关闭建立连接的问题.但是这样问题来了,上线后 ...