EasyX必會基礎
一、EasyX 是什么
EasyX Graphics Library是針對Visual C++的免費繪圖庫,支持VC6.0 ~VC2019,簡單易用,學習成本極低,應用領域廣泛,目前已有許多大學將EasyX應用在教學當中,(單擊進入官網下載)
以下功能為EasyX_20210730版本,最新版本請下載查看EasyX幫助檔案
二、影像
主要用貼圖功能,做小游戲,需要注意的是坐標默認的原點在視窗的左上角,X 軸向右為正,Y 軸向下為正,度量單位是點,
#include<easyx.h>//圖形庫
//或者#include<graphics.h>
int main()
{
//創建視窗640,480;
initgraph(640,480);
//影像
IMAGE img;//定義影像變數
loadimage(&img,L"填路徑",640,480);//加載圖片到 img 并將圖片的長寬賦值640,480
//路徑可以是相對路徑,也可以是絕對路徑
//貼圖
BeginBatchDraw();//這個函式用于開始批量繪圖,執行后,任何繪圖操作都將暫時不輸出到螢屏上,
putimage(0,0,&img);//將img圖片貼在坐標(0,0)位置
EndBatchDraw();//直到執行 EndBatchDraw 才將之前的繪圖輸出,
return 0;
}
三、音樂
#include<mmsystem.h>//音樂
//或者#include<windows.h>
#pragma comment(lib,"winmm.lib")//庫檔案 多媒體
int main()
[
//音樂
mciSendString(L"open 填路徑",0,0,0);//打開
mciSendString(L"close 填路徑",0,0,0);//關閉
mciSendString(L"play 填路徑",0,0,0);//播放
mciSendString(L"stop 填路徑",0,0,0);//停止
mciSendString(L"pause 填路徑",0,0,0);//暫停
mciSendString(L"resume 填路徑",0,0,0);//恢復
//回圈播放
mciSendString(L"open 填路徑",0,0,0);//打開
mciSendString(_T("play 填路徑 repeat"), 0, 0, 0);//repeat回圈播放
//僅支持wav格式音樂
PlaySound(L"填路徑", nullptr, SND_FILENAME | SND_ASYNC);
return 0;
}
四、鍵盤
獲取鍵盤訊息,根據按鍵執行操作需要包含頭檔案#include<conio.h>
#include<conio.h>//按鍵
int main()
{
while(true){
if (_kbhit())//檢測是否有按鍵訊息 有訊息回傳非零值
{
char ch = _getch();//需要包含conio.h
switch (ch)//判斷用戶按了那些按鍵
{
case 'w':
case 72://↑小鍵盤鍵值
//執行相關操作
break;
case 'a':
case 75://←小鍵盤鍵值
//執行相關操作
break;
case 's':
case 80://↓小鍵盤鍵值
//執行相關操作
break;
case 'd':
case 77://→小鍵盤鍵值
//執行相關操作
break;
}
}
}
return 0;
}
五、滑鼠
獲取滑鼠訊息,先了解訊息結構體宣告,這些均在#include <graphics.h>
struct ExMessage
{
USHORT message; // 訊息標識
union
{
// 滑鼠訊息的資料
struct
{
bool ctrl :1; // Ctrl 鍵是否按下
bool shift :1; // Shift 鍵是否按下
bool lbutton :1; // 滑鼠左鍵是否按下
bool mbutton :1; // 滑鼠中鍵是否按下
bool rbutton :1; // 滑鼠右鍵
short x; // 滑鼠的 x 坐標
short y; // 滑鼠的 y 坐標
short wheel; // 滑鼠滾輪滾動值,為 120 的倍數
};
//其余略
};
};

#include <graphics.h>
//不能用#include<easyx.h>
int main()
{
initgraph(640,480);
ExMessage m;// 定義訊息變數
while(true){
m = getmessage(EM_MOUSE);// 獲取一潭訓鼠訊息
if (m.message == WM_LBUTTONDOWN)
{//如果滑鼠左鍵按下
closegraph();
}
}
return 0;
}
六、文字
在使用<graphics.h>或<easyx.h>的視窗時,需要用專門的文字輸出函式
#include<easyx.h>
int main()
{
initgraph(640,480);
setbkmode(0);//設定文字背景透明,有背景貼圖可用
settextcolor(RED);//設定字體顏色 紅色
settextstyle(64, 0, _T("宋體"));//64是字體大小 0是自適應 雙引號里可以填字體名字
//引數1:指定高度(邏輯單位)
//引數2:字符的平均寬度(邏輯單位)如果為 0,則比例自適應
//引數3:字體名稱
outtextxy(0, 0, _T("Hello World!"));//輸出文本的坐標(0,0) 后面是文本內容
system("pause");//暫停看效果
return 0;
}
七、顏色
可用RGB顏色:
RGB(0~255,0~255,0~255);
也可用預定義顏色常量,如下:
常量 值 顏色
BLACK 0 黑
WHITE 0xFFFFFF 白
BLUE 0xAA0000 藍
GREEN 0x00AA00 綠
CYAN 0xAAAA00 青
YELLOW 0x55FFFF 黃
RED 0x0000AA 紅
MAGENTA 0xAA00AA 紫
BROWN 0x0055AA 棕
DARKGRAY 0x555555 深灰
LIGHTGRAY 0xAAAAAA 淺灰
LIGHTBLUE 0xFF5555 亮藍
LIGHTGREEN 0x55FF55 亮綠
LIGHTCYAN 0xFFFF55 亮青
LIGHTRED 0x5555FF 亮紅
LIGHTMAGENTA 0xFF55FF 亮紫
八、實戰

學完基礎,點進來學習基于EasyX的推箱子游戲吧,保姆級教程,手把手教你寫游戲!

學完基礎,點進來學習基于EasyX的拼圖游戲吧,保姆級教程,手把手教你寫游戲!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291123.html
標籤:其他
下一篇:基于EasyX的推箱子游戲
