键盘、鼠标控制小球

在Easyx游戏编程中,遇到一个问题:当按下控制键时,小球能惯性运动,但通过鼠标来停住小球时,GetMouseMsg调用存在阻塞情况。在鼠标静止时,小球有时会不正常停止运动,需解决GetMouseMsg调用导致的阻塞问题。
摘要由CSDN通过智能技术生成

题目:按下控制键时小球会惯性运动,通过鼠标来停住小球。

待解决问题:GetMouseMsg调用时会出现阻塞,在鼠标不动的情况下,小球有时会无缘无故停住。

// 鼠标控制.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "easyx.h"
#include "conio.h"

void main( )
{
	int i=320;//预设圆心x,y坐标
	int j=240;

	char c;//储存按键ASCII码

	MOUSEMSG m;//储存鼠标信息

	//初始化图形窗口
	initgraph(640,480);

	//预设画笔颜色
	setlinecolor(YELLOW);
	//预设填充颜色
	setfillcolor(BLUE);
	//画圆
	fillcircle(i,j,20);
	while(true)
	{
	//获取键盘信息
	while(!kbhit())
	{
		c=getch();//获取按键ASCII码
		//擦除旧圆
		setlinecolor(BLACK);
		setfillcolor(BLACK);
		fillcircle(i,j,20);

		//判断按键
		switch(c)
		{
		case 'a': 
			while(true)
			{
			m=GetMouseMsg();
			//擦除旧圆
			setlinecolor(BLACK);
			setfillcolor(BLACK);
			fillcircle(i,j,20);
			i=i-5;
			//边界检测
			if(i-20<=0 || i+20>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值