2016-12-24 75 views
-1

我有可能一個很簡單的問題,蟒蛇,與kivy,但我相信它是一個通用的架構問題如何在課堂外存儲相對位置信息?

想,我想要寫一個遊戲,有幾個層次。

問題1:因爲我希望遊戲在幾個不同的設備上運行,我想使用的部件相對於屏幕大小的位置,因爲屏幕大小會有所不同。

問題2:由於會有很多的水平,我想(甚至沒有也許在的.py格式)存儲在一個單獨的文件中的所有位置信息,並將其導入。

問題: 我如何能相對於屏幕大小的位置信息存儲kivy之前(pygame的或任何其他庫),甚至被實例化?

一個例子 如何以下位置信息存儲在「遊戲」類別外:

pos_x = self.width/2 
pos_y = (self.height/3) * 2 

唯一的想法,我能想出是存儲因素

例如

rel_x = 0.5 
rel_y = 0.6667 

然後

pos_x = screen_width * rel_x 
pos_y = screen_height * rel_y 

但覺得尷尬我。沒有更好的方法來做到這一點?

+0

-1的任何特定原因?我使用了錯誤的命名約定嗎?我的問題的答案是否應該寫在一本書中?至少給我一個流行詞來尋找。匿名網是一個不錯的地方,但對我的目的來說,這並不是很有幫助,因爲我問這是爲了學習一些東西...... – Nebelhom

回答

1

kivy提供了一些方法,您可以使用json,dict或redis格式存儲信息。我通常使用JSON做這樣的事情,所以我認爲這個信息需要放在一個JSON文件中。讓我們試試這個。

from kivy.storage.jsonstore import JsonStore 
store = JsonStore('pos.json') 
store.put('pos_x', pos='{}'.format(screen_width * rel_x) 

那怎麼東西存儲在一個JSON form..soü可以嘗試通過最終return語句之前做這個調用畫面加載之前的值

class Test(App): 
    def __init__(self,**kwargs): 
     super(Test,self).__init__(**kwargs) 
     self.checker() 
     return Root() 

    def checker(self): 
     store = JsonStore('pos.json') 
     if store.exists('pos_x'): 
      'do what u want to do here' 
     else: 
      'blah blah blah' 

這只是一個一般的想法,,我希望它可以幫助你

+0

感謝您的輸入人。有關如何在屏幕大小已知之前最好地存儲相對位置的想法?有沒有比我更明智的方法?非常感謝 :) – Nebelhom