当前位置: 首页>>代码示例>>Python>>正文


Python Surface.get_size方法代码示例

本文整理汇总了Python中pygame.Surface.get_size方法的典型用法代码示例。如果您正苦于以下问题:Python Surface.get_size方法的具体用法?Python Surface.get_size怎么用?Python Surface.get_size使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pygame.Surface的用法示例。


在下文中一共展示了Surface.get_size方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _get_raw_shadow

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
 def _get_raw_shadow(self):
     target_img = self.target.get_image(self.capture_state)
     r = target_img.get_rect()
     #the shadow will be larger in order to make free space for fadeout.
     r.inflate_ip(2*self.shadow_radius, 2*self.shadow_radius)
     img = Surface(r.size)
     img.fill((255, 255, 255, 255))
     img.blit(target_img, (self.shadow_radius, self.shadow_radius))
     if self.sun_angle <= 0.:
         raise Exception("Sun angle must be greater than zero.")
     elif self.sun_angle != 45. and self.vertical:
         w, h = img.get_size()
         new_h = h / tan(self.sun_angle * pi / 180.)
         screen_size = functions.get_screen().get_size()
         new_h = abs(int(min(new_h, max(screen_size))))
         img = scale(img, (w, new_h))
     if self.angle_mode == "flip":
         img = flip(img, self.mode_value[0], self.mode_value[1])
     elif self.angle_mode == "rotate":
         img = rotate(img, self.mode_value)
     else:
         raise Exception("angle_mode not available: " + str(self.angle_mode))
     shadow = pilgraphics.get_shadow(img,
                                     radius=self.shadow_radius,
                                     black=self.black,
                                     alpha_factor=self.alpha_factor,
                                     decay_mode=self.decay_mode,
                                     color=self.color)
     return shadow
开发者ID:YannThorimbert,项目名称:ThorPy-1.0,代码行数:31,代码来源:_shadow.py

示例2: main

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
    def main(self, screen):
        clock = pygame.time.Clock()
        background = Surface(screen.get_size())

        background.blit(construct_nightmare(background.get_size()), (0, 0))

        self.matris = Matris()
        matris_border = Surface((MATRIX_WIDTH * BLOCKSIZE + BORDERWIDTH * 2,
                                VISIBLE_MATRIX_HEIGHT * BLOCKSIZE + BORDERWIDTH * 2))
        matris_border.fill(BORDERCOLOR)

        while 1:
            dt = clock.tick(45)
            self.matris.update((dt / 1000.) if not self.matris.paused else 0)
            if self.matris.gameover:
                return

            tricky_centerx =  WIDTH - (WIDTH - (MATRIS_OFFSET + BLOCKSIZE *
                            MATRIX_WIDTH + BORDERWIDTH * 2)) / 2

            background.blit(matris_border, (MATRIS_OFFSET, MATRIS_OFFSET))
            background.blit(self.matris.surface, (MATRIS_OFFSET + BORDERWIDTH, 
                            MATRIS_OFFSET + BORDERWIDTH))

            nextts = self.next_tetromino_surf(self.matris.surface_of_next_tetromino)
            background.blit(nextts, nextts.get_rect(top = MATRIS_OFFSET, 
                                centerx = tricky_centerx))

            infos = self.info_surf()
            background.blit(infos, infos.get_rect(bottom = HEIGHT - MATRIS_OFFSET,
                                centerx = tricky_centerx))

            screen.blit(background, (0, 0))
            pygame.display.flip()
开发者ID:noiron,项目名称:NotingImportant,代码行数:36,代码来源:matris.py

示例3: makebackground

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
    def makebackground(self, surface):
        surface.fill((0,0,0))
        
        template = Surface(2*(min(self.zoom.width, self.zoom.height),))
        template.fill((0,0,0,255))
        width,height = template.get_size()

        ylim = surface.get_height()/height
        xlim = surface.get_width()/width

        data = self._data
        noise = [[pnoise2(self._selected[1][0]+x,
                          self._selected[0][0]+y,
                          4, 0.85) * 50
                  for x in range(xlim)]
                 for y in range(ylim)]

        hmin = hmax = 0
        for y in range(ylim):
            for x in range(xlim):
                yd = len(data)*float(y)/ylim
                xd = len(data[0])*float(x)/xlim

                h = self._height(data, yd, xd)
                n = noise[y][x]
                if h < 0:
                    h += -n if n > 0 else n
                else:
                    h += n if n > 0 else -n
                if h < hmin:
                    hmin = h
                if h > hmax:
                    hmax = h

        self.rects = []
        for y in range(ylim):
            for x in range(xlim):
                block = template.copy()
                yd = len(data)*float(y)/ylim
                xd = len(data[0])*float(x)/xlim

                h = self._height(data, yd, xd)
                n = noise[y][x]
                if h < 0:
                    h += -n if n > 0 else n
                else:
                    h += n if n > 0 else -n
                if h < 0:
                    color = 0, 0, int(255 * (1 - h/hmin))
                else:
                    color = 0, int(255 * h/hmax), 0
                block.fill(color)
                if self.selection:
                    if self.selection[0][0] <= yd <= self.selection[0][1]:
                        if self.selection[1][0] <= xd <= self.selection[1][1]:
                            block.fill((255,0,0,32),
                                       special_flags = BLEND_ADD)
                rect = Rect(x*width, y*height, width, height)
                surface.blit(block, rect.topleft)
                self.rects.append((rect, (yd, xd)))
开发者ID:tps12,项目名称:Dorftris,代码行数:62,代码来源:neighborhood.py

示例4: next_tetromino_surf

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
    def next_tetromino_surf(self, tetromino_surf):
        area = Surface((BLOCKSIZE * 5, BLOCKSIZE * 5))
        area.fill(BORDERCOLOR)
        area.fill(BGCOLOR, Rect(BORDERWIDTH, BORDERWIDTH, 
                        BLOCKSIZE*5-BORDERWIDTH*2, BLOCKSIZE*5-BORDERWIDTH*2))

        areasize = area.get_size()[0]
        tetromino_surf_size = tetromino_surf.get_size()[0]

        center = areasize / 2 - tetromino_surf_size / 2 
        area.blit(tetromino_surf, (center, center))

        return area
开发者ID:noiron,项目名称:NotingImportant,代码行数:15,代码来源:matris.py

示例5: blit_next_tetromino

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
    def blit_next_tetromino(self, tetromino_surf):
        """
        Draws the next tetromino in a box to the side of the board
        """
        area = Surface((BLOCKSIZE*5, BLOCKSIZE*5))
        area.fill(BORDERCOLOR)
        area.fill(BGCOLOR, Rect(BORDERWIDTH, BORDERWIDTH, BLOCKSIZE*5-BORDERWIDTH*2, BLOCKSIZE*5-BORDERWIDTH*2))

        areasize = area.get_size()[0]
        tetromino_surf_size = tetromino_surf.get_size()[0]
        # ^^ I'm assuming width and height are the same

        center = areasize/2 - tetromino_surf_size/2
        area.blit(tetromino_surf, (center, center))

        screen.blit(area, area.get_rect(top=MATRIS_OFFSET, centerx=TRICKY_CENTERX))
开发者ID:SmartViking,项目名称:MaTris,代码行数:18,代码来源:matris.py

示例6: Block

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
class Block(sprite.Sprite):
    """ Base Block Class """
    def __init__(self, pos, is_end):
        sprite.Sprite.__init__(self)
        self.pos = pos
        self.grid_pos = tuple([x/40 for x in self.pos])
        self.image = Surface((40, 40)).convert()
        self.color = (125, 125, 125)
        self.image.fill((255, 255, 255))
        self.rect = Rect(self.pos, self.image.get_size())
        self.is_shown = False
        self.is_path = False
        self.neighbors = set()
        self.path_value = 0
        self.is_end = is_end

    def get_neighbors(self, lst):
        for b in lst:
            if self in b:
                a = self

                # Left
                if b.index(a) != 0:
                    to_add = b[b.index(a)-1]
                    if to_add != self and not to_add.is_shown:
                        self.neighbors.add(b[b.index(a)-1])

                # Right
                if b.index(a) != len(b)-1:
                    to_add = b[b.index(a)+1]
                    if to_add != self and not to_add.is_shown:
                        self.neighbors.add(b[b.index(a)+1])

                # Above
                if lst.index(b) != 0:
                    to_add = lst[lst.index(b)-1][b.index(a)]
                    if to_add != self and not to_add.is_shown:
                        self.neighbors.add(lst[lst.index(b)-1][b.index(a)])

                # Below
                if lst.index(b) != len(lst)-1:
                    to_add = lst[lst.index(b)+1][b.index(a)]
                    if to_add != self and not to_add.is_shown:
                        self.neighbors.add(lst[lst.index(b)+1][b.index(a)])
开发者ID:brandonsturgeon,项目名称:Tower_Defense,代码行数:46,代码来源:block.py

示例7: Island

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
class Island(WorldObject):
	def __init__(self, size, color, n = 20, ):
		super(Island, self).__init__()
		self.buffer = Surface(size)
		self.pointlist = []
		self.heights = []
		self.n = n
		self.color = color

	def redraw(self):
		self.pointlist = []
		self.heights = []
		if not self.pointlist:
			self.generate_terrain(self.buffer.get_size())

		if self.color:
			draw.polygon(self.buffer, white, self.pointlist)
		else:
			draw.polygon(self.buffer, black, self.pointlist)
		draw.lines(self.buffer, white, True, self.pointlist)
		#draw.lines(screen, [255, 0, 0], False, [(i, val) for i, val in enumerate(self.heights)])

	def generate_terrain(self, size):
		width, height = size
		scaling = 1.0 * width / self.n
		cumulative = [x * scaling for x in random_wander(self.n)]
		# turn heights into points
		self.pointlist = [(i * scaling, value + height - 300) for i, value in enumerate(cumulative) ]
		for x in range(width):
			i = floor(x / scaling)
			if i < 0:
				i = 0
			if i >= len(self.pointlist)-1:
				i = len(self.pointlist)-2
			remainder = x - i * scaling
			i = int(i)
			leftwidth, leftheight = self.pointlist[i]
			rightwidth, rightheight = self.pointlist[i + 1]
			h = leftheight + (rightheight - leftheight) * remainder / scaling
			self.heights.append(h)
		# add bottom right and bottom left
		self.pointlist.extend([size, (0, height)])
开发者ID:yeahpython,项目名称:black-and-white,代码行数:44,代码来源:main.py

示例8: makebackground

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
    def makebackground(self, surface):
        surface.fill((0,0,0))
        
        template = Surface(2*(min(self.zoom.width, self.zoom.height),),
                           flags=SRCALPHA)
        template.fill((0,0,0,255))
        width,height = template.get_size()

        o = min(surface.get_width()/width,
                surface.get_height()/height)/2

        self.rects = []
        for y in range(2*o):
            lat = asin(float(y-o)/o) * 180/pi
            r = int(sqrt(o**2-(o-y)**2))
            for x in range(o-r, o+r):
                block = template.copy()

                v = [float(x-r)/o, float(y-o)/o]

                if x >= o:
                    lon = self.rotate - acos(float((x-(o-r)-r))/r) * 180/pi
                else:
                    lon = self.rotate + 180 + acos(float(r-(x-(o-r)))/r) * 180/pi

                if lon > 180:
                    lon -= 360

                h = self.planet.sample(lat, lon)
                color = ((0,int(255 * (h/9000.0)),0) if h > 0
                         else (0,0,int(255 * (1 + h/11000.0))))

                block.fill(color)
                if self.selection:
                    if self.selection[0][0] <= lat <= self.selection[0][1]:
                        if self.selection[1][0] <= lon <= self.selection[1][1]:
                            block.fill((255,0,0,32),
                                       special_flags = BLEND_ADD)
                rect = Rect(x * width, y * height, width, height)
                surface.blit(block, rect.topleft)
                self.rects.append((rect, (lat, lon)))
开发者ID:tps12,项目名称:Dorftris,代码行数:43,代码来源:showplanet.py

示例9: MovingPlayerView

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
class MovingPlayerView(TileView):

    folder_dict = {}
    ressource_dict = {}
    len_animation = 0

    def __init__(self, board_pos, board_id, direction, delay, callback=None):
        # Init view
        self.board_pos = XY(*board_pos)
        super(MovingPlayerView, self).__init__(self.board_pos, board_id)
        # Init attributes
        self.image = Surface((0,0))
        self.delay = delay
        self.dirty = 2
        # Get animation
        if direction in self.ressource_dict:
            self.counter = counter(self.len_animation)
            self.ressource = self.ressource_dict[direction]
        else:
            self.counter = counter(self.len_animation, reverse = True)
            self.ressource = self.ressource_dict[XY(*direction)*(-1,-1)]
        self.animation = (self.ressource[i] for i in self.counter)
        self.callback = callback

    def update(self):
        # Delay control
        if self.delay:
            self.delay -= 1
            return
        # Animation
        self.image = next(self.animation, None)
        if self.image is None:
            if callable(self.callback):
                self.callback()
            self.kill()
        else:
            self.rect.size = self.image.get_size()
开发者ID:bashkirtsevich,项目名称:Port-Tales,代码行数:39,代码来源:TileView.py

示例10: makebackground

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
    def makebackground(self, surface):
        surface.fill((0,0,0))
        
        template = Surface(2*(min(self.zoom.width, self.zoom.height),))
        template.fill((0,0,0,255))
        width,height = template.get_size()

        ylim = surface.get_height()/height
        dlat = float(self.selected[0][1] - self.selected[0][0])/ylim
        xmax = 0
        for y in range(ylim):
            lat = self.selected[0][0] + y * dlat
            scale = cos(lat * pi/180)

            w = int(surface.get_width() * scale/width)
            if w > xmax:
                xmax = w

        hmin = hmax = 0
        for y in range(ylim):
            lat = self.selected[0][0] + y * dlat
            scale = cos(lat * pi/180)

            xlim = int(surface.get_width() * scale/width)
            for x in range(xlim):
                dx = float(xmax - xlim)/2
                
                lon = self.selected[1][0] + (x + dx) * scale * dlat
                
                h = self.planet.sample(lat, lon)
                if h < hmin:
                    hmin = h
                if h > hmax:
                    hmax = h

        self.rects = []
        for y in range(ylim):
            lat = self.selected[0][0] + y * dlat
            scale = cos(lat * pi/180)

            xlim = int(surface.get_width() * scale/width)
            for x in range(xlim):
                dx = float(xmax - xlim)/2
                
                lon = self.selected[1][0] + (x + dx) * scale * dlat
                
                block = template.copy()
                h = self.planet.sample(lat, lon)
                if h < 0:
                    color = 0, 0, int(255 * (1 - h/hmin))
                else:
                    color = 0, int(255 * h/hmax), 0
                block.fill(color)
                if self.selection:
                    if self.selection[0][0] <= lat <= self.selection[0][1]:
                        if self.selection[1][0] <= lon <= self.selection[1][1]:
                            block.fill((255,0,0,32),
                                       special_flags = BLEND_ADD)
                rect = Rect(int(x+dx)*width, y*height, width, height)
                surface.blit(block, rect.topleft)
                self.rects.append((rect, (lat, lon)))
开发者ID:tps12,项目名称:Dorftris,代码行数:63,代码来源:showregion.py

示例11: Monster

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
class Monster(sprite.Sprite):
    def __init__(self, move_time, nodes):
        sprite.Sprite.__init__(self)
        self.nodes = nodes
        self.orig_nodes = nodes
        self.move_time = move_time
        self.spawn_time = time.time()
        self.image = Surface((40, 40)).convert()
        self.image_inside = Surface((38, 38)).convert()
        self.image_inside.fill((0, 255, 0))
        self.image.blit(self.image_inside, (1, 1))
        self.pos = (80, 40)
        self.real_pos = (80, 40)
        self.rect = Rect(self.pos, self.image.get_size())
        self.speed = 2
        self.speed_mod = 1
        self.diag_speed = 2
        self.target_pos = (880, 560)
        self.value = 1
        self.cost = 0
        self.health = 100
        self.damage_mod = 1
        self.counter = 0
        self.cur_node = self.nodes[0]
        self.the_dir = (0, 0)
        self.can_move = False

        self.name = "Monster"
        self.description = "A basic monster with slow movement speed and moderate health."

    def update(self, window):

        if time.time() - self.spawn_time >= self.move_time:
            self.can_move = True
            # If it's hit the last block
            if len(self.nodes) < 1:
                self.kill()
                return self.value
            else:

                # Figuring direction
                if self.nodes[0].rect.x > self.cur_node.rect.x:
                    self.the_dir = (1, 0)
                elif self.nodes[0].rect.x < self.cur_node.rect.x:
                    self.the_dir = (-1, 0)
                elif self.nodes[0].rect.y > self.cur_node.rect.y:
                    self.the_dir = (0, 1)
                elif self.nodes[0].rect.y < self.cur_node.rect.y:
                    self.the_dir = (0, -1)

                # Check to see the most the monster can move
                for speed in range(0, self.speed+1):
                    t_dir = tuple([x * speed * self.speed_mod for x in self.the_dir])

                    # Monster can only move this much
                    if self.rect.move(t_dir) == self.nodes[0].rect:
                        self.rect.move_ip(t_dir)
                        self.real_pos = tuple(map(sum, zip(self.real_pos, t_dir)))
                        self.cur_node = self.nodes.pop(0)
                        break
                else:
                    # The monster can move by self.speed
                    a = tuple([x * self.speed * self.speed_mod for x in self.the_dir])
                    self.real_pos = tuple(map(sum, zip(self.real_pos, a)))
                    self.pos = tuple(map(round, self.real_pos))
                    self.rect.x, self.rect.y = self.pos

                # Conditions for the monster to die
                die_conditions = [self.rect.top >= window.get_height(),
                                  self.rect.left >= window.get_width(),
                                  self.rect.bottom <= 0]
                if any(die_conditions):
                    self.kill()
                    return self.value

                # Resetting the modifiers, they'll be changed if the monster is under an effect
                self.speed_mod = 1
                self.damage_mod = 1
        return 0

    # Does damage to the monster and checks if it dies
    def damage(self, damage):
        self.health -= damage*self.damage_mod

        # Returns the amount of money to grant the player if the monster dies and also how much damage was done
        if self.health <= 0:
            self.kill()
            return self.value, damage*self.damage_mod
        else:
            return None, damage*self.damage_mod
开发者ID:brandonsturgeon,项目名称:Tower_Defense,代码行数:92,代码来源:monster.py

示例12: HarmonyUi

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
class HarmonyUi(object):
    image = None
    rect = None
    currPos = (0, 0) # current position of mouse
    selKey = 'None' # key of selected star system
    keys = ['A','A#','B','C',
            'C#','D','D#','E', # the key of the next
            'F','F#','G','G#'] # star created
    keyIndex = 0
    editKey = None
    editSpeed = 1 # Speed of next planet placed
    selStarId = 'None' # id of current selected star
    selPlanetId = 'None' # id of selected planet
    selNote = 'None' # note of current selecte planet
    selSpeed = 'None' # speed of current selected planet 
    labelSprites = None # unmutable labels for ui fields
    fieldSprites = None # mutable ui fields
    clearBg = None # background to clear sprites

    def __init__(self, screen, pos):
	self.image = Surface((screen.get_width(), 200))
        self.rect = self.image.get_rect()
        self.rect.topleft = (0, screen.get_height() - 200)
        self.currPos = pos
        self.editKey = self.keys[self.keyIndex]
        self.labelSprites = pygame.sprite.RenderUpdates()
        self.fieldSprites = pygame.sprite.RenderUpdates()
        self.clearBg = Surface(self.image.get_size())
        self.create_labels()
        self.create_fields()

    def set_selected_star(self, star):
        self.selKey = star.key
        self.selStarId = star.id

    def set_selected_planet(self, planet):
        self.selNote = planet.note
        self.selSpeed = planet.speed
        self.selPlanetId = planet.id
  
    def set_current_pos(self, pos):
	self.currPos = pos
    
    def get_edit_speed(self):
        return self.editSpeed

    def get_edit_key(self):
        return self.keyIndex

    # Create mutable fields and add them to 
    # the fieldSprites group. Since fields 
    # may change with each tick the group
    # is emptied and repopulated every call.
    def create_fields(self):
        self.set_current_pos(pygame.mouse.get_pos())
        self.fieldSprites.clear(self.image, self.clearBg)
        self.fieldSprites.empty()

        xpos = uiSprite(`self.currPos[0]`, (205,101), 'field', 'xpos')
        self.fieldSprites.add(xpos)
        ypos = uiSprite(`self.currPos[1]`, (205,126), 'field', 'ypos')
        self.fieldSprites.add(ypos)
        eSpeed = uiSprite(`self.editSpeed`, (80,100), 'field', 'eSpeed')
        self.fieldSprites.add(eSpeed)
        eKey = uiSprite(self.editKey, (80,125), 'field', 'eKey')
        self.fieldSprites.add(eKey)
        sid = uiSprite(self.selStarId, (353,101), 'field', 'sid')
        self.fieldSprites.add(sid)
        skey = uiSprite(self.selKey, (353,126), 'field', 'skey')
        self.fieldSprites.add(skey)
        pid = uiSprite(self.selPlanetId, (535,101), 'field', 'pid')
        self.fieldSprites.add(pid)
        pSpeed = uiSprite(self.selSpeed, (535,126), 'field', 'pSpeed')
        self.fieldSprites.add(pSpeed)

    # Create all of the labels for the ui fields
    # and place them in the labelSprites group
    def create_labels(self):
        xposLabel = uiSprite('xposlabel.png', (150, 100), 'label', 'xpl')
        self.labelSprites.add(xposLabel)
        yposLabel = uiSprite('yposlabel.png', (150, 125), 'label', 'ypl')
        self.labelSprites.add(yposLabel)
        speedLabel = uiSprite('speedlabel.png', (24, 100), 'label', 'spl')
        self.labelSprites.add(speedLabel)
        keyLabel = uiSprite('keylabel.png', (39, 125), 'label', 'kyl')
        self.labelSprites.add(keyLabel)
        staridLabel = uiSprite('staridlabel.png', (280, 100), 'label', 'sidl')
        self.labelSprites.add(staridLabel)
        starkeyLabel = uiSprite('starkeylabel.png', (275, 125), 'label', 'skl')
        self.labelSprites.add(starkeyLabel)
        pidLabel = uiSprite('planetidlabel.png', (448, 100), 'label', 'pidl')
        self.labelSprites.add(pidLabel)
        pspeedLabel = uiSprite('pslabel.png', (425, 125), 'label', 'psl')
        self.labelSprites.add(pspeedLabel)
 
    def draw_ui(self):
        self.labelSprites.draw(self.image)
        self.fieldSprites.draw(self.image)
开发者ID:jaredsund,项目名称:Harmony,代码行数:100,代码来源:harmonyUi.py

示例13: str

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
# GET WEBCAM DATA BY PYGAME---------------
# Force SDL to write on our drawing area
os.putenv('SDL_WINDOWID', str(canvas.get_property('window').get_xid()))

# We need to flush the XLib event loop otherwise we can't
# access the XWindow which set_mode() requires
Gdk.flush()

pygame.init()
data = client_socket_test.recv(1024000)
image = Image.fromstring("RGB", (80, 60), data)
image = image.resize((640, 480))
image = pygame.image.frombuffer(image.tostring(), (640, 480), "RGB")

print Surface.get_size(image)
(WINX, WINY) = Surface.get_size(image)
# setting screen according to size
pygame.display.set_mode((WINX, WINY), 0, 0)
screen = pygame.display.get_surface()
#screen.blit(image, (0, 0))
#GLib.idle_add(pygame.display.update)
print "yoyo"

def updateImg(output):
    screen.blit(output, (0, 0))
    GLib.idle_add(pygame.display.update)
    print "boom"
    return True

videoListener = videoListenerThread(displayFunc=updateImg)
开发者ID:ghoshbishakh,项目名称:filedrop,代码行数:32,代码来源:client.py

示例14: Weapon

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]

#.........这里部分代码省略.........
                pos = self.game.off([self.blit_pos[0] + self.rigging[1], self.blit_pos[1]])
                if self.game.Player.player_face == 'left':
                    #this prevents the "hover" look of the dagger off the default player body
                    pos[0] += 7
                width = self.directional_attack_image.get_rect().width
                d_rect = Rect([width - (self.range - self.attack_ticks), 0], [100, 100])
                self.weapon_rect = self.game.screen.blit(self.directional_attack_image, pos, d_rect)
                unoff_pos = self.game.unoff([self.weapon_rect.x, self.weapon_rect.y])
                self.weapon_rect.x = unoff_pos[0]
                self.weapon_rect.y = unoff_pos[1]

    def longAttack(self):
        self.attacking = True
        self.y_offset = 0
        self.x_offset = 0
        if self.game.Player.player_face == "front":
            self.init_angle = 180
        elif self.game.Player.player_face == "back":
            self.init_angle = 0
            self.y_offset = -self.game.Player.getSize()[1]*0.60 - self.attack_image.get_height()
            self.x_offset = -self.game.Player.getSize()[0]*0.60
        elif self.game.Player.player_face == "left":
            self.init_angle = 90
            self.x_offset = -self.game.Player.getSize()[0] - self.attack_image.get_height()
        elif self.game.Player.player_face == "right":
            self.init_angle = 270
        self.directional_attack_image = rotate(self.attack_image, self.init_angle)
        self.attack_rect = self.directional_attack_image.get_rect()
        self.angle = 0

    def longUpdate(self):
        if self.attacking:
            for x in xrange(5):
                attack_size = self.directional_attack_image.get_size()
                turn_point = [0, 0]
                if self.game.Player.isVertical():
                    turn_point = [attack_size[0]/2, 0]
                elif self.game.Player.isHorizontal():
                    turn_point = [0, attack_size[1]/2]
                self.mod_DAT = rotate(self.directional_attack_image, self.angle + 45)
                if self.angle < -90:
                    self.attacking = False
                self.angle -= 1

    def longBlit(self):
        if self.attacking:
            blit_pos = self.game.off(self.game.Player.getPos())
            blit_pos = vector.add(blit_pos, self.game.Player.getRigging())
            blit_pos = vector.sub(blit_pos, self.attack_image.get_size())

            #offset for left/back
            blit_pos[0] += self.x_offset
            blit_pos[1] += self.y_offset
            self.new_rect = self.game.screen.blit(self.mod_DAT, blit_pos)
            self.new_rect.center = self.attack_rect.center
            self.attack_rect = self.new_rect

    def rangedAttack(self):
        pass

    def rangedUpdate(self):
        pass

    def rangedBlit(self):
        pass
开发者ID:ajay05,项目名称:Necromonster,代码行数:69,代码来源:equipment.py

示例15: Buffalo

# 需要导入模块: from pygame import Surface [as 别名]
# 或者: from pygame.Surface import get_size [as 别名]
class Buffalo():
	def __init__(self, posX, posY, picture, size, resourcePath):
		self.picture = picture
		self.size = size
		self.resourcePath = resourcePath
		self.maxHealth = 100 * self.size
		self.health = self.maxHealth
		self.preimage = image.load(self.resourcePath + "img/" + self.picture + "_buffalo.png")
		self.image = scale(self.preimage, (int(self.preimage.get_width() * self.size),
										   int(self.preimage.get_height() * self.size)))
		self.healthFont = font.Font(None, 20)
		self.healthBarContainer = Surface((int(75 * self.size), int(12 * self.size))).convert()
		self.healthBarShader = Surface((self.healthBarContainer.get_width() + 6,
										self.healthBarContainer.get_height() + 6)).convert()
		self.healthNumber = self.healthFont.render(str(self.health), 1, (0, 0, 0))
		self.healthBarShader.fill((175, 175, 175))
		self.healthBar = Surface(self.healthBarContainer.get_size()).convert()
		self.healthColour = ()
		if (self.health >= 50):
			self.healthColour = (float((self.maxHealth - self.health) * 2 / self.maxHealth * 255), 255, 0)
		else:
			self.healthColour = (255, float(self.health * 2 / self.maxHealth * 255), 0)
		try:
			self.healthBar.fill(self.healthColour)
		except TypeError:
			self.healthBar.fill((0, 0, 0))
		self.healthBarContainer.blit(self.healthBar, (0, 0))
		self.value = 20 * self.size
		self.rect = Rect((0, 0), self.image.get_size())
		self.rect.x = posX
		self.rect.y = posY
		self.status = "alive"
		self.targetY = posY
		
	def update(self):
		self.preimage = image.load(self.resourcePath + "img/" + self.status + "_buffalo.png")
		self.image = scale(self.preimage, (int(self.preimage.get_width() * self.size),
										   int(self.preimage.get_height() * self.size)))
										   
		self.healthBarContainer = Surface((int(75 * self.size), int(12 * self.size))).convert()
		self.healthNumber = self.healthFont.render(str(int(self.health)), 1, (255, 255, 255))
		self.healthBarShader = Surface((self.healthBarContainer.get_width() + 6,
										self.healthBarContainer.get_height() + 6)).convert()
		self.healthBarShader.fill((175, 175, 175))
		if (self.health <= 0):
			self.healthBar = Surface((0, 0)).convert()
		else:
			self.healthBar = Surface((int(self.healthBarContainer.get_width() / self.maxHealth * self.health),
											self.healthBarContainer.get_height())).convert()
											
			if (self.health >= 50):
				self.healthColour = (float((self.maxHealth - self.health) * 2 / self.maxHealth * 255), 255, 0)
			else:
				self.healthColour = (255, float(self.health * 2 / self.maxHealth * 255), 0)
				
			try:
				self.healthBar.fill(self.healthColour)
			except TypeError:
				self.healthBar.fill((0, 0, 0))
			self.healthBarContainer.blit(self.healthBar, (0, 0))
		self.healthBarContainer.blit(self.healthNumber, (self.healthBarContainer.get_width() / 2 -
														 self.healthNumber.get_width() / 2,
														 self.healthBarContainer.get_height() / 2 -
														 self.healthNumber.get_height() / 2))
		self.healthBarShader.blit(self.healthBarContainer, (3, 3))
		
		if (self.status == "alive"):
			self.rect.x += float(3 - self.size)
			if (self.rect.y != self.targetY):
				if (self.rect.y < self.targetY):
					self.rect.y += float(3 - self.size)
				elif (self.rect.y > self.targetY):
					self.rect.y -= float(3 - self.size)
			return self.rect.center
开发者ID:ZakFarmer,项目名称:OregonTrail,代码行数:76,代码来源:buffalo.py


注:本文中的pygame.Surface.get_size方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。