2012年10月31日 星期三

南開科大電子工程系電腦遊戲設計組師生至鈊象公司進行體驗教學

南開科大電子工程系林坤熒主任於101年10月30日帶領電腦遊戲設計組三年級同學至國內唯一具有商用電子遊戲機 (Arcade Game) 和線上遊戲 (Online Game) 之領導廠商 - 鈊象電子進行體驗教學活動,師生獲益良多。

李董事長,江總經理及商用遊戲機事業處總經理與參訪教師合影

同學參觀鈊象公司產品展示室

李董事長,江總經理及商用遊戲機事業處總經理與參訪教師茶敘,暢談業界經驗

同學專心聆聽研發主管介紹遊戲企劃

同學專心聆聽研發主管介紹商用遊戲機設計

課後同學熱烈提問,二位研發主管詳細解答同學問題

參訪師生與江總經理合影
















2012年10月28日 星期日

遊戲軟體分組管理辦法


遊戲軟體:指整合數位化之文字、聲光、音樂、圖片、影像或動畫等程式,提供使用者藉由電子化設備操作以達到一定遊戲目的之軟體。但不包含電子遊戲場業管理條例所稱電子遊戲機使用之軟體。

Android程式設計 - JSON資料處理(4)

處理JSON文件
假設手機SD卡中存在test.json文件,內容如下:
{
   "name":"wu, ShyiShiou",
   "address":{
      "street":"no.568 jung-jeng rd.",
      "postcode":54243,
      "city":"Tasotun"
   },
   "phoneNumber":[
      {
         "type":"office",
         "number":"2563489"
      },
      {
         "type":"fax",
         "number":"2569834"
      }
   ]
}
首先要讀取test.json文件內容並儲存到字串變數。由於最外層為JSONObject結構,因此必須以所得到的JSON格式字串建立JSONObject物件。
  String sdcardDir = Environment.getExternalStorageDirectory().toString();
  String jsonfile = sdcardDir+ "/" + "test.json";
  FileInputStream fis = new FileInputStream(jsonfile);
  BufferedReader reader = new BufferedReader(new InputStreamReader(
            fis, "UTF-8"));
  Writer writer = new StringWriter();
  char[] buffer = new char[1024];
  int n;
  while ((n=reader.read(buffer)) != -1) writer.write(buffer, 0, n);
  fis.close();
  String jsonstr = writer.toString();
  JSONObject json = new JSONObject(jsonstr);
之後就可依據test.json文件結構一層一層解讀JSON資料。例如:
  String username = json.getString("name");
  JSONObject jo_address = json.getJSONObject("address");
  JSONArray ja_phone = json.getJSONArray("phoneNumber");
address的內容可再由jo_address進一步解讀,例如:
  String street = jo_address.getString("street");
phoneNumber內容則可再由ja_phone繼續解讀,例如:
  String office_tel = ja_phone.getJSONObject(0).getString("number");

2012年10月27日 星期六

Android程式設計 - JSON資料處理(3)

使用JSONArray
JSONArray類別透過位置索引值來取得該位置的名稱/」資料對之值,常用方法如下:
l String getString (int index)
取得指定索引位置之字串值。
index        名稱/」資料對之位置索引值,從0開始。
l boolean getBoolean (int index)
取得指定索引位置之布林值。
index        名稱/」資料對之位置索引值,從0開始。
l double getDouble (int index)
取得指定索引位置之倍精準數值。
index        名稱/」資料對之位置索引值,從0開始。
l int getInt (int index)
取得指定索引位置之整數值。
index        名稱/」資料對之位置索引值,從0開始。
l long getLong (int index)
取得指定索引位置之長整數值。
index        名稱/」資料對之位置索引值,從0開始。
l JSONArray getJSONArray (int index) 
取得指定索引位置之JSONArray值。
index        名稱/」資料對之位置索引值,從0開始。
l JSONObject get JSONObject (int index) 
取得指定索引位置之JSONObject值。
index        JSONObject名稱/」資料對之位置索引值,從0開始。

Android程式設計 - JSON資料處理(2)

使用JSONObject
JSONObject類別透過名稱/」資料對中的名稱字串來取得其對應值,常用方法如下:
l String getString (String name)
取得指定名稱的對應字串值。
name        字串類型名稱/」資料對中的名稱字串。
l boolean getBoolean (String name)
取得指定名稱的對應布林值。
name        布林類型名稱/」資料對中的名稱字串。
l double getDouble (String name)
取得指定名稱的對應倍精準數值。
name        倍精準數值類型名稱/」資料對中的名稱字串。
l int getInt (String name)
取得指定名稱的對應整數值。
ame         整數類型名稱/」資料對中的名稱字串。
l long getLong (String name)
取得指定名稱的對應長整數值。
name       長整數類型名稱/」資料對中的名稱字串。
l JSONArray getJSONArray (String name) 
取得指定名稱的對應JSONArray值。
name       JSONArray類型名稱/」資料對中的名稱字串。
l JSONObject get JSONObject (String name) 
取得指定名稱的對應JSONArray值。
name       JSONArray類型名稱/」資料對中的名稱字串。
l JSONArray names ()

取得內含的名稱/」資料對之所有name名稱。

Android程式設計 - JSON資料處理(1)

JSONJavaScript Object Notation支援4種基本資料:字串(string),數值(number),布林資料(boolean)及null
一份JSON文件可以是JSONObjectJSONArray結構,說明如下:
l JSONObject
JSONObject「名稱/值」資料對的集合(A collection of name/value pairs),使用{}包含一系列無序的名稱/」資料對,名稱/」資料對之間使用,(逗號)分隔。其中名稱為一個字串,而資料值(value)則可以是字串、數值、布林、 nullJSONObjectJSONArray結構。例如:
{
   "Apple":"iOS",
   "Google":"Android"
}

使用時只要使用JSON格式字串建立JSONObject物件即可,例如:
  String jsonobj = "{'Apple':'iOS','Google':'Android'}";
  JSONObject jObj = new JSONObject(jsonobj);
l JSONArray
JSONArray資料值的有序列表(An ordered list of values),使用[](左右中括弧)包含資料值資料值之間使用,(逗號)分隔。例如,以下JSONArray包含二組JSONObject結構值。
[
   {"Apple":"iOS"},
   {"Google":"Android"}
]

使用時只要使用JSON格式字串建立JSONArray物件即可。例如:
  String jsonary = "[{'Apple':'iOS'},{'Google':'Android'}]";
  JSONArray jArray = new JSONArray(jsonary);
由於JSONObjectJSONArray是可以相互嵌套,因此可以組合出各種JSON文件。在程式中只要由最外層開始,一層一層取出JSON文件內容即可。





2012年10月26日 星期五

2013 第三屆全國鈊象盃遊戲與遊戲機創意設計



Android程式設計 - 提升模擬器效能

使用Android模擬器很方便測試程式,但即使是開啟snapshot方式,每次開啟模擬器還是需要不少時間;如果電腦記憶體足夠的話,可以建立RAMDisk,將模擬器相關檔案移到RAMDisk,這樣一來,一眨眼模擬器就在眼前。

模擬器相關檔案置於c:\Users\使用者名稱\.android\avd\目錄下,舉例來說,筆者的RAMDisk磁碟代號為Z,並建立了一個名為AVD4.1g的模擬器,則先將AVD4.1g.ini內容修改為:

target=Google Inc.:Google APIs:16
path=Z:\AVD4.1g.avd

並將c:\Users\使用者名稱\.android\avd\AVD4.1g.avd目錄內容搬移到Z:\AVD4.1g.avd目錄即可

2012年10月22日 星期一

Android程式設計 - 透過package name開啟Apps

在程式中如果要開啟其它的Apps程式,可使用Intent並指定Apps程式的套件名稱 (Package name)即可,程式碼如下:


Intent intent = new Intent();
PackageManager manager = getPackageManager();
intent = manager.getLaunchIntentForPackage("package name");
intent.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(intent);

使用時將"package name"置換為Apps程式的套件名稱 。

2012年10月9日 星期二

Android程式設計 - Eclipse Juno版本的Code Snippets

Code Snippets是非常好用的工具,可以協助我們管理常用程式碼,加速系統開發。 Eclipse Juno版本預設並沒有加掛Code Snippets功能,但只要安裝Eclipse Java Web Developer Tools後就可使用,方法如下:

1. 點選功能表「Help/Install New Software...」命令。
2. 選擇由Juno載點安裝更新。
3. 由「Web, XML, Java EE and OSGi Enterprise Development」節點中勾選「Eclipse Java Web Developer Tools」。
4. 安裝後重新開啟Eclipse Juno即可。