weixin_45189666
前面是不断后退的路
采纳率100%
2020-07-27 16:14

EasyX怎样才能实现“键盘输入控制图片移动”的功能

5
已采纳

代码


#include <graphics.h>
#include <iostream>

int x = 0;
int y = 0;
IMAGE tank;
void move(char input) {
    //清除旧图片
    clearrectangle(x, y, x + 60, y + 60);
    switch (input) {
    case 'w': //上 
        y -= 10;
        break;
    case 's': //下 
        y += 10;
        break;
    case 'a'://左 
        x += 10;
        break;

    case 'd': //右 
        x -= 10;
        break;
    default:
        break;
    }
    //绘制新图
    putimage(x, y, x+60, y+60, &tank, 0, 0, SRCCOPY);
} 
int main()
{
    initgraph(640, 480);
    loadimage(&tank, L"FC\\p1tankU.gif", 60, 60, true);//加载图图
    putimage(0, 0, 60, 60, &tank, 0, 0, SRCCOPY);//初始显示位置

    char input='w';
    //通过不断输入来移动图片
    while(true){
        input = std::cin.get();
        if (input == '\n') {
            break;
        } else  {
            move(input);
        }
    } 
    closegraph();
}

问题

我想通过这个代码实现键盘输入来控制图片移动,运行时控制台显示已经读入l了字符, 但是结果是图形界面没有任何变化。想知道怎样才能实现“键盘输入控制图片移动”的功能。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_29366533 qq_29366533 8月前

    你按下w、s、a、d之后需要按下回车才行

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 8月前

    input = std::cin.get();
    这里调试下
    input是否读到了wsad,还是读了回车

    点赞 评论 复制链接分享