我正在Pygame寫一個小海盜遊戲。如果你在帝國全面戰爭中玩過海戰,你就會明白我想達到的目標:讓精靈一步一步移動到鼠標點擊位置
該船的精靈在位置(x1|y1)
。玩家現在點擊屏幕上的位置(x2|y2)
。這個精靈現在應該以(x2|y2)
作爲新的職位 - 一步一步地去那裏,而不是立即在那裏發光。
我想通了,它有事情做對角矩形(x1|y1)
,(x1|y2)
,(x2|y2)
,(x2|y1)
,但我無法弄清楚,特別是沒有維持該速度相同的問題上沒有什麼角度對角線已經並且考慮到x
和y
的值(發貨或點擊)可能會大於或小於相應的其他值。
這個小片段是我最後一次嘗試寫一個工作職能:
def update(self, new_x, new_y, speed, screen, clicked):
if clicked:
self.xshift = (self.x - new_x)
self.yshift = ((self.y - new_y)/(self.x - new_x))
if self.x > (new_x + 10):
self.x -= 1
self.y -= self.yshift
elif self.x > new_x and self.x < (new_x + 10):
self.x -= 1
self.y -= self.yshift
elif self.x < (new_x - 10):
self.x += 1
self.y += self.yshift
elif self.x < new_x and self.x < (new_x - 10):
self.x += 1
self.y += self.yshift
else:
self.x += 0
self.y += 0
screen.set_at((self.x, self.y), (255, 0, 255))
「船」就是在這裏一個粉紅色的像素。它在我點擊屏幕時顯示的反應是大致朝着我的咔嗒聲移動,但是停在我點擊的點的看似隨機的距離處。
的變量是:鼠標點擊
speed
=恆定速度的
new_x
,new_y
=位置取決於船舶類型
clicked
=設定true
由MOUSEBUTTONDOWN
事件,以確保XSHIFT和自我YSHIFT是隻有當玩家點擊時才定義,而不是每個幀。
如何使船舶從當前位置平穩移動到玩家點擊的位置?
我哥哥的名字也是 「多米尼克」(但以 「K」 而不是 「C」): D 非常感謝!我想,我想出了我的問題:)你的回答說清楚了 – 2013-04-30 12:49:20
完成:)還有一件事:我在哪裏可以在文檔中找到@property? pygame是否具體?在python的文檔中找不到一個單詞(或者我忽略它?) – 2013-04-30 23:07:37
@patrichartmann http://docs.python.org/2/library/functions.html#property – sloth 2013-05-01 12:04:54