mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 13:29:54 +00:00
Implement Niko walking off part of journal
This commit is contained in:
parent
d0ef020985
commit
9b6030414c
1 changed files with 34 additions and 6 deletions
|
|
@ -33,6 +33,14 @@ class WatchPipe(QThread):
|
|||
self.change_image.emit(message.decode())
|
||||
|
||||
time.sleep(0.05)
|
||||
|
||||
class AnimationTimer(QThread):
|
||||
next_frame = pyqtSignal()
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
self.next_frame.emit()
|
||||
time.sleep(1.0/60)
|
||||
|
||||
class Journal(QWidget):
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
|
@ -77,21 +85,37 @@ class Journal(QWidget):
|
|||
|
||||
class Niko(QWidget):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.x, self.y = kwargs['x'], kwargs['y']
|
||||
self.x, self.y, self.start_y, self.app, self.thread = kwargs['x'], kwargs['y'], kwargs['y'], kwargs['app'], kwargs['thread']
|
||||
self.screen_width, self.screen_height = kwargs['screen_width'], kwargs['screen_height']
|
||||
del kwargs['x'], kwargs['y'], kwargs['screen_width'], kwargs['screen_height']
|
||||
del kwargs['x'], kwargs['y'], kwargs['screen_width'], kwargs['screen_height'], kwargs['app'], kwargs['thread']
|
||||
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
self.setWindowFlags(self.windowFlags() | Qt.FramelessWindowHint)
|
||||
self.setWindowFlags(self.windowFlags() | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
|
||||
self.setAttribute(Qt.WA_TranslucentBackground)
|
||||
self.setMouseTracking(True)
|
||||
self.setWindowTitle('')
|
||||
self.setMinimumSize(self.screen_width, self.screen_height)
|
||||
self.setMaximumSize(self.screen_width, self.screen_height)
|
||||
self.setGeometry(0, 0, self.screen_width, self.screen_height)
|
||||
self.setGeometry(self.x, self.y, self.x+48, self.y+64)
|
||||
|
||||
self.label = QLabel(self)
|
||||
self.frames = [QPixmap(os.path.join(base_path, 'images', 'niko{}.png'.format(n))) for n in range(1,4)]
|
||||
self.label.setPixmap(self.frames[1])
|
||||
|
||||
self.show()
|
||||
|
||||
self.thread.start()
|
||||
|
||||
def getFrame(self):
|
||||
if ((self.y - self.start_y) % 32 >= 16): return 1
|
||||
if ((self.y - self.start_y) % 64 >= 32): return 0
|
||||
else: return 2
|
||||
|
||||
def update(self):
|
||||
self.label.setPixmap(self.frames[self.getFrame()])
|
||||
self.y += 2
|
||||
self.setGeometry(self.x, self.y, self.x+48, self.y+64)
|
||||
if self.y > self.screen_height: self.app.quit()
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
|
|
@ -101,7 +125,11 @@ if __name__ == '__main__':
|
|||
x, y = int(sys.argv[1]), int(sys.argv[2])
|
||||
screensize = app.primaryScreen().size()
|
||||
|
||||
niko = Niko(x = x, y = y, screen_width = screensize.width(), screen_height = screensize.height())
|
||||
thread = AnimationTimer()
|
||||
|
||||
niko = Niko(x = x, y = y, screen_width = screensize.width(), screen_height = screensize.height(), app = app, thread = thread)
|
||||
|
||||
thread.next_frame.connect(niko.update)
|
||||
|
||||
else:
|
||||
# Author's Journal mode
|
||||
|
|
|
|||
Loading…
Reference in a new issue