Search
 
SCRIPT & CODE EXAMPLE
 

TYPESCRIPT

spritesheets in pyqt

class PowerUp(QtGui.QGraphicsRectItem):
    def __init__(self):
        QtGui.QGraphicsRectItem.__init__(self)
        self.images = ['data/images/objects/bonus_block/full-0.png',
                       'data/images/objects/bonus_block/full-1.png',
                       'data/images/objects/bonus_block/full-2.png',
                       'data/images/objects/bonus_block/full-3.png',
                       'data/images/objects/bonus_block/full-4.png']
        self.image = self.images[0]
        self.current = 0
        self.position()
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.animation_step)
        self.timer.start(175)
        #random.choice([slide(), ghost()])

    def position(self):
        self.pos_x = random.randint(-300, 300)
        self.pos_y = random.randint(-200, 200)

    def boundingRect(self):
        return QtCore.QRectF(0, 0, 32, 32)

    def paint(self, painter, option, widget):
        painter.setBrush(QtGui.QBrush(self.image))
        painter.setPen(QtGui.QPen(QtCore.Qt.NoPen))
        painter.drawRect(0, 0, 32, 32)
        self.setPos(self.pos_x, self.pos_y)

    def animation_step(self):
        self.image = QtGui.QPixmap(self.images[self.current])
        self.current += 1
        if self.current == len(self.images):
            self.current = 0
Comment

spritesheets in pyqt

# -*- coding: utf-8 -*-
import sys
import time

from PyQt4 import QtGui, QtCore


class SpriteAnimation(object):
    def __init__(self, image_path, sprite_width, sprite_height, label):
        pixmap = QtGui.QPixmap(image_path)

        width, height = pixmap.width(), pixmap.height()
        self.pixmaps = []
        for x in range(0, width, sprite_width):
            for y in range(0, height, sprite_height):
                self.pixmaps.append(pixmap.copy(x, y, 
                                                sprite_width, sprite_height))
        self._current_frame = 0
        self.label = label

    def play(self, interval=100):
        self._timer = QtCore.QTimer(interval=interval,
                                    timeout=self._animation_step)
        self._timer.start()
    def _animation_step(self):
        self.label.setPixmap(self.pixmaps[self._current_frame])
        self.label.update()
        self._current_frame += 1
        if self._current_frame >= len(self.pixmaps):
            self._current_frame = 0


class Window(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.resize(100, 100)
        layout = QtGui.QVBoxLayout(self)
        label = QtGui.QLabel()
        layout.addWidget(label)
        # http://content.makeyourflashgame.com/pbe/tutorials/star-green.png
        self.animation = SpriteAnimation('star-green.png', 80, 80, label)
        self.animation.play()


if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())
Comment

PREVIOUS NEXT
Code Example
Typescript :: list all motherboard ports command line 
Typescript :: how to mark plots octave 
Typescript :: dotcms elasticsearch query 
Typescript :: windows 10 iso 
Cpp :: 0009:err:mscoree:CLRRuntimeInfo_GetRuntimeHost Wine Mono is not installed 
Cpp :: latex piecewise function 
Cpp :: fast i/o in c++ 
Cpp :: qdebug 
Cpp :: qstring mid 
Cpp :: c++ get files in directory 
Cpp :: c++ typedef array 
Cpp :: how to check type in c++ 
Cpp :: c++ copy file to another directory 
Cpp :: simple C++ game code 
Cpp :: colourful text in c++ 
Cpp :: input output c++ 
Cpp :: eosio multi index clear 
Cpp :: qt qlcdnumber change value 
Cpp :: cpp executing without console 
Cpp :: watermelon codeforces solution 
Cpp :: replace character in a string c++ stack overflow 
Cpp :: creator of C++ 
Cpp :: extern shared memory 
Cpp :: how to get the player view point location and rotation in ue4 c++ 
Cpp :: how to convert a string to a double c++ 
Cpp :: qt double en qstring 
Cpp :: c++ find largest number in array 
Cpp :: fork c 
Cpp :: how to get command arguments c++ 
Cpp :: infinite loop c++ 
ADD CONTENT
Topic
Content
Source link
Name
8+9 =