使用glimix c庫使學習C更加有趣

2021-08-11 20:29:32 字數 2173 閱讀 2985

在語言學習層面,c語言不像html、js一樣,能立即展示視覺化效果。很多時候,介紹c語言的學習都是基於控制台的。甚至你可能在一學期之後,仍心存疑惑:c語言難道只能是這種「黑螢幕」視窗了麼?可是現在很多程式都是擁有漂亮的視窗介面呀。

為了使學習有趣些,更接近實際一些,所以我們引入了glimix_c「庫」。這個庫提供了建立視窗,載入等函式,允許我們在看得見的效果下學習。

glimix_c庫的所有功能都是以函式的形式提供,在此這些函式也稱之為介面,其原型宣告在glimix.h標頭檔案中。 根據《使用函式》一文所講,要使用乙個函式,就需要包含對應的標頭檔案。

#include 

"glimix.h"

需要注意的是,我們使用的是雙引號包括標頭檔案,而非尖括號。一般而言,對於使用者自己建立的標頭檔案,使用雙引號,對於系統提供的標頭檔案,使用尖括號,更多的區別以後會學習到。

首先,讓我們嘗試建立乙個視窗出來,這是使用glmxinit函式來實現的。你可以開啟glimix.h,它的宣告如下:

glmxapi bool glmxinit( const

char *title, int width, int height );

不用去理會glmxapi的含義,剩下的就是整個函式的宣告了。這個函式需要傳遞三個引數,視窗標題,視窗的寬度與高度。標題是乙個字串引數,還記得吧,像printf輸出中的一樣,用雙引號把文字括起來就行。我們在main函式中呼叫它。

// 建立乙個640x480,標題為"hello, world!"的視窗

glmxinit( "hello, world!", 640, 480 );

這時如果你執行程式,有乙個視窗會一閃而過,然後整個程式就退出了。為了保證視窗響應並等到按下關閉按鈕後退出,我們需要呼叫glmxmainloop函式。

// 等待直接按下視窗的關閉按鈕

glmxmainloop();

單單有視窗,而沒有你的參與,就顯得無趣了。因為需要在介面上顯示一些東西,所以需要由你提供乙個draw()函式,顧名思義,這就是你自由畫畫的地方。暫停思考一下,為什麼需要由你提供draw()函式呢?想像一下這個畫畫的地方就是一張白紙,給不同的人就能畫出不同的畫。商店老闆不知道你會怎麼樣使用畫紙,這都是你自主行為了,所以由你提供。

在上節我們也提到,c語言要求乙個名稱被使用之前需要被看到,因此,我們把這個draw函式放在main函式的前面,同時我們還需要使用乙個比較複雜的函式glmxdrawfunc來讓庫使用draw函式。整個程式如下。

#include "glimix.h"

void draw()

int main()

現在,程式的主體框架算是完成了,執行起來你會看到乙個黑乎乎的視窗。說好的畫畫呢?這是由下面兩個函式提供。

glmxapi int glmxaddimage( const

char *file );

glmxapi void glmxdrawimage( int

id, int x, int y );

第乙個函式用於把乙個影象檔案新增到程式中, 它接受乙個檔案路徑作為引數。影象檔案可以看做是一種資源,因此只需要新增一次,如同變數的初始化一樣。函式執行成功時返回乙個大於等於0的值,代表影象的id,失敗則返回-1 。

第二個函式的作用就是繪製影象。第乙個id引數,就是glmxaddimage的返回值,這暗示我們需要把這個值用乙個變數儲存起來。x和y指明影象被繪製在作圖區域的左上角。

夠了,我想你跟我一樣,已經迫不急待的想要試一下了吧。

#include "glimix.h"

int pic1; // 儲存第一張影象的id

int pic2; // 儲存第二張影象的id

影象的id被儲存在pic1、pic2變數中,由於我們需要在draw函式中使用這兩個id值,因此把它們的定義放在draw的上面。

2:在draw函式中, 把pic1的繪製放到最後面看看會發生什麼。

利用FireBug使JQuery的學習更加輕鬆愉快

firebug是firefox下最強大的除錯外掛程式.利用它,可以讓jquery的學習過程更加輕鬆愉快.先決條件 安裝firefox firebug 這裡以我的部落格為例 基本的使用如下 ok,下面讓我們步入正題 就拿上面的為例,我們看到所有的標題都將class命名為 posttitle,下面我們利...

利用FireBug使JQuery的學習更加輕鬆愉快

firebug是firefox下最強大的除錯外掛程式.利用它,可以讓jquery的學習過程更加輕鬆愉快.先決條件 安裝firefox firebug 這裡以我的部落格為例 基本的使用如下 ok,下面讓我們步入正題 就拿上面的為例,我們看到所有的標題都將class命名為 posttitle,下面我們利...

利用FireBug使JQuery的學習更加輕鬆愉快

firebug是firefox下最強大的除錯外掛程式.利用它,可以讓jquery的學習過程更加輕鬆愉快.先決條件 安裝firefox firebug 這裡以我的部落格為例 基本的使用如下 ok,下面讓我們步入正題 就拿上面的為例,我們看到所有的標題都將class命名為 posttitle,下面我們利...