2019年7月10日 星期三

[筆記] 矩形的碰撞偵測 (中篇) - 反彈

  處理完碰撞後,接著就要來處理碰撞後的反彈。因為做的是打磚塊這類 pixel game,所以呈現的是簡單反彈,也就是反彈物體速度的 xy 分量的正負號變換(呈現出來是入射角 = 反射角,反彈後速率維持不變)。
  這個功能困擾的我很久,困難點在於如何判斷是哪個面發生碰撞。期間一直無法做出理想中的反彈效果。後來拋出問題向朋友求救,討論後終於得到解答,雖然想出來的演算法不盡完美,但大部分的情況下都能有預想中的反彈行為。

2019年6月16日 星期日

[筆記] Unity3D 設置 Android apk 建置環境 - 不安裝 Android Studio

  以前可以直接單獨下載 Android SDK manager 來管理 Android apk 開發環境,但後來必需安裝 Android Studio 才可以使用 SDK manager。Android Studio 需要大量空間與資源,對於只需要 Android SDK 的我來說顯得多餘,此外要使用 manager 還必須先等待 Android Studio 啟動,相當不方便。幸好還是可以透過 command line tools 來管理 SDK 套件。

  本篇文章要建立 Android apk 建置環境所需要的套件如下,示範的作業系統為 Windows:
  • Java SE Development Kit (JDK) 8
  • Android SDK Tools 25.2.3 (也就是 SDK manager)
  • Android platform 27 (Android 8.1,要選擇其他 API level 可以查看對照表)
  • Android build-tools 27.0.3 (Android 8.1)
  • Android platform-tools

2019年3月31日 星期日

[筆記] Django - File Validator 上傳檔案與驗證

  Django 的表格 (Django.forms.Form) 能夠從設定的欄位產生對應的 html 表格,並幫助開發者從提交的資料中過濾有害的資訊,將資料轉換成 Python 物件供取用。還可以撰寫額外的程式碼以驗證提交的資料是否有效。
  撰寫驗證資料的方式有三種:在表格的定義中撰寫 clean_<field_name> 函式、繼承對應的欄位類別並提供 validate()、撰寫驗證類別並傳入到對應的欄位中。本篇網誌使用第三種方法來驗證使用者上傳的檔案,檢查檔案副檔名、MIME type、檔案大小。

2019年1月17日 星期四

[筆記] 矩形的碰撞偵測 (上篇)

  寫遊戲常常用 API 來幫忙處理碰撞偵測,當需要自己寫類似的功能時,發現內部的運作沒有想像中的簡單。最近因為專案的需求,撰寫打磚塊遊戲,原本想利用 pygame 的碰撞偵測,但是不適合這個專案,只好挽起袖子研究研究作作看。上篇介紹矩形碰撞偵測的原理,下篇則介紹在碰撞之後反彈的效果。