2014-02-06 40 views
0

我開始在畫布元素上開發基於Web的遊戲,並創建http://www.createjs.com/,用戶可以在其中跳過障礙物和收集神姬等動作。GameDevelopment最佳實踐:縮放動作和物體的距離

我想在許多設備上發佈它,例如智能手機,平板電腦,遊戲機和基於瀏覽器的設備。

現在我想知道什麼是最好的解決方案,以儘可能快地響應不同的屏幕分辨率。

我的第一個意圖是定義一個像1000px這樣的基本高度,然後根據屏幕高度來縮放像「你的遊戲角色」和動作屬性,如「跳高」。

我覺得這樣做會有點過重,因爲它只是爲了屏幕優化而計算和縮放很多。

我想現在..也許只是設置高度等,並以百分比計算。但是我不知道我是否遇到問題,或許它正在進行分解檢測等等。

有沒有人知道關於這個主題的最佳做法或可以給我一些建議?

回答

0

我有我的問題, 的解決方案,這是非常簡單的,但。

在createjs

你只需要定義畫布的固定高度和寬度,事後你可以縮放整個舞臺和所有孩子的和距離將被適當地相對於舞臺的縮放比例。

1

我在這裏可能有點記號,但寫了一些行。這些天,我用帆布兜了一下自己。從我在你的問題中讀到的內容都取決於你的代碼。鬆散地採取這樣的方法:

  • 檢測可用空間。
  • 預動畫:
    • 計算儘可能和物體等
    • 油漆背景,動畫精靈和其它目的預先計算的值保存到關閉DOM /存儲器畫布。
  • 在動畫:
    • 使用預先計算出的值來定位和動畫。

通過這一個外包大量的計算,只在窗口大小改變運行。如果一個人沒有這個想法所有的時間而寫代碼「我可以預先計算」一個是在一個巨大的重構工作。

我已經在方向like this上擺弄了像素比例和PPI。然而,我發現使用像createHiDPICanvas()這樣的功能可以快速搞定旋轉和定位等事情。根據我讀過的各種信息,一個問題是人們並沒有考慮到瀏覽器也具有縮放因子的事實。當變焦爲100%時,它可以看起來很好,但是當一個變焦放大/縮小時,它會全部分解。但是,你可能會發現它很有用。

有各種各樣的情況,人們必須注意一個人做什麼。例如:

如果我繪製水平和垂直線條,然後將它們對齊到x0 + 0.5y0 + 0.5以獲得清晰的線條。

最終這一切都歸結到你如何在運行時做最後的計算。作爲例子,This slide可能是有意義的。