当我尝试缩放对象时,只有图像的顶部和左侧变大。其余的保持不变。我想要一个均衡的规模。
import pygame._view
import pygame, sys
from pygame.locals import *
import random
pygame.init()
barrel = pygame.image.load("images\Barrel.gif")
barrelx = 0
barrely = 0
while running:
barrel = pygame.transform.scale(barrel, (int(barrely/4), int(barrely/4)))
screen.blit(barrel, (barrelx, barrely))
直到它离开屏幕时,总是变得越来越大(作为一个数字)。 我在Windows XP上使用Python 2.7。
答案 0 :(得分:1)
我发现了问题!我编写程序的方式,新的桶形图像被重用。所以,在我展示枪管之后,我把它放在最后:
while running:
...
barrel = pygame.transform.scale(barrel, (init(barrely/4),init(barrely/4)))
screen.blit(barrel, (barrelx, barrely))
barrel = pygame.image.load("images\Barrel.gif")
这样,当比例变量发生变化时,它会影响新图像,而不会影响修改后的图像。
答案 1 :(得分:0)
不应该是:
import pygame._view
import pygame, sys
from pygame.locals import *
import random
pygame.init()
barrel = pygame.image.load("images\Barrel.gif")
barrelx = 0
barrely = 0
while running:
barrel = pygame.transform.scale(barrel, (int(barrelx/4), int(barrely/4)))
screen.blit(barrel, (barrelx, barrely))
在你的代码中,你只是为宽度和提供pygame.transform.scale()的高度
此外,我无法看到你更新桶的位置和barrely。在您粘贴的代码中,桶状和barrely将始终为0。
答案 2 :(得分:0)
我不清楚你的问题是什么。你是说只有左侧和上侧越来越大?这可能是pygame中的一个错误,因为scale不应该像那样工作。矩形保持矩形(每个图像都是矩形)。
如果图片向左和向上扩展,这意味着在循环中的某个位置,在调整图像大小之前或之后,您将桶形图像向左移动,向上移动,与桶的长度相同。只需删除它。 (缩放图像时,左上角始终保持在同一位置。)
如果这没有解决您的问题,您应该详细了解您的解释。
答案 3 :(得分:0)
"图像的顶部和左侧是否变得更大"意味着图像在中间不会变大,左上角总是保持在同一位置? 如果我理解得对,你可以试试这个:
import pygame._view
import pygame, sys
from pygame.locals import *
import random
pygame.init()
barrel1 = pygame.image.load("images\Barrel.gif")
barrel1x = 0
barrel1y = 0
#get width,height of image
width1,height1 = barrel1.get_size()
running = True
while running:
barrel2 = pygame.transform.scale(barrel1, (int(barrely/4), int(barrely/4)))
width2,height2 = barrel2.get_size()
#position - difference of width or height /2
screen.blit(barrel, [round(barrelx - (width1 - width2)/2),
round(barrely - (height1 - height2)/2)])