第三章:C4droid編程:SDL2_02:2D繪圖&顯示圖片

Hello, Everyone, 今天我來為你們講解SDL2顯示圖片和2D繪圖功能。
由于SDL2包裝了opengl函數(shù),使得顯示圖片更加簡單,所以難度會低不少。

首先我們先寫一個顯示圖片的程序,首先創(chuàng)建工程:
分別在main.c,Makefile輸入以下代碼:
接下來講解新用到的函數(shù)
你們可能會發(fā)現(xiàn),我用畫筆+畫筆&紙的方法講解,原因在于其操作過程比較像畫畫;
還有一點,Makefile SDL2鏈接參數(shù)做了一些修改,增加SDL2 其他組件;
編寫完程序后,編譯執(zhí)行會發(fā)現(xiàn)只有黑屏,原因是沒有圖片,需要自己制作或復(fù)制一個bmp格式的圖片。
制作圖片,可以用Krita,krita是開源免費的繪畫/2D動畫制作軟件,可以在Windows,macos,Linux,Android/iOS(僅限平板電腦)環(huán)境下運行。


畫出作品,當(dāng)然想怎么畫就怎么畫

制作完成后分別保存bmp和jpg文件,位置為文件夾resources,后面要用到!
再次編譯運行后,就可以顯示圖片了!
還有一個問題你們可能會問,顯示圖片不是要用絕對路徑嗎?其實不一定要用絕對路徑,這個要看編譯出來的可執(zhí)行文件的位置,相對位置是相對于可執(zhí)行文件的,因為我用Makefile 編譯程序的,執(zhí)行文件在其文件夾中,而點擊主界面中的compile編譯出來的文件都在tmpdir中(地址參考第二章配置的環(huán)境變量

),在使用前者的相對地址是用不了的,只能用絕對地址。
還有要注意,必須把標(biāo)簽頁打到Makefile 在編譯才行,不然會因路徑錯誤導(dǎo)致不顯示圖片!!!
不過我還沒講完,后面還有很多!!!
顯示圖片還有一種方法,就是使用image組件,所有函數(shù)以IMG開頭
調(diào)用image組件,在#include另起一行輸入
在SDL2初始化函數(shù)下面添加以下初始化函數(shù)
把SDL_LoadBMP替換為IMG_Load,參數(shù)中的bmp改jpg。
保存,編譯,運行,效果與之前一樣。
還有,可以用IMG_LoadTexture,可以節(jié)省不少函數(shù)!關(guān)鍵代碼如下:

以上顯示圖片就講到這些,接下來是SDL2 2D繪圖。
因為函數(shù)太多,所以就不細(xì)說了,更多函數(shù)可以在官網(wǎng)wiki查看,也可以下載翻譯觀看(前提是瀏覽器要有翻譯功能)
最終運行效果是顯示紅綠藍(lán)刷全屏,然后黑屏畫3條紅綠藍(lán)交叉直線,最后是矩陣畫"彩虹"(云寶彩虹色)

