easy-遇到一个关于键盘控制小球移动的问题,求解教~对大神应该很简单

问题描述

遇到一个关于键盘控制小球移动的问题,求解教~对大神应该很简单

#include
#include
#include
#include
#include
#include

struct BALL
{
int x;
int y;
int speed;
int number;
int style;
};

char pr[1],scorepointer[3],ch;
float d;
int add=10,score=0;

BALL Ball[10];

struct Smile
{
int x,y;
}smile;

void Welcome();
void Ballstart();

void main( )
{

smile.x=320;
smile.y=240;

initgraph(640,480);
settextcolor(RED);
srand((unsigned)time(NULL));

Welcome();

Ballstart();

closegraph();
}

void Ballstart()
{

for(int i=0;i<10;i++)
{
Ball[i].x=-(rand()%400);
Ball[i].y=7+rand()%380;
Ball[i].speed=rand()%2;
Ball[i].number=rand()%10+1;

}
DWORD p=GetImageBuffer();
BeginBatchDraw();
setfillstyle(0);
settextcolor(YELLOW);
while(TRUE)
{
if(!kbhit())
{
ch=getch();
if(ch=='w')smile.y-=add;
if(ch=='s')smile.y+=add;
if(ch=='a')smile.x-=add;
if(ch=='d')smile.x+=add;
}
fillcircle(smile.x,smile.y,50);
for(int i=0;i<10;i++)
{
d=sqrt((Ball[i].x-smile.x)
(Ball[i].x-smile.x)+(Ball[i].y-smile.y)*(Ball[i].y-smile.y));
if(d<=55)
{
score+=Ball[i].number;
itoa(score,scorepointer,10);
outtextxy(245,405,scorepointer);
Ball[i].x=-(rand()%400);
Ball[i].y=7+rand()%380;
Ball[i].speed=rand()%5;
Ball[i].number=rand()%10+1;

}
}

for(i=0;i
{
itoa(Ball[i].number,pr,10);
outtextxy(Ball[i].x,Ball[i].y,pr);
circle(Ball[i].x,Ball[i].y,5);
fillcircle(Ball[i].x,Ball[i].y,5);
}
for(i=640*2;i
{
p[i] = RGB(
(GetRValue(p[i]) + GetRValue(p[i - 640]) + GetRValue(p[i - 1]) + GetRValue(p[i + 1]) + GetRValue(p[i + 640])+GetRValue(p[i+640*2])+GetRValue(p[i-640*2]))/7.7,
(GetGValue(p[i]) + GetGValue(p[i - 640]) + GetGValue(p[i - 1]) + GetGValue(p[i + 1]) + GetGValue(p[i + 640])+GetGValue(p[i+640*2])+GetGValue(p[i-640*2]))/7.7 ,
(GetBValue(p[i]) + GetBValue(p[i - 640]) + GetBValue(p[i - 1]) + GetBValue(p[i + 1]) + GetBValue(p[i + 640])+GetBValue(p[i+640*2])+GetBValue(p[i-640*2]))/7.7);
}
FlushBatchDraw();
for(i=0;i
for(i=0;i
if((Ball[i].x>=633))
{
Ball[i].x=-(rand()%400);
Ball[i].y=7+rand()%380;
Ball[i].speed=rand()%5;
Ball[i].number=rand()%10+1;
}

}

EndBatchDraw();

}

void Welcome()
{

line(140,300,500,300);
line(140,350,500,350);
line(140,300,140,350);
line(500,300,500,350);
outtextxy(450,430,"made by: 123");
for(int i=141;i<=500;i++)
{
line(i,300,i,350);
Sleep(1);
}
outtextxy(200,380,"press any key to continue");
getch();
cleardevice();
line(5,5,635,5);
line(5,5,5,475);
line(5,475,635,475);
line(635,5,635,475);
line(5,400,635,400);
outtextxy(10,405,"??????");
outtextxy(200,405,"×?·???");
outtextxy(350,405,"???±??");
outtextxy(490,405,"???à?±????");
rectangle(20,435,80,465);
outtextxy(38,442,"????");
rectangle(130,435,190,465);
outtextxy(148,442,"?á??");
rectangle(240,435,330,465);
outtextxy(258,442,"????·?°?");
rectangle(380,435,510,465);
outtextxy(398,442,"????????·?°?");
rectangle(560,435,620,465);
outtextxy(570,442,"????");
}

代码运行之后为什么键盘只能控制一段时间(几次),然后中央的白球就停在那里了,但是左侧的球依旧照常飞出,请问这是为什么?应该怎么改改比较好呢?
我用的是VC6 安装的EASYX

时间: 2022-12-05

easy-遇到一个关于键盘控制小球移动的问题,求解教~对大神应该很简单的相关文章

有一个关于用C语言编写流量控制的问题,请大神帮忙~

问题描述 有一个关于用C语言编写流量控制的问题,请大神帮忙~ #include #include int main() { char str[31],temp[31]; //定义IP地址为32位的字符类型 int a,b,c,d; //定义IP地址的四个字节为a,b,c,d,并且均为整型的 printf("请输入IP地址"); while(gets(str) != NULL); { if(scanf(str,"%d.%d.%d.%d",&a,&b,&

c++-这是一个排序算法,但结果总是不争取,求大神指出错在哪?

问题描述 这是一个排序算法,但结果总是不争取,求大神指出错在哪? #include <stdio.h> #include <stdlib.h> #include <windows.h> #define MAX 100 int b; int arr[MAX],tearr[MAX]; void merge(int a[],int t[],int lhead, int rtail) { int lt, k, mid, rt; mid = (lhead+rtail)/2; lt

初学android,现在要用sqlite数据库做一个用界面显示的增删改查,跪求各位大神指点!!!

问题描述 初学android,现在要用sqlite数据库做一个用界面显示的增删改查,跪求各位大神指点!!! 在android中,用sqlite数据库做一个用页面显示的增删改查,一个页面操作插入一条记录,一个页面显示查询所有记录并做删除和修改记录.跪求大神指点!!! 解决方案 http://blog.csdn.net/liuhe688/article/details/6715983 参考这个例子 满足你的需求么 解决方案二: http://blog.csdn.net/jaycee110905/ar

调用-自己写的一个php的PDO的类,有点问题,求大神指点

问题描述 自己写的一个php的PDO的类,有点问题,求大神指点 自己写的一个php的PDO的类,在调用的时候可以查询,插入的时候没有报错,但是插入没有成功,这是怎么回事.......... 这个是调用的类 <?php header("content-type:text/html;charset=utf-8"); class dbPdoManger { private $conn='';//连接数据库服务器的资源类型 private $host="";//主机地

任意元素和-求一个数组中选出任意个数元素相加之和,求大神指教

问题描述 求一个数组中选出任意个数元素相加之和,求大神指教 求一个数组中选出任意个数元素相加之和,求大神指教 比如打印出arry[8]中,任意两个数相加的和,任意三个数相加的和,直到任意八个数相加的和. 求大神指教. 解决方案 不知道你用的什么语言 如果C#,参考我写的http://bbs.csdn.net/topics/390550326 这个问题其实就是求M选N,其中M=8,N循环1-8 然后得到每个组合再求和. 解决方案二: 不知道你使用的是什么语言,不过思路是这样的,你的要求是不是随机数

mysql-复制一列数据到另一个表,还要在数据前面加字符串,求大神给思路!

问题描述 复制一列数据到另一个表,还要在数据前面加字符串,求大神给思路! 比如查询A表产品id,复制到B表并且统一加入 product_id,最后的效果是 product_id=1 product_id=2 有没有sql语句能做到? 解决方案 SQLServer某个表的数据批量导入到另一个表复制一个库中的表数据到另一个库表中 解决方案二: 创建B表,两个字段( product_id ,设置成主键 自增长,从1开始.),id (来自A表) insert into B(id) select id f

javascript-asp.net上的一个效果 不知道是哪个控件实现的,求大神告知

问题描述 asp.net上的一个效果 不知道是哪个控件实现的,求大神告知 不知道使用的控件实现的还是用的js实现的 解决方案 js第三方的开源表格,你搜一下吧,很多的 解决方案二: easyui的treegridhttp://www.jeasyui.com/demo/main/index.php?plugin=TreeGrid&theme=default&dir=ltr&pitem= 解决方案三: 用jQuery ui 也可以实现 解决方案四: asp.net 2.0下一个标准GR

数据-PIC单片机I/O口输入信号控制APF开关机,新手,求大神解答

问题描述 PIC单片机I/O口输入信号控制APF开关机,新手,求大神解答 dsp,pic,display搭建的数据传输环境,原本使用显示屏的开关机按键控制APF设备的开机.关机(ON_KEY),现在想要让PIC单片机I/O口输入信号也能控制APF开关机,下面的程序是设置RD12口选择位,选择是按键控制还是输入信号RD1RD2控制,之前我把(DI4为1时选择DI控制,且RD1=1时开机,RD2=1时关机),结果不给DI口信号的话程序运行会直接开机.改成下面这样就不受影响了,这是为什么?还有就是这样

获取手机相册的照片-打开一个应用,如何获取手机相册里的照片,大神支招啊

问题描述 打开一个应用,如何获取手机相册里的照片,大神支招啊 如果开发一个这样的应用,就像QQ那样更换QQ头像一样,想更换头像时肯定要去手机里的相册了 但是如何跳转到手机相册呢 ,如何获取手机相册里的照片信息呢 ,又如何保存相册里的图片在你开发的一个这样的应用呢 求大神支招啊 拜托拜托了 解决方案 http://www.open-open.com/lib/view/open1425530122072.html 解决方案二: http://download.csdn.net/detail/lmj6