Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 可以在pygames中拉伸图像吗?_Python_Pygame - Fatal编程技术网

Python 可以在pygames中拉伸图像吗?

Python 可以在pygames中拉伸图像吗?,python,pygame,Python,Pygame,是否可以在pygame中使用事件来触发图像拉伸 比如说我有一个人,我希望他的眼睛像这样突出 当我按下一个按钮时,我正在使用surface.blit(eyes=pygame.image.load('eyes'))作为眼睛 我可以像此链接中的图片一样拉伸眼睛图像吗?更好的方法是使用两个图像,一个用于实际图像,另一个用于拉伸眼睛。在需要时绘制第二个图像,而不是第一个图像 如上面的例子所示,我们获取不同姿势的图像(精灵),并在需要运动时播放它们 要开始并理解pygame,请从开始,并且有很好的API

是否可以在pygame中使用事件来触发图像拉伸

比如说我有一个人,我希望他的眼睛像这样突出 当我按下一个按钮时,我正在使用
surface.blit(eyes=pygame.image.load('eyes'))
作为眼睛


我可以像此链接中的图片一样拉伸眼睛图像吗?

更好的方法是使用两个图像,一个用于实际图像,另一个用于拉伸眼睛。在需要时绘制第二个图像,而不是第一个图像

如上面的例子所示,我们获取不同姿势的图像(精灵),并在需要运动时播放它们


要开始并理解pygame,请从开始,并且有很好的API通过pygame处理精灵及其行为。

更好的方法是使用两个图像,一个用于实际图像,另一个用于眼睛伸展的位置。在需要时绘制第二个图像,而不是第一个图像

如上面的例子所示,我们获取不同姿势的图像(精灵),并在需要运动时播放它们


要开始并理解pygame,请从开始,有很好的API通过pygame处理精灵及其行为。

有一个解决方案可以让您将眼睛拉伸到所需的准确宽度,但这可能会使眼睛非常变形。。。(不管怎样,原始图像的眼睛还是很变形的。)

从上的Pygame文档:

比例(表面,(宽度,高度),表面=无)->表面

我们也使用图像。()所以用户不必自己获得高度

所以您可以这样做(包装在函数中):


这个问题有一个解决方案,可以让你把眼睛拉伸到你想要的准确宽度,但这可能会使眼睛非常变形。。。(不管怎样,原始图像的眼睛还是很变形的。)

从上的Pygame文档:

比例(表面,(宽度,高度),表面=无)->表面

我们也使用图像。()所以用户不必自己获得高度

所以您可以这样做(包装在函数中):

import pygame
from pygame.locals import *

screen = pygame.display.set_mode((540, 480))
runner1 = pygame.image.load('./runner1.jpg').convert()
runner1_rect = runner1.get_rect(center=(270, 240))
runner2 = pygame.image.load('./runner2.jpg').convert()
runner2_rect = runner2.get_rect(center=(270, 240))
screen.fill((0, 0, 0))
change = True
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
        if event.type == MOUSEBUTTONDOWN:
            screen.blit(runner2, runner2_rect)
            pygame.display.update()
        if event.type == KEYDOWN:
            screen.blit(runner1, runner1_rect)
            pygame.display.update()
def stretchEyes(image, newWidth):
    return pygame.transform.scale(image, (image.get_height(), newWidth))

eyes = stretchEyes(eyes, image.get_width()*3) # Stretch to three times width
# Blitting takes in the top left position, so we don't need to do any maths here!
screen.blit(eyes, (x,y))