45 thoughts on “Welcome

leong - | Reply

本書範例 http://goo.gl/Yzau1l (無法下載)

    superstardj - | Reply

    Hello! Leong,

    謝謝買我的書!
    出版社排版的時候用了不適合的字體,所以才讓你有這樣的困擾,真是不好意思。
    其實那個網址最後一個字母是大寫的 i
    所以正確的網址是:
    http://goo.gl/Yzau1I

    請試試看!

    魏巍

Ray - | Reply

您好
很高興藉由您的書學習corona~不過有個問題想請教一下
書中7-7的物理範例中一直執行不起來
後來對照您的原始檔 發現關於bottomBar的設定上
書上第260行有用local去讓bottomBar宣告為變數
不過程式上則沒有
所以應該是要拿掉local 讓bottomBar被當成第一行就宣告過的變數
才能正常執行以下
physics.addBody(bottomBar,”static”,{density = 1.0, friction = 0.3, bounce=0.4})
請問這樣子的解釋是對的嗎~感謝回答

    superstardj - | Reply

    沒錯,我有發現這個錯誤。不過要等改版才能改正 (出版社說會改版)

Jen Mann - | Reply

Hi,

Emperor’s Treasure looks like a great app!

Is your app getting as many installs as you’d like it to?

Getting app reviews for Emperor’s Treasure on various app review blogs, is a great way to get your app noticed and get you MANY MORE INSTALLS! We work with over 100 app review websites – these sites review apps and can provide a great deal of traffic to your app. Over the years we have promoted hundreds of apps and networked and created contacts at all of the top app reviews websites.

The reviews from other sites are great and can send a ton of direct traffic to your app BUT the additional value is in the fact that you are earning direct links to your app page. Links are the currency of the web and these links can increase your apps rankings in both the app store and where it your app appears in Google searches.

Today we have an amazing offer- we’ll submit your app to 155 iPhone App Review Sites on your behalf AND we’ll also provide you with a full spreadsheet listing each website URL and contact details that we used for each one. (So you can reuse our resources for your future apps) AND we will also promote your app with a link on a Facebook profile that has over 4000 app review followers… The BONUS promotion of publishing your app to 4000 app review followers on Facebook is for a limited time.. you get this AND the 155 app review requests all within this package!

Learn more today at the link below. Space is limited and this offer ends tomorrow!
http://www.yourappreport.com/reviews/iphone/10

And please let me know if you have any questions about getting app reviews and more installs for Emperor’s Treasure.

Thanks,

Jen

Jen (YourAppReport.com)
jen@yourappreport.com
(608) 492-1872

Bruce - | Reply

您好,我是一個超級新手對於corona sdk的3-3頁中step02找到本章CH3 Sample資料夾,打開所需檔案資料夾,關於這個資料夾是要另外再下載的意思嗎?

Bruce - | Reply

找到了,可以按照書本繼續操作下去了,非常感謝您^^!

bay - | Reply

你好,我想知道“朕知道了”开发者的联系方式,我需要购买这个APP的名字。我的联系方式:QQ:282843433。EMAIL:chennaiyin@adeaz.com

    superstardj - | Reply

    您好,我是開發者,沒有打算要賣。 謝謝~

      Bay - | Reply

      您好,我们也是开发者,很真诚的希望能购买您这款APP的,我们可以通过APPStore的Transfer APP的功能完成APP的转移操作。
      价格我们可以详谈
      ————————
      QQ:282843433
      EMAIL:chennaiyin@adeaz.com

        superstardj - | Reply

        謝謝留言,無意願

Him - | Reply

嗨~ 我想請問一下,corona可以製作成手機的線上遊戲嗎?

Neo - | Reply

您好,我是個程式新手,因為購買了您的書而開始學寫CORONA SDK,最近正在研究UFO大冒險這一篇程式,試著想要把MORE APP跳轉過去後的空白頁面加上音量控制鍵跟音樂開關鍵,可是怎麼是都無法成功,可以請您指導下嗎?
以下是我針對MORE APP跳轉過去後頁面做的改寫,將網路偵測部分拿掉,想試圖做成類似設定頁的功能
local widget = require( “widget” ) –匯入widget程式庫,要做按鈕之用
local composer = require(“composer”) –匯入composer程式庫
local scene = composer.newScene() –用composer生成場景
local backBtn –存back按鈕的變數
local backgroundMusic = audio.loadStream(“BackgroundMusic3.mp3”)
local buttonPressedSound = audio.loadSound(“ButtonPressed.mp3”)
local addMenu –即將存入加入按鈕的函式

if(system.getInfo(“model”) == “iPhone”) or (system.getInfo(“model”) == “iPod touch”)
then
isIPhone5 = (display.pixelHeight >960)
end –判斷之後,如果是iPhone5,isIPhone5存的就是true,反之則存false

local changeSceneEffectSetting={ –用作轉場設定
effect = “slideRight”,
time = 300,
}

addMenu = function()
local function onBackBtnTouch( event )
if ( “began” == event.phase ) then
audio.play(buttonPressedSound)
end
if ( “ended” == event.phase ) then
composer.gotoScene(“covermenu”,changeSceneEffectSetting)
end
end
backBtn = widget.newButton{
width = 189,
height = 75,
defaultFile = “BackBtn.png”,
overFile = “BackBtnPressed.png”,
onEvent = onBackBtnTouch
}
backBtn.x = 320
backBtn.y = 1082
backBtn.isVisible=true
scene.view:insert(backBtn)
end

function scene:create(event)
native.setActivityIndicator(false) –顯現activity indicator
local screenGroup = self.view
local backgroundRect = display.newRect(0,0,640,1136) –先貼一個白色的背景
backgroundRect:setFillColor(1,1,1)
backgroundRect.x = 320
backgroundRect.y = 568
screenGroup:insert(backgroundRect)
addMenu() –加入按鈕

end

function scene:show(event)
if event.phase == “did” then
audio.play(backgroundMusic,{loops=-1}) –播放背景音樂
composer.removeScene(“covermenu”) –移除之前的場景

end
end

function scene:hide(event)
if event.phase == “will” then
audio.stop()
audio.dispose(backgroundMusic)
audio.dispose(buttonPressedSound)
backgroundMusic = nil
buttonPressedSound = nil
end
end

scene:addEventListener(“create”, scene )
scene:addEventListener(“show”, scene )
scene:addEventListener(“hide”, scene )

return scene

麻煩請教我如何加入音樂開關跟音效控制鈕

    superstardj - | Reply

    Hello! Neo,
    謝謝看我的書學習 Corona SDK。
    如果我沒有理解錯誤的話,
    Neo要做的事情是有一個設定頁(也就是有一個場景),
    其中可以控制所有場景的音樂開關和音效控制。

    要做到這樣的功能,
    要建立一個讓所有場景都看得到的全域變數,
    讓每個場景知道現在要不要播放背景音樂。

    如果是我的話,
    我會在還沒有進入第一個場景之前的 main.lua中,
    設定一個全域變數(比方說我自己取名叫做) canPlayBackgroundMusic = true
    平常我們寫程式的時候,
    都會寫
    local canPlayBackgroundMusic = true
    這樣前面加上了 local 的變數,只會存在在單一的檔案中。
    所以要做一個每個場景都看得到的全域變數的話,
    就要在 main.lua 裏,把 local 拿掉,寫成
    canPlayBackgroundMusic = true
    (請參考 3-3 有關 local的解釋)

    接著在設定音量頁面中,去修改 canPlayBackgroundMusic的值。
    而每個場景要播放背景音樂之前,都先確認 canPlayBackgroundMusic 是 true 或是 false,
    再決定要不要放背景音樂。

    音效也是一樣,可以在main.lua裡面設定一個全域變數
    nowEfxSoundVolume = 1
    再在每個場景存取這個值就好了。

    如果想要在每次開啟程式的時候都知道之前和音量相關的設定的話,
    就要把 main.lua 裡面的變數存起來。
    (請參考8-12,8-13的saveRecord與loadRecord的方法)

    以上,再次感謝 Neo 來信,如果做出了什麼作品,不要忘了和我分享一下歐~~

    魏巍 16.Nov.14′

      Neo - | Reply

      非常感謝您回文,看了您的說明之後我有再嘗試過,但可能因為我是個完全沒有接觸過程式的新手,所以還是無法完全理解您所說的做法跟意思,再次看了您推薦的變數章節跟儲存與讀取分數的章節之後覺得有點眉目了卻還是無法將它付之實踐,如果可以的話,能麻煩撥點寶貴的時間寫些範例讓我能夠實際參考嗎?再次感謝您的回文,一般書籍的作者是不隨便回讀者文的,您的親切令我感到訝異,謝謝您

        superstardj - | Reply

        好的,請等等,我有空會寫一篇文章來分享作法。

          Neo - | Reply

          好的,非常感謝您,靜候您的做法分享

          superstardj - | Reply

          請看:http://goo.gl/WikGhj

Alukana - | Reply

魏巍老師我正在研讀你的書希望能寫一個小小RPG
您在書中有教導如何儲存高分
請問當要儲存的參數超過一個時要怎麼辦呢
我有參考一些英文網站的教學,什麼….JSON….?
但是試了兩三天了還是無法成功….
我參考的網站 :
http://flipboxgames.com/my-days-with-corona-sdk-data-saving-and-print-function/

    superstardj - | Reply

    謝謝買我的書,
    高分超過一個就highscore1.data, highscore2.data,highscore3.data… 這樣存啊…哈。
    請參考我的第一本書最後的範例。
    (別管Json了!)

    You must study more to improve yourself - | Reply

    JSON雖然用法不在這
    但還是很重要滴
    (很多API都是用API存取的,所以…)

      superstardj - | Reply

      沒錯,雖然這邊不用,但是還是很重要… 😀

- | Reply

local justTouchScreen = function (event)
if event.phase == “ended” then
if event.xStart =30 then
print(“swipe right”)
car.x = car.x+10
return true
elseif event.xStart > event.x and (event.xStart – event.x)>=30 then
print(“swipe left”)
car.x = car.x-10
return true
end

if event.yStart =30 then
print(“swipe down”)
car.y = car.y+10
return trun
elseif event.yStart > event.y and (event.yStart – event.y)>=30 then
print(“swipe left”)
car.y = car.y-10
return true
end
end
end

課本的6-2手勢判斷
這邊的指令我重複打好幾次也檢查過前面都沒有滑動
看不懂這邊>< 求大神

    superstardj - | Reply

    Hello! 仁,
    謝謝買我的書。看起來是6-11頁的程式碼?
    如果是的話,你打的和書上印的不太一樣…
    請再照著書的程式碼打入程式碼吧?
    又,Corona SDK 已經在一年多前更新。
    我出了一本新書歡迎參考:http://www.books.com.tw/products/0010649556

Mok Ka Hin - | Reply

How to deal withh “”please initialize the log4cplus system properly”” problem in output site

    superstardj - | Reply

    Keine Ahnung

spencer - | Reply

你好:
你的二本書我都買了,
但內容卻沒有把ADMOB如何置入遊戲內供人點擊,
可否寫一篇如何把ADMOB如何置入遊戲內的程式碼跟步驟,謝謝!!

    superstardj - | Reply

    謝謝買書,有空會來寫一篇相關教學文

ya - | Reply

您好 請問如果想要設計app需要很好的硬體設備才能製作嗎?
記憶體cpu多少以上才跑得動呢?
如果像macbook air 11吋筆電4g記憶體i5硬體跑的動嗎?

    superstardj - | Reply

    我覺得 OK~

冠騰 - | Reply

您好,請問Android的電話聯絡人清單怎麼擷取?
因為查了很多地方都說Corona只支援iPhone沒有支援Android的聯絡人清單,
但看到您有個作品「快速撥號通」卻可以新增與儲存聯絡人清單,
請問您是怎麼做到的?謝謝!

Vic - | Reply

哈囉,老師您好
買了您的新書,10天做好app
但是還是有些問題想要請問一下

因為想做個簡易的互動計算機(輸入長x寬會出現多少)
但是好像書裡面沒有教到可以輸入的範例耶
如果做成數字按鈕放下面的話,空間好像會太壓縮了

不知道下一本書會不會有一些類似的範例
或是可以從什麼方向找到呢@@

以上,再麻煩老師解答了,感激不盡
另外一邊的留言怕不會被看到,所以留在這裡
再麻煩您了,感謝

Andyching168 - | Reply

你好,魏巍。我是個新手,我最近在做你第2本的範例「快樂鋼琴」的時候,發現Windows最新版的corona SDK會因為程式裡面的匯入音樂檔「local mysound1 = audio.loadSound(“1.mp3”)」的這個程式碼,載入時會導致corona SDK 停止運作。可以確認一下是怎麼一回事嗎?

    superstardj - | Reply

    真的?好奇怪!可以把你的程式碼寄給我看看嗎?

      Andyching168 - | Reply

      display.setStatusBar( display.HiddenStatusBar )
      system.activate(“multitouch”)
      local backgroundImage = display.newImageRect(“Background.png”,960,640)
      backgroundImage.x = 480
      backgroundImage.y = 320

      local mySound1 = audio.loadSound(“1.mp3”)
      local mySound2 = audio.loadSound(“2.mp3”)
      local mySound3 = audio.loadSound(“3.mp3”)
      local mySound4 = audio.loadSound(“4.mp3”)
      local mySound5 = audio.loadSound(“5.mp3”)
      local mySound6 = audio.loadSound(“6.mp3”)
      local mySound7 = audio.loadSound(“7.mp3”)
      local mySound8 = audio.loadSound(“8.mp3”)

      local widget = require(“widget”) –引入widget

      local key1Pressed = function(event)
      if (“began” == event.phase) then
      audio.play(mySound1)
      end
      end

      local key1 = widget.newButton{
      width = 105, –設定按鈕的寬度
      height = 325, –設定按鈕的長度
      id = “1”, –設定按鈕的id
      defaultFile = “1.png”, –還沒按下去圖
      overFile = “1P.png”, –真的按下去的圖
      onEvent = key1Pressed, –按下去要做的事
      }

      local key2Pressed = function(event)
      if (“began” == event.phase) then
      audio.play(mySound2)
      end
      end

      local key2 = widget.newButton{
      width = 105,
      height = 325,
      id = “2”,
      defaultFile = “2.png”,
      overFile = “2P.png”,
      onEvent = key2Pressed,
      }

      local key3Pressed = function(event)
      if (“began” == event.phase) then
      audio.play(mySound3)
      end
      end

      local key3 = widget.newButton{
      width = 105,
      height = 325,
      id = “3”,
      defaultFile = “3.png”,
      overFile = “3P.png”,
      onEvent = key3Pressed,
      }

      local key4Pressed = function(event)
      if (“began” == event.phase) then
      audio.play(mySound4)
      end
      end

      local key4 = widget.newButton{
      width = 105,
      height = 325,
      id = “4”,
      defaultFile = “4.png”,
      overFile = “4P.png”,
      onEvent = key4Pressed,
      }

      local key5Pressed = function(event)
      if (“began” == event.phase) then
      audio.play(mySound5)
      end
      end

      local key5 = widget.newButton{
      width = 105,
      height = 325,
      id = “5”,
      defaultFile = “5.png”,
      overFile = “5P.png”,
      onEvent = key5Pressed,
      }

      local key6Pressed = function(event)
      if (“began” == event.phase) then
      audio.play(mySound6)
      end
      end

      local key6 = widget.newButton{
      width = 105,
      height = 325,
      id = “6”,
      defaultFile = “6.png”,
      overFile = “6P.png”,
      onEvent = key6Pressed,
      }

      local key7Pressed = function(event)
      if (“began” == event.phase) then
      audio.play(mySound7)
      end
      end

      local key7 = widget.newButton{
      width = 105,
      height = 325,
      id = “7”,
      defaultFile = “7.png”,
      overFile = “7P.png”,
      onEvent = key7Pressed,
      }

      local key8Pressed = function(event)
      if (“began” == event.phase) then
      audio.play(mySound8)
      end
      end

      local key8 = widget.newButton{
      width = 105,
      height = 325,
      id = “8”,
      defaultFile = “8.png”,
      overFile = “8P.png”,
      onEvent = key8Pressed,
      }

      local startingX = 108
      local startingY = 398
      local padding = 106
      key1.x = startingX
      key2.x = startingX+padding*1
      key3.x = startingX+padding*2
      key4.x = startingX+padding*3
      key5.x = startingX+padding*4
      key6.x = startingX+padding*5
      key7.x = startingX+padding*6
      key8.x = startingX+padding*7
      key1.y = startingY
      key2.y = startingY
      key3.y = startingY
      key4.y = startingY
      key5.y = startingY
      key6.y = startingY
      key7.y = startingY
      key8.y = startingY

      P.S.我用比較舊的版本是不會發生此問題

        superstardj - | Reply

        我今天(2015/8/28)下載 Corona SDK。貼上您的程式碼。可以運作。您的程式編輯器是什麼?雙引號我改成沒有格式化的雙引號。註釋要兩個減號,您都用一個長橫線,所以會錯。請看1-8頁,安裝適當的文字編輯器。

        superstardj - | Reply

        我昨天教課時發現有這樣的狀況:http://goo.gl/VRuIMO

ricecake - | Reply

魏巍老師您好,
我照著書上的方法生成apk,在android4.1.2手機、bs模擬器可執行,但是在android5.0手機卻不能運行,該怎麼解決。corona版本是2015.2744。感謝您的閱讀。

    superstardj - | Reply

    不好意思,這麼過這麼久才回應…
    其實我也沒碰到這樣的問題…
    還要真的拿到運行 android 5.0的手機才能知道錯誤發生在那邊?

truttyiktyi - | Reply

買了一本博主的書!很好!容易入門!有些問題想常來請教,不知博主有空解答否!

1、CoronaCards 是做什麼用的?看了官網也不太懂!

2、Corona SDK免費版,在線Build,有次數限制嗎?

3、如果说Corona SDK目前对android兼容差点,那么主要表现在哪些具体地方?

谢谢!

    superstardj - | Reply

    您好,
    感謝買我的書。(雖然原書以經是2年前出版的… 很多程式碼都不能用了…)
    以下是您問題的回答:
    1.Corona Cards 是用Corona SDK的程式碼做出一個畫面,這個畫面可以貼在各個平台的原生程式上。Corona Cards要另外收費。
    2.沒有限制。
    3.我覺得沒什麼差。

    上上年底 Corona SDK有不小幅度的改版。
    我把相關的更改說明放在我的部落格中,
    請看下列網址:http://goo.gl/wOBw0v
    ps.其實書也有新的版本:http://www.books.com.tw/products/0010649556

    祝 新年快樂

    魏巍 5. Feb. 16′

qhj - | Reply

妈的,《10天做好App:Corona SDK超直覺遊戲開發攻略》个破书。你妈比的,全是错。

退钱。

Leave a Reply

Your email address will not be published. Required fields are marked *

Top