| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 669 人关注过本帖
标题:求教一个运动的问题
只看楼主 加入收藏
blackbrod
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2006-10-24
收藏
 问题点数:0 回复次数:9 
求教一个运动的问题
我的目的是1。希望有个球在屏幕上不断的左右运动,2,同时,还能够接受键盘左右键输入,来控制另一个球的左右运动?,大哥们,帮帮忙,救我于水火啊!谢谢
搜索更多相关主题的帖子: 运动 屏幕 键盘 水火 
2007-02-06 10:34
田里兵蜂
Rank: 1
等 级:新手上路
威 望:2
帖 子:604
专家分:0
注 册:2007-1-29
收藏
得分:0 
int key;

while(1)
{
//这里写第一个球运动代码
if(!bioskey(1)){ //如果有键按下,用来控制第2个小球运动
key=bioskey(0); //取得键值
switch (key)
{
case Key_LEFT:
break;
case Key_RIGHT:
break;
case Key_ESC:
exit(0);
}
}


}

[此贴子已经被作者于2007-2-6 10:45:20编辑过]

2007-02-06 10:44
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
收藏
得分:0 
谁来写写这个程序

经理叫我了

自强不息:)
2007-02-06 10:52
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
根据内部消息
我在写
2007-02-06 10:56
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

在网吧做的 以前自己的库函数都在自己的机子上
所以花了很长时间
程序写的效率很低
而且没写注释 但是实在不想再去写了
见谅

2007-02-06 12:09
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"

#define BKC 6

#define W 4471
#define S 8051
#define A 7777
#define D 8292
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
#define ESC 283

#define YD 50
#define DR 10
#define DC 3
#define D_MOVE 3
#define D_XL_LIMIT 50
#define D_XR_LIMIT 50
#define D_YL_LIMIT 50
#define D_YR_LIMIT 50
#define CC 4
#define CR 10
#define C_MOVE 3
#define C_XL_LIMIT 50
#define C_XR_LIMIT 50
#define C_YL_LIMIT 50
#define C_YR_LIMIT 50

int Game();
void Init();
void DrawBKView();
int GetDBkView(int x ,int y);
int GetCBkView(int x ,int y);
int PutDBkView(int x ,int y);
int PutCBkView(int x ,int y);
int SpaceTime(int Space);
void Exit();

long tNew = 1 ,tOld = 0;
int D_BkView[DR*2+1][DR*2+1] ,C_BkView[CR*2+1][CR*2+1];

int main()
{
Init();
Game();
Exit();
}

int Game()
{
int Maxx ,Maxy;
int i ,j ,r;
int Key = 0;
int Dx ,Dy ,Dd = 1 ,Cx ,Cy;

Maxx = getmaxx();
Maxy = getmaxy();

Dx = getmaxx()/2;
Dy = getmaxy()/2;

Cx = getmaxx()/2;
Cy = getmaxy()/2+YD;

GetDBkView(Dx-DR ,Dy-DR);
GetCBkView(Cx-CR ,Cy-CR);

while(1)
{
setfillstyle(1 ,DC);
fillellipse(Dx ,Dy ,DR ,DR);

while(!SpaceTime(2))
{
if(kbhit())
{
PutCBkView(Cx-CR ,Cy-CR);
PutDBkView(Dx-DR ,Dy-DR);
Key = bioskey(0);

switch(Key)
{
case W :
case UP:if(Cy-C_MOVE > C_YL_LIMIT)Cy -= C_MOVE;
break;
case S :
case DOWN:if(Cy+C_MOVE < Maxy-C_YR_LIMIT)Cy += C_MOVE;
break;
case A :
case LEFT:if(Cx-C_MOVE > C_XL_LIMIT)Cx -= C_MOVE;
break;
case D :
case RIGHT:if(Cx+C_MOVE < Maxx-C_XR_LIMIT)Cx += C_MOVE;
break;
case ESC :return 1;
default:;
}
PutDBkView(Dx-DR ,Dy-DR);
GetCBkView(Cx-CR ,Cy-CR);
setfillstyle(1 ,CC);
fillellipse(Cx ,Cy ,CR ,CR);
}
}

PutDBkView(Dx-DR ,Dy-DR);
PutCBkView(Cx-CR ,Cy-CR);

if((r = Dx+Dd*D_MOVE) < D_XL_LIMIT || r > Maxx-D_XR_LIMIT)
Dd = -Dd;
Dx += Dd*D_MOVE;

GetDBkView(Dx-DR ,Dy-DR);

setfillstyle(1 ,CC);
fillellipse(Cx ,Cy ,CR ,CR);
delay(10);
}

return 0;
}

void Init()
{
int gd = DETECT ,gm = 0;

initgraph(&gd ,&gm ,"");

srand((unsigned)time(NULL));

DrawBKView();
}

void DrawBKView()
{
int i;

for(i = 0;i < 60;i++)
circle(random(500)+100 ,random(400)+100 ,random(40)+10);
}

int GetDBkView(int x ,int y)
{
int i ,j;

for(j = 0;j <= DR*2 ;j++)
for(i = 0;i <= DR*2 ;i++)
{
D_BkView[i][j] = getpixel(x+i ,y+j);
}
}

int GetCBkView(int x ,int y)
{
int i ,j;

for(j = 0;j <= CR*2 ;j++)
for(i = 0;i <= CR*2 ;i++)
{
C_BkView[i][j] = getpixel(x+i ,y+j);
}
}

int PutDBkView(int x ,int y)
{
int i ,j;

for(j = 0;j <= DR*2 ;j++)
for(i = 0;i <= DR*2 ;i++)
{
putpixel(x+i ,y+j ,D_BkView[i][j]);
}
}

int PutCBkView(int x ,int y)
{
int i ,j;

for(j = 0;j <= CR*2 ;j++)
for(i = 0;i <= CR*2 ;i++)
{
putpixel(x+i ,y+j ,C_BkView[i][j]);
}
}

int SpaceTime(int Space)
{
tNew = biostime(0 ,tNew);

if(abs(tNew-tOld) > Space)
{
tOld = tNew;
return 1;
}

return 0;
}

void Exit()
{
return 0;
}

2007-02-06 12:09
blackbrod
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2006-10-24
收藏
得分:0 

太谢谢各位大哥了,我受益非浅,永远的感激你们

2007-02-06 14:41
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
终于有人回帖了
我现在都习惯我的东西没人回的现象了
2007-02-06 14:44
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
收藏
得分:0 
我来了
上午被经理叫去到现在才回来
真爷爷的事情多
先复制下来还真长


自强不息:)
2007-02-06 15:46
blackbrod
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2006-10-24
收藏
得分:0 

我用了这个,先是getimage(x1,y1,x2,y2,buf);获得图形的内存放入buf里面,再putimage(x,y,buf,COPY_OUT);我看过例子是可以实现小球运动的,但为什么我用了他就是一个复制,就出现好多小球,是不是跟运动的路径有关的,我的路径是个一元二次方程,求教大虾

2007-02-06 16:01
快速回复:求教一个运动的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036060 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved