compare viewport and sprite aspect ratios to scale sprites properly
This commit is contained in:
parent
664c9bde46
commit
c4a98bcc50
28
gameview.py
28
gameview.py
@ -248,10 +248,11 @@ class AOCharMovie(QtGui.QLabel):
|
|||||||
xx = 0 # for restoring from screenshake
|
xx = 0 # for restoring from screenshake
|
||||||
yy = 0 # for restoring from screenshake
|
yy = 0 # for restoring from screenshake
|
||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent, gameview):
|
||||||
QtGui.QLabel.__init__(self, parent)
|
QtGui.QLabel.__init__(self, parent)
|
||||||
|
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
|
self.gameview = gameview
|
||||||
self.setAlignment(QtCore.Qt.AlignCenter)
|
self.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
self.timeMod = 60
|
self.timeMod = 60
|
||||||
self.playOnce = True
|
self.playOnce = True
|
||||||
@ -535,16 +536,17 @@ class AOCharMovie(QtGui.QLabel):
|
|||||||
else:
|
else:
|
||||||
return QtCore.Qt.FastTransformation
|
return QtCore.Qt.FastTransformation
|
||||||
|
|
||||||
def getAspect(self, taller):
|
def getAspect(self, size):
|
||||||
if taller:
|
ratio = size.width() / float(size.height())
|
||||||
return QtCore.Qt.KeepAspectRatio
|
if ratio >= self.gameview.viewportRatio:
|
||||||
else:
|
|
||||||
return QtCore.Qt.KeepAspectRatioByExpanding
|
return QtCore.Qt.KeepAspectRatioByExpanding
|
||||||
|
else:
|
||||||
|
return QtCore.Qt.KeepAspectRatio
|
||||||
|
|
||||||
def getScaledImage(self, f_img):
|
def getScaledImage(self, f_img):
|
||||||
if not f_img.isNull():
|
if not f_img.isNull():
|
||||||
transform = self.getTransform(f_img.size().height() > self.size().height())
|
transform = self.getTransform(f_img.size().height() > self.size().height())
|
||||||
aspect = self.getAspect(f_img.size().width() <= self.size().width())
|
aspect = self.getAspect(f_img.size())
|
||||||
return f_img.scaled(self.size(), aspect, transform)
|
return f_img.scaled(self.size(), aspect, transform)
|
||||||
return f_img
|
return f_img
|
||||||
|
|
||||||
@ -1100,6 +1102,8 @@ class GUI(QtGui.QWidget):
|
|||||||
self.swapping = False
|
self.swapping = False
|
||||||
self.iniSwapIndex = 0
|
self.iniSwapIndex = 0
|
||||||
self.background = 'default'
|
self.background = 'default'
|
||||||
|
self.viewportScale = 1
|
||||||
|
self.viewportRatio = 1
|
||||||
|
|
||||||
self.viewport = QtGui.QWidget(self)
|
self.viewport = QtGui.QWidget(self)
|
||||||
self.viewport.setObjectName("ui_viewport")
|
self.viewport.setObjectName("ui_viewport")
|
||||||
@ -1113,17 +1117,17 @@ class GUI(QtGui.QWidget):
|
|||||||
|
|
||||||
self.zoom = ZoomLines(self.viewport)
|
self.zoom = ZoomLines(self.viewport)
|
||||||
|
|
||||||
self.char = AOCharMovie(self.viewport)
|
self.char = AOCharMovie(self.viewport, self)
|
||||||
self.char.done.connect(self.preanimDone)
|
self.char.done.connect(self.preanimDone)
|
||||||
self.sideChar = AOCharMovie(self.viewport)
|
self.sideChar = AOCharMovie(self.viewport, self)
|
||||||
self.sideChar.hide()
|
self.sideChar.hide()
|
||||||
|
|
||||||
self.slideLastWit = []
|
self.slideLastWit = []
|
||||||
self.slideLastPos = None
|
self.slideLastPos = None
|
||||||
self.slideWitness = AOCharMovie(self.viewport)
|
self.slideWitness = AOCharMovie(self.viewport, self)
|
||||||
self.slideWitness.showOnPlay = False
|
self.slideWitness.showOnPlay = False
|
||||||
self.slideWitness.hide()
|
self.slideWitness.hide()
|
||||||
self.slideSpeaker = AOCharMovie(self.viewport)
|
self.slideSpeaker = AOCharMovie(self.viewport, self)
|
||||||
self.slideSpeaker.hide()
|
self.slideSpeaker.hide()
|
||||||
self.slideSpeaker.showOnPlay = False
|
self.slideSpeaker.showOnPlay = False
|
||||||
|
|
||||||
@ -1757,7 +1761,6 @@ class GUI(QtGui.QWidget):
|
|||||||
# Finally, load the theme
|
# Finally, load the theme
|
||||||
self.width = 820
|
self.width = 820
|
||||||
self.height = 730
|
self.height = 730
|
||||||
self.viewportScale = 1
|
|
||||||
self.defaultStyle = QtGui.QApplication.style().objectName()
|
self.defaultStyle = QtGui.QApplication.style().objectName()
|
||||||
self.loadTheme()
|
self.loadTheme()
|
||||||
|
|
||||||
@ -1767,6 +1770,7 @@ class GUI(QtGui.QWidget):
|
|||||||
stylesheet = ""
|
stylesheet = ""
|
||||||
self.emotePageGeometry = []
|
self.emotePageGeometry = []
|
||||||
self.viewportScale = 0
|
self.viewportScale = 0
|
||||||
|
self.viewportRatio = 0
|
||||||
self.gamewindow.setStyleSheet("")
|
self.gamewindow.setStyleSheet("")
|
||||||
self.chatbox.resetGeometry()
|
self.chatbox.resetGeometry()
|
||||||
self.btnReloadTheme.setVisible(False)
|
self.btnReloadTheme.setVisible(False)
|
||||||
@ -1908,6 +1912,8 @@ class GUI(QtGui.QWidget):
|
|||||||
if not self.viewportScale:
|
if not self.viewportScale:
|
||||||
self.viewportScale = self.viewport.height() / float(192)
|
self.viewportScale = self.viewport.height() / float(192)
|
||||||
|
|
||||||
|
self.viewportRatio = self.viewport.width() / float(self.viewport.height())
|
||||||
|
|
||||||
self.court.resize(self.viewport.size())
|
self.court.resize(self.viewport.size())
|
||||||
self.bench.resize(self.viewport.size())
|
self.bench.resize(self.viewport.size())
|
||||||
self.whiteFlashLabel.resize(self.viewport.size())
|
self.whiteFlashLabel.resize(self.viewport.size())
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user