---
# System prepended metadata

title: 9/16 K速記

---

# 9/16 K速記

## 碰撞判定 
* AABB: 物體為長方形 且無旋轉狀態，只需判定四個邊緣
	* A.top > B.bottom  =>碰撞 (JFrame Y軸向下)
	* B.top > A.Bottom  =>碰撞
	* A.left < B.right => 碰撞
	* B.left < A.right => 碰撞
* 分離軸定理 



## BMP : bitmap
* 使用 4Byte 代表 1個點的顏色，以800X600解析度的照片，則需48萬筆資料 = 480K個點 =1920KB = 1.9MB(檔案大小)

## JPG 
* 壓縮方式: 將圖檔使用的色碼 置換成查表，不須全部用BMP色碼(佔記憶體)，
* 另將 接近的顏色 視為相同代碼(破壞性壓縮)


## 單例模式
* 在遊戲中 所有圖片/音效等資源 需要被統一管理
* 在整個程式中 相同的東西 存放在golbal區 => 避免被隨意亂更改，
* 使用類別 將 private static 做存取=>靜態方法進行存取


## path 管理 
* 內部類別方式1: 
```java=
public class Path{
	public static final String RESOURCES_FLODER = "/RESOURCES";
	public static final class Resources{
		public static final String ACTOR_FOLDER = RESOURCES_FLODER +"/actors";
		public static final String OBJ_FOLDER = RESOURCES_FLODER +"/objs";
		public static final String SOUND_FOLDER = RESOURCES_FLODER +"/sounds";
		public static final String BACKGROUND_FOLDER = RESOURCES_FLODER +"/backgrounds";
		public static final class Actors{
			public static final String AIR_CRAFT = ACTOR_FOLDER +"/airplan1.png";
			public static final String ENEMY = ACTOR_FOLDER +"/enemy1.png";
		}
		
	}
}

public class main{
	public void test(){
	img = controller(Path.Resources.Actors.AIR_CRAFT); // <=單例的控制器 測試 路徑，路徑 使用上述寫死的方式，可對應資料夾取得整體路徑。
	}
}

```

* 內部類別方式2: 
	* 要同學想想看~
```java=

```
