| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 795 人关注过本帖
标题:求求 各位大神帮我看看为什么不能用W和S控制符号的移动
只看楼主 加入收藏
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:7 
求求 各位大神帮我看看为什么不能用W和S控制符号的移动
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
int x=50,y=10;
char key;
void gotoxy(int x,int y);
void draw(int x,int y);
void draw(int x,int y)
{
    system("cls");
    gotoxy(x,y);
    printf("&");
}
void gotoxy(int x,int y)
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos={x,y};
    SetConsoleCursorPosition(hOut,pos);
}
int main()
{
    draw(x,y);
    while(1)
    {
        if(kbhit())
    {
        switch(key=getchar())
        {
            case 'w':{
                draw(x,y-1);
                break;
                }
            case 's':{draw(x,y+1);break;}
        }
    }
    }
}
搜索更多相关主题的帖子: include system 
2015-01-01 17:33
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:3 
getch()读取字符没输出.
下面是所有字符都不显示. 如果你只要 w 与 s 不显示出来
那么将switch 判断一下.  假的情况 就 print -> key
至于为什么上下移动 就那两个位置.. 你要修改代码.(在gotoxy函数第一句获取光标当前的Y坐标)

程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
int x = 50, y = 10;
char key;
void gotoxy(int x, int y);
void draw(int x, int y);

int main()
{
    draw(x, y);
    while (1)
    {

        key = getch();
        switch (key)
        {
        case 'w':
        {
            draw(x, y - 1);
            break;
        }
        case 's':
        {
            draw(x, y + 1);
            break;
        }
        }

    }
}
void draw(int x, int y)
{
    system("cls");
    gotoxy(x, y);
    printf("&");
}
void gotoxy(int x, int y)
{
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos = {short(x), short(y)};
    SetConsoleCursorPosition(hOut, pos);
}

hl928452957@gmail点com

2015-01-01 22:25
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
收藏
得分:0 
回复 2楼 stop1204
按照你的代码但是还是不行啊,必须按了W之后再按回车那个符号才能移动。我的目的是只要按W就直接移动,而且不知道为什么这个程序中符号只能移动一次。。。。。
2015-01-02 08:44
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:1 
回复 3楼 菜鸡一只
我试过了  不出字  也不用回车.   你是不是开了输入法了     只能小写
收到的鲜花
  • 菜鸡一只2015-01-03 09:09 送鲜花  1朵   附言:我很赞同

hl928452957@gmail点com

2015-01-03 08:07
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
收藏
得分:0 
回复 4楼 stop1204
哦,谢谢大神!
2015-01-03 09:08
tiucdccsgz
Rank: 2
等 级:论坛游民
威 望:2
帖 子:21
专家分:54
注 册:2014-12-14
收藏
得分:3 
我来改改
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
int x=10,y=10;
char key;
void gotoxy(int x,int y);
void draw(int x,int y);
void draw(int x,int y)
{
    system("cls");
    gotoxy(x,y);
    printf("&");
}
void gotoxy(int x,int y)
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos={x,y};
    SetConsoleCursorPosition(hOut,pos);
}
void  main()
{
    draw(x,y);
    while(1)
    {
        if(kbhit())
        {
            switch(key=getch())
            {
                printf("%d\n",key);
            case 'w':{
                draw(x,--y>=0?y:0);
                break;
                     }
            case 's':{draw(x,++y<=64?y:64);break;}
            }
        }
    }
} 
2015-01-04 21:46
tiucdccsgz
Rank: 2
等 级:论坛游民
威 望:2
帖 子:21
专家分:54
注 册:2014-12-14
收藏
得分:2 
我来改改
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
int x=10,y=10;
char key;
void gotoxy(int x,int y);
void draw(int x,int y);
void draw(int x,int y)
{
    system("cls");
    gotoxy(x,y);
    printf("&");
}
void gotoxy(int x,int y)
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos={x,y};
    SetConsoleCursorPosition(hOut,pos);
}
void  main()
{
    draw(x,y);
    while(1)
    {
        if(kbhit())
        {
            switch(key=getch())
            {
                printf("%d\n",key);
            case 'w':{
                draw(x,--y>=0?y:0);
                break;
                     }
            case 's':{draw(x,++y<=64?y:64);break;}
            }
        }
    }
} 
2015-01-04 21:46
tiucdccsgz
Rank: 2
等 级:论坛游民
威 望:2
帖 子:21
专家分:54
注 册:2014-12-14
收藏
得分:1 
不要叫我大叔
2015-01-04 21:47
快速回复:求求 各位大神帮我看看为什么不能用W和S控制符号的移动
数据加载中...
 
   



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

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