2011年10月25日 星期二

Lua -- 物件導向 Object-Oriented Programming

來來來,好久沒有新教學文了,今天就來談談在Lua裡面實現物件導向寫法。其實呢,Lua並不是一個物件導向的語言,罷特~~ Lua裡面神通廣大的table當然可以辦到這件事。今天就來講解,Lua如何辦到物件導向。

2011年10月21日 星期五

Crazy Festival 瘋節慶 改版囉 ~~ V1.1版正式推出

Crazy Festival瘋節慶已經上架快一個月了,期間聽到一些朋友支持聲音,很感謝大家支持。也更感謝大家可以不顧情誼,直接給我們一些狠狠的建議 ~~ 哈哈,沒錯,就是要這麼狠的給我們建議,我們才會繼續改進。

Crazy Festival瘋節慶目前針對一些小問題以及遊戲平衡度問題進行了修正,也在遊戲中加入了OpenFeint線上排名。歡迎大家繼續告訴大家,更新之後的版本更加好玩喔!!
也謝謝遊戲基地的支持,為我們進行了介紹,歡迎請看遊戲基地:瘋節慶。也希望您能幫我們推薦一下。

2011年10月2日 星期日

號外號外:ARSABALLOON最新力作 "瘋節慶"

各位朋友阿 ~~ 最近又很久沒有新教學文章,因為呢,最近忙著成立一個新團隊(包含程式與美工),我們團隊名稱是:ARSABALLOON,有興趣者,可以猜猜看這是什麼台語?沒錯,就是"阿薩布魯"啦。

雖然團隊名稱是"阿薩布魯",可是不代表我們的作品都是在鬼扯喔。我們的作品方向是希望融入台灣傳統文化,藉由大家熟悉的小遊戲帶您了解文化活動。

最近ARSABALLOON的第一號作品,"瘋節慶"已經上架囉。
"瘋節慶"是一個以傳統中國節慶為主題的遊戲合集, 希望透過此App將中國傳統節慶之典故與節慶特色介紹給欲了解中國文化的朋友, 並且結合目前大家熟悉的遊戲, 融入濃厚的中國風與中國節慶的遊戲元素, 讓玩家深入體會並參與中國慶典。可以觀看以下介紹短片:

不管你是iOS還是Android系統都可以下載喔。而且是免費的喔,請大家告訴大家,多多下載。

iOS系統
http://itunes.apple.com/tw/app/crazy-festival/id467586771?mt=8
Android系統
https://market.android.com/details?id=com.arsaballoon.crazyfestival&feature=search_result

或者直接搜尋"瘋節慶"or"CrazyFestival"都可以找的到喔。未來此App將會長期持續更新,會有英文版本以及持續加入新的節慶遊戲,以及台灣在地活動,歡迎愛台灣的大家,多多把這個App推薦給你身邊的朋友,或者外國朋友,讓全世界看到台灣文化。

2011年8月1日 星期一

Corona SDK -- Apple In-App Purchase -- Part 3

我過去還真的沒有想到,In-App Purchase居然要寫到Part 3。為什麼我要寫Part3呢?其實在Part 1、2都已經把In App Purchase的使用方式都介紹的很詳盡了,但是,在”實務”上,是要添加小技巧的,以下為原因:

        1. 在連結In-App purchase的時候,如何讓所有動作(如按鈕、touch等)需暫停?
        2. 如果網路不通、或無網路服務,如何停止連線?
        3. 索取購物資訊的時候,如果發生錯誤,如何停止連線?

2011年6月30日 星期四

Corona SDK -- Event Control

Event控制,我想應該是Corona最最最最最....最重要的項目了。為什麼這樣說呢,因為除了各種顯示物件的建立以外,全部都需要透過Event來達到與使用者互動或者觸發特殊事件,例如:
       1. 使用者按下按鈕,切換顯示圖片,這就是一種Event
       2. 使用者按下iPhone的暫停按鍵,要觸發暫停遊戲的動作
       3. 遊戲每次重新進入畫面(enterFrame),希望有相對應觸發動作
       4. 如果有使用Physics物理世界,有物件碰撞的話,要觸發什麼動作

2011年6月27日 星期一

[輕鬆一下吧!] 有責任感的年輕人

       「寫久了程式語法,決定開始加入一些網路蒐集的輕鬆小品好了。前幾天新聞報導,常常久坐容易老化,希望大家寫程式疲累之餘,記得要動一動,輕鬆一下。」




話說年輕人不小心把手推車弄翻,滿車玉米都散落在路上!住在附近的農夫跑過來看!看著焦急的年輕人,農夫安慰他說:年輕人,別煩惱!暫時先不要管這些吧,先到我家吃個飯吧!吃完之後我再幫你把車翻過來收拾一下⋯⋯

年輕人:謝謝你的好意,可是我想我爸爸會不高興我這樣做的!
農夫:不會的孩子,來吧!反正都要吃飯了,不差這一點時間!




年輕人:這樣不好啦,我爸肯定會不高興!


2011年6月24日 星期五

Lua Table使用

Corona SDK使用Lua語言來撰寫,因此想要開發App除了了解Corona的Api以外,Lua的語言也是需要好好了解,才可以寫出簡單易了解,又易維護的程式。今天就來好好介紹一下,Lua語言中的百寶袋 -- ”Table”。

        Table是什麼?當然不是桌子啦(真冷~~),Lua裡的Table就跟其他程式語言的Array相當類似,但是功能更強大!為什麼說功能更強大呢?因為這個Table什麼都可以裝,舉凡常數、變數、字串、boolean、函數等都可以塞進去,而且不一定要像Array一樣由數字來索引,也可以像字典(dictionaries)一樣,用名字來索引。厲害吧~~ 嚇到了吧~ 哈哈

2011年5月16日 星期一

Corona SDK -- Apple In-App Purchase -- Part 2

ok~~ 看過In-App Purchase之Part 1之後,我們直接進入程式該如何寫吧。
    1.首先,跟其他使用方法一樣,一定要先require store這個Library
-----------------------------------------
store = require (“store”)
----------------------------------------- 2.然後,馬上就要設定store初始話,設定store的listener -----------------------------------------
store.init(listener)
-----------------------------------------

2011年5月15日 星期日

Corona SDK -- Apple In-App Purchase -- Part 1

呼呼 ~~ 一個多禮拜沒有新文章了。
        今天來介紹一下應該在app設計裡面最需要使用到的In-App Purchase吧!!這部份的介紹,將會分為Part 1跟Part 2 來介紹。

        在設計遊戲或程式的時候,如果想要收費,可是又怕玩家不了解遊戲的內涵,不感直接花錢下去買來完,那麼你可以出一個收費版(Lite版),再出一個完整版。當玩家玩你的Lite版本,玩到欲罷不能之後,自然而然就會花錢去買完整版了。

        但是呢,這樣其實有點麻煩,所以偉大的In-App Purchase改變了這個遊戲市場的規則與玩法,你可以直接採用完整版本給玩家下載,但是,完整版的權限必須要透過In-App Purchase購買,這樣一方面只要一個程式,另一方面,嘿嘿~~這就是In-App Purchase邪惡的地方了~~另一方面,您在遊戲中或許有些物品(如:補充藥水)或者遊戲金錢也可以透過In-App Purchase購買,因此,一個遊戲將不再限定只有第一次下載時買斷,可以由玩家自行選擇想要購買哪些項目。這樣,對於玩家更有彈性,不會被硬逼著要花很多錢卻再遊戲內不需要的東西,對於設計遊戲者,也可以分門別類將遊戲相關物品販賣~~我認為對於兩方,都是有好處的。

2011年5月3日 星期二

Corona SDK -- sqlite3 SQL資料庫結構

在遊戲設計上,一定常常會需要使用或記錄大量的遊戲參數,例如:金錢、過關數、殺敵數等等。如果都只單純使用一般文字檔來記錄,雖然寫入方法簡單,但是當讀取參數後,該怎麼篩選出你需要的資料,那就頭痛了。因此,建立一個資料庫在處理大量的參數是很必要的。那什麼樣的資料庫適合在遊戲內使用呢?由於遊戲的資料庫只會在單機上使用,不需要在網路上任意上任何人取用,因此不需要一個專屬的資料庫系統,這時嵌入式資料庫 -- SQLite就相當的適合,小巧又簡單上手,而且Corona SDK採用Lua語言,可以直接取用SQLite使用,相當方便。

2011年4月28日 星期四

Corona SDK -- Button Event 程式架構

Button的基本操作,是基於Corona SDK裡面的ui.lua這個Button物件來架構。Button物件裡面的設定參數也很簡單,主要參數與設定方法如下:
首先,要先include這個ui物件(要將ui.lua複製到您專案資料夾下):
        local ui = require("ui")

2011年4月27日 星期三

Corona SDK -- Hello World 新手程式

之前寫了好幾篇Corona SDK的一些使用技巧,發現忘記應該先介紹一下,萬年Sample程式:Hello World。來補介紹一下唄!!

要顯示出Hello World有兩種方式,一種是直接顯示再手機螢幕上,另外一種就是在寫程式debug時會常用到的,由terminal去trace程式輸出的方式。以下我會一一介紹:

2011年4月26日 星期二

RGB顏色控制碼、色碼表

在Corona的程式編輯中,一定常常會用到Text、Rect等等的物件。那這些物件一定會需要設定顏色(R、G、B),但是常常會不知道該如何配出RGB碼。以下是我查詢到的一些常用顏色表,這些顏色表適用於任何需要RGB碼的程式語言,例如HTML等。

2011年4月20日 星期三

Corona SDK -- 切換場景 director之使用

一般在設計遊戲上,一定會需要切換遊戲場景。
例如:開始選單Menu、關卡選單、遊戲場景...等等。

在Corona SDK原始API裡頭,不沒有直接對應場景切換的API,所需要使用的是我之前介紹過的Group的使用,透過將每一個場景的元素丟進同一個Group裡面,在利用Group整體切換,達到這樣的目的。
範例如下:

2011年4月15日 星期五

Corona SDK -- Group使用

Group的使用其實很方便,方便管理一群有相同相關性的物件。
例如:需要同時出現,需要同時移動等等

在Corona SDK中需要用到 display.newGroup()這個API,我們來看看官網是怎麼敘述:
Syntax:
        display.newGroup()
Example:
        local rect = display.newRect(0, 0, 100, 100)
        rect:setFillColor(140, 140, 140)

        local group = display.newGroup()
        group:insert( rect )

2011年4月14日 星期四

Corona SDK -- 增加Admob的廣告

許多人寫iphone app都會使用apple的廣告,或者google的admob廣告來賺取收入。
不過Corona SDK目前尚未針對apple的廣告有相對的Library出來,因此還不能使用。

不過,藉由開啟URL的方式,可以放置Admob廣告,寫法如下:
1. 首先,您需要到Admob網頁建立一個帳號,並且選擇智慧型手機網路。
註冊好之後,他會提供給您一段HTML碼,將之儲存為ad.html

2011年4月13日 星期三

Corona SDK -- 字串顯示 & 基本數值與字串轉換

Corona 的字串顯示,可以透過display.newText()函數,使用方法如下:





Syntax:
display.newText( [parentGroup,] string, left, top, font, size )



Lua 字串控制

字串控制之簡單函式:
string.len(s) 返回字串s的長度;
string.rep(s, n) 返回重複n次s的字串;例如:string.rep("A",4) = AAAA
string.lower(s) 將s中的大寫字母轉換成小寫
string.upper(s) 將s中的小寫字母轉換成大寫
string.sub(s,i,j) 函數擷取字串s的從第i個字符到第j個字符之間的字串。