2012-08-24 104 views
4

我正在製作一款既可以在網絡上,作爲applet,也可以在Android手機上作爲應用程序使用的遊戲。開發一個在網絡上運行並作爲Android應用程序運行的Java應用程序?

這樣做是否可行?如果是這樣,我需要注意什麼才能使其工作(即,如果有任何設置我不應該硬編碼,而是根據用戶的設備來確定它們時遊戲運行,或任何我不應該使用的Java庫?)。

此外,遊戲需要接受觸摸屏作爲Android應用程序的輸入。是否有可能構建成同樣可以作爲applet運行的遊戲?在運行時可能會這樣,applet在運行時決定是使用鼠標還是觸摸屏進行輸入?

+3

您的用戶名給我一個壓倒性的衝動,點擊downvote按鈕。 – Joe

+0

謝謝你不要屈服於這種邪惡的衝動。要堅強。 –

回答

5

雖然Android應用程序是用Java編寫的,但圍繞應用程序的框架與應用程序的框架是截然不同的。您將無法擁有一個.jar文件,您可以將其作爲applet包含在Android設備中,因爲這不是它的工作原理。

然而,你可能會創建所有的遊戲邏輯和對象,並讓它們與applet代碼和android應用共享。你甚至可以放棄把它們放在一個存儲庫和項目中(儘管它可能必須是一個Android項目,然後在你的應用程序構建腳本中嵌入)。

爲了解決遊戲中的不同控制問題,您可能需要抽象化輸入,並讓遊戲/關卡對象有一個像userHasPoked(int x,int y)的回調,然後讓applet通過點擊鼠標調用該方法,android應用程序將其調用(它仍然被稱爲onClick)。

我認爲這將是漫長的道路,但比重寫整個事情容易得多。它可能看起來好像有很多工作要做,但是一旦完成將代碼嵌入到applet和Android應用程序中,您可能「再也不用」必須再次觸摸該代碼,並且可以繼續添加遊戲。

我不會低估任務,但這聽起來像一個非常有趣的編程練習。祝你好運!

+0

謝謝。所以我唯一需要編寫的新代碼是實際的事件處理程序,並且對於Android和Java,部署過程會略有不同。還是有任何其他部分的代碼,我必須重寫不同的網絡和Android? –

+0

@ClickUpvote:「所以我唯一需要編寫的新代碼是實際的事件處理程序」 - 不,新代碼將是「整個UI」。 「而Android和Java的部署過程略有不同 - 」我將其描述爲「大不相同」或「不太相同」。我仍然震驚,任何人在這個時代甚至*運行*小程序,更不用說*寫*他們。 – CommonsWare

+0

@CommonsWare那麼你會有什麼建議是在瀏覽器和Android上運行java遊戲的更好方法? –

2

你開發什麼樣的遊戲?這可能是開發Javascript遊戲的更好方法。

這可以與phonegap(科爾多瓦)安裝到Android設備上。

1

讓我打破了這個給你....

Model - 業務邏輯和數據

View - 模型的輸出顯示

Controller - 在它的作用是完成。

使用這種MVC架構的優勢在於,你可以保持同型號不斷變化的意見。因此,記住這個想法,您可以爲Web App和Android App創建相同的模型,然後分別實現其他Views。

相關問題