巨蟒基维负值

zengzsys  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(378)

你好,我有一个问题,我正在用python在kivy库中制作一个游戏。我想在“on_touch_down”功能中反转self.hero_pos.points。我有一个主意,如何从update_hero复制粘贴坐标并使其为负数。但我很好奇,我能不能用一种更简单的方法来保持代码的干爽

def on_touch_down(self, touch):
    #what should i do? 

 def on_touch_up(self,touch):
   pass

def init_hero(self):
    with self.canvas:
        Color(0,1,0)
        self.hero_pos = Triangle()

def update_hero(self):
    center_x = int(self.width/2) 
    spacing = self.V_spacing * self.width 
    ymax = self.height * self.hero_height
    ymin = self.height * self.hero_height
    x1, y1 = (center_x - spacing*.25, ymin)
    x2, y2 = (center_x - spacing *.5, ymax + ymin)
    x3, y3 = ( center_x - spacing*.75, ymin)

    self.hero_pos.points = [ x1,y1,x2,y2,x3,y3]
ibps3vxo

ibps3vxo1#

很好的一天。我不确定“反向”是什么意思。

选择1

如果反向表示“[y3,x3,y2,x2,y1,x1]”,那么它将是一个简单的函数。

def reverse(self):
    return self.hero_pos.points[::-1]

# OR

def reverse(self):
    return self.hero_pos.points.copy().reverse()

选择2

如果你所说的反向是指“[x3,y3,x2,y2,x1,y1]”:

def reverse(self):
    n_points = len(self.hero_pos.points)//2
    ans = []
    for r in range(1, n_points, 2):
        ans.append(self.hero_pos.points[r-1])
        ans.append(self.hero_pos.points[r])
    return ans

推荐

我强烈建议您将每个x,y值作为一对存储在一个列表(成对列表)中。这将使迭代和重新排序更容易。

相关问题