C语言简单键盘扫描,可用于简单小游戏

来源:互联网 发布:sai mac版本 编辑:程序博客网 时间:2024/05/20 14:27

需要一个ConsoleOut.lib静态库,自行下载


ConsoleOut.h:


#include <Windows.h>




/******************************************
/ 功    能:设置控制台光标位置
/ 输入参数:nX -- 光标X轴坐标
/ nY -- 光标Y走坐标
/ 返回参数:无
/*作    者:AA
/*版    本:v1.0
/*修改日期:2005.09.27
******************************************/
void MoveCursorTo(int nX, int nY);




/******************************************
/ 功    能:设置控制台文本显示颜色
/ 输入参数:nColorFront --文本前景色
/ nColorBackGroup--文本背景色
/ 返回参数:无
/*作    者:AA
/*版    本:v1.0
/*修改日期:2005.09.27
******************************************/
void SetTextColor(int nColorFront, int nColorBackGroup);




/******************************************
/ 功    能:建立一个简单的矩形窗口
/ 输入参数:Left  --- 窗口左上角x轴坐标
/           Top   --- 窗口左上角y轴坐标
/           Width --- 窗口宽度
/           Hight --- 窗口高度
/           nFrameTextColor ---- 窗口边框颜色
/           nFrameBkColor   ---- 窗口边框背景颜色
/ nWinTextColor---- 窗口文字颜色
/ nWinBkColor     ---- 窗口背景色
/           title --- 窗口标题
/           Shadow ----窗口是否有阴影
/ 返回参数:无
/*作    者:AA
/*版    本:v1.0
/*修改日期:2005.09.29
*******************************************/
void CreateSmWindow( int Left, int Top, int Width, int Hight, 
int nFrameTextColor, 
int nFrameBkColor,
int nWinTextColor,
int nWinBkColor,
char title[]="",bool Shadow = false );


main.cpp:


#include <stdio.h>

#include <conio.h>
#include <stdlib.h>
#include <windows.h>


#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
#define TOP 0
#define LOW 43
#define BL 0
#define BR 75


#include "ConsoleOut.h"
#pragma comment (lib, "ConsoleOut.lib")
typedef struct Cursor
{
int x,y;
}Cur;
Cur cur1,cur2;




int main() 

int keyx=0,keyy=0;
int i,j,ch;
CreateSmWindow(0, 0, BR, LOW, 0xF, 0, 0, 0, "", false);

cur1.x = 25;
cur1.y = 15;
    MoveCursorTo(cur1.x, cur1.y);
printf("%c",2);
    while(1) 
    { 
        if(ch = kbhit())
{
if(ch==27)
{
system("cls");
break;
}
switch(getch())
{
case 'a':
case 'A':printf("A\n");break;
case 'S':
case 's':printf("S\n");break;
case 'd':
case 'D':printf("D\n");break;
case 'w':
case 'W':printf("W\n");break;
case 32:keyx = 0;keyy = 0;system("pause");break;
case 13:printf("回车llll\n");break;
case UP:keyx = 0;keyy = -1;break;
case LEFT:keyx = -2;keyy = 0;break;
case RIGHT:keyx = 2;keyy = 0;break;
case DOWN:keyx = 0;keyy = 1;break;
}
}
MoveCursorTo( cur1.x, cur1.y);
printf("%c",' ');
if(cur1.x + keyx >=BL+2 && cur1.x + keyx <= BR+2)
cur1.x += keyx;
if(cur1.y + keyy >=TOP+1 && cur1.y + keyy <= LOW)
cur1.y += keyy;
MoveCursorTo( cur1.x, cur1.y);printf("%c",2);
Sleep(100);
    } 
    return 0; 
0 0
原创粉丝点击