程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> C語言游戲必備:光標定位與顏色設置的實現方法

C語言游戲必備:光標定位與顏色設置的實現方法

編輯: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-15為16種顏色。
         2.0D中0為背景顏色,D為字體顏色。
3.清屏
system("cls");

二、Linux:
在linux/unix的字符界面下,可以利用一些控制符來定位顯示位置、控制顏色、清屏等。
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 顯示光標

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved