Mercurial > hg > tilerswift
changeset 49:5ca986354475
TilePicker: add tile flipping functionality
The middle mouse button flips tiles. This is currently bad UI, but
it's good enough for me to play with. I'll fix this later.
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Wed, 04 Sep 2019 12:31:05 -0400 |
parents | fa5b36acf03f |
children | fef68d9650af |
files | tilerswift |
diffstat | 1 files changed, 24 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/tilerswift +++ b/tilerswift @@ -152,8 +152,10 @@ self.numcols = 20 self.picked_tiles = [] + self.flips = [] for i in range(self.numrows): self.picked_tiles.append([None]*self.numcols) + self.flips.append([(1, 1)]*self.numcols) self.resize() @@ -186,11 +188,31 @@ 8*self.grid_canvas.scalefactor, 8*self.grid_canvas.scalefactor ) - painter.drawPixmap(rect, tile.pixmap) + flipx, flipy = self.flips[i][j] + painter.drawPixmap( + rect, + tile.pixmap.transformed(QtGui.QTransform().scale(flipx, flipy)) + ) def mousePressEvent(self, event): j, i = event.x()//self.tilesize, event.y()//self.tilesize - self.picked_tiles[i][j] = self.grid_canvas.picked_tile + if event.button() == QtCore.Qt.LeftButton: + self.picked_tiles[i][j] = self.grid_canvas.picked_tile + elif event.button() == QtCore.Qt.RightButton: + self.picked_tiles[i][j] = None + elif event.button() == QtCore.Qt.MidButton: + flipx, flipy = self.flips[i][j] + if flipx == 1: + if flipy == 1: + self.flips[i][j] = (1, -1) + else: + self.flips[i][j] = (-1, 1) + else: + if flipy == 1: + self.flips[i][j] = (-1, -1) + else: + self.flips[i][j] = (1, 1) + self.update()