C语言游戏必备:光标定位和颜色设置

    喜欢编写游戏的朋友们,你们有福了,这个资料足以让你玩转WINDOWS和Linux下的光标定位以及颜色,enjoy it。

 

一、WINDOWS

1.光标定位函数:

#include <windows.h>

#include <conio.h>

/****** 光标移到指定位置 ********************************/

void gotoxy(HANDLE hOut, int x, int y)

{

      COORD pos;

      pos.X = x;             //横坐标

      pos.Y = y;            //纵坐标

      SetConsoleCursorPosition(hOut, pos);

}

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);//定义显示器句柄变量

gotoxy(hOut,20,30);         //光标定位在坐标(20,30

 

2.颜色控制:

2.1函数实现

/******设置文本为绿色 ********************************************/

void Set_TextColor_Green (void)

{    

      HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE);

      SetConsoleTextAttribute(Handle, FOREGROUND_INTENSITY | FOREGROUND_GREEN);

}

2.2 system

system("color 0D");//设置文本为粉红色

注:1.0-1516种颜色。

         2.0D0为背景颜色,D为字体颜色。

3.清屏

system("cls");

 

二、Linux

linuxunix的字符界面下,可以利用一些控制符来定位显示位置、控制颜色、清屏等

printf("\033[47;31mhello world\033[5m");

47是字背景颜色, 31是字体的颜色, hello world是字符串后面的\033[5m是控制码.

颜色代码:

QUOTE:

字背景颜色范围: 40--49                 字颜色: 30--39

        40:                          30:

        41:                          31:

        42:绿                          32:绿

        43:                          33:

        44:                          34:

        45:                          35:

        46:深绿                        36:深绿

        47:白色                        37:白色

ANSI控制码:

QUOTE:

  \033[0m 关闭所有属性 

  \033[1m 设置高亮度 

  \03[4m 下划线 

  \033[5m 闪烁 

  \033[7m 反显 

  \033[8m 消隐 

  \033[30m  --  \033[37m 设置前景色 

  \033[40m  --  \033[47m 设置背景色 

  \033[nA 光标上移n 

  \03[nB 光标下移n 

  \033[nC 光标右移n 

  \033[nD 光标左移n 

  \033[y;xH设置光标位置 

  \033[2J 清屏 

  \033[K 清除从光标到行尾的内容 

  \033[s 保存光标位置 

  \033[u 恢复光标位置 

  \033[?25l 隐藏光标 

  \33[?25h 显示光标

 

  • 17
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值