Sean Yih

@seanyih

Joined on Nov 21, 2022

  • 圖片是如何弄到螢幕上去的? 關於圖片,SDL藉由幾個不同的物件達成: :::warning ⚠️ 前面說過,SDL透過struct+pointer實現類似C++的物件(object)甚至繼承(inheritance)等特性,因此本文以下將用物件概括指稱這種實現方式。 ::: SDL_Window: 負責**視窗。**程式打開的視窗大小、邊界、行為都由它決定,但是只有SDL_Window的話只會顯示黑色的空視窗,其餘的不會顯示。 SDL_Surface 和 SDL_Texture: 負責儲存圖像,但只是將圖片弄進其中之一儲存並不會讓它顯示。必須要將這些Surface/Texture “黏” 到Window上,圖片方能顯示。
     Like  Bookmark
  • 前言 隨者我們掌握圖形的顯示後,遊戲還需要讀取玩家的操作,做出相對應的回應,才能算是完整的遊戲。因此在這個章節,我將介紹以鍵盤和滑鼠控制遊戲的方式。 一個很重要的觀念是,我們並不是真正”控制”程式,而是”讀取”我們對鍵盤和滑鼠的動作,稱作事件,並指定若發生某事件,則呼叫某函數,藉此實現控制的效果。幸運的是,鍵盤和滑鼠動作的偵測之底層邏輯已經被建立好了!使用者只需要呼叫正確的函數讀取事件,並學習判斷事件的種類即可。 SDL_Event: 事件載體 SDL利用這個struct來儲存事件,這個struct可以儲存所有你想的到的事件! 所以在看documents的時候其實很恐怖,有一堆參數根本看不懂@@,在這裡我只會介紹鍵盤、滑鼠的使用。此外,它跟我們之前學的物件都不太一樣,在於它只需要一個! 不論你想偵測幾個事件,都只需要一個。 這特性跟它的底層邏輯有關,所有事件都被儲存在一個佇列(queue)中,可以想像事件們按照發生的先後排隊,然後我們每次只能從隊伍最前面抽取事件出來,再決定要如何處理。SDL_Event並不是事件佇列本身,它擔任的角色只是那個抽取出來的物件的暫存區。 所以一次只需要一個就夠了。
     Like 1 Bookmark
  • 目標受眾 學生: 尤其是針對準備應付期末專題的學生們。\混學分/ 欲開發簡單、免洗手遊者。 序 根據以上的目標受眾,這篇教學的特色會是: 不詳細解釋。讓你快速上手,只求圖片能正常顯示與運作,背後複雜的機制不會過度探討。對於想認真優化、了解運作機理的人建議自讀SDL2 Documents。 教學大致分成三個部分: 通靈: 安裝
     Like 3 Bookmark
  • 目錄 SDL2: 序--從放棄到入門 通靈 SDL2: 安裝 基礎 SDL2: 基礎架構 SDL2: 視窗與圖片 SDL2: 文字
     Like  Bookmark
  • 前言 本章節我們要探討如何將文字渲染到屏幕上。使用的方式其實和圖片一樣,我們必須將文字製作成圖片,再以LTexture儲存。至於將文字轉換成圖片的部分,內建的SDL_ttf已經幫我們處理好這個問題了,我們只需要學習呼叫和調整就好。 TTF_Font: 字體的載體 SDL_ttf裡面,有獨特的Class處理字體檔案,就是這個TTF_Font。如同SDL_Window、SDL_Renderer等等,它也是以指標的形式存在。 我們立刻來看第一個函數。 TTF_OpenFont: 打開字體檔案 語法:
     Like  Bookmark
  • 前言 這篇文章獻給所有想靠著網站LazyFoo學習SDL,卻發現下載下來的檔案都打不開。和所有覺得安裝SDL2真的鳥到爆卻因為學分不得不想辦法安裝的人們。<–本人目前在這 因為對於每次都要重新建project和輸入一堆參數(大部分教學的方法)感到厭煩,所以決定直接system-wide安裝,一勞永逸。以下兩種方法都會提供。 注意,以下方法適用的系統是: Windows(x64) + DevC++ 任何不是使用這種配置的用戶,你可能得另請高明教你安裝…… 下載
     Like  Bookmark
  • 前言 恭喜你已經度過SDL2的第一個(也是最大的一個)難關: 安裝。現在我將先介紹SDL2是怎麼建構的? 我將在這裡講解一些基本的名詞解釋和概念。這裡的知識會比較瑣碎和無趣,如果你已經對SDL有一些概念可以先跳過一下。 結構 SDL2是基於C語言編寫的。不是C++。任何有上過C/C++課程的人都應該知道兩件事: C是函數導向,C++ 是物件導向,C++相容C,C沒有物件。 去他媽的指標(pointer)。 好那麼你已經了解SDL2的結構了。SDL2裡面的所有東西都是struct+pointer實現的。這造成它非常難以理解,很多函數的實現是搭在另一個函數之上,而且不是成員函數,是一堆名字超長的函數,所以想了解它的全貌,省省吧,你的程式課只有2~3學分。
     Like  Bookmark