我正在尝试做一个使用pygame的游戏,我需要一些角色来左右移动。为此,每次用户按住“左”按钮时,我会再次绘制背景图像,并将字符绘制到其先前位置的左侧一点,当他按住“右”按钮时,我会执行类似的操作。问题是图像的加载速度不够快。例如,当我运行代码并按住“左”键时,精灵确实向左移动,但它似乎消失了很短的时间(大约0.2秒),并且移动不连续(我说精灵消失了,我的意思是有一段时间我可以“暂停”屏幕,只看到背景图像,而不是精灵)。我希望运动是连续的,因为它现在看起来并不好。我试着更新我的时钟节拍,但为了让精灵不断移动,它必须移动得非常慢,我也不想这样。下面是我的代码:
run = True
while
似乎每次我在pygame中创建一些东西时,我都必须切换行和列才能正确打印。例如,如果我有:
for col in range(COLS):
board[3][col] = 'tree'
我设置了一个绘制函数,只要板子单元格等于3,它就会绘制一个精灵。但是,它绘制的是一条垂直线,而不是水平的树。因为我想迭代第三行中的所有列,所以正确的输出应该是一行水平的树。
这只是众多例子中的一个,但是有没有人知道pygame为什么要这样做?
我有一个函数,它加载一个精灵工作表,找到一个精灵块,然后把每个精灵放到一个列表中。在将雪碧添加到列表之前,它会将其添加到屏幕上。一旦它完成了加载精灵,它就会遍历列表,在运行过程中闪动每一个精灵。这两组blits应该是相同的,但是第一个sprite被从列表中删除,最后一个sprite被复制。这两套blits如下所示:
每个精灵按其附加到列表的顺序进行裁剪,从左到右,从上到下,所以第一个雪碧是左上角,最后一个是右下角。
下面是加载精灵的函数:
def assembleSprites(name, screen):
"""Given a character n
我正在用pygame做一个塔防御游戏。我设置了我的背景,地图是以这种方式绘制的一组瓷砖:
for x in range(0,640, tile_size): #x starta od 0 i mice se po 32 sve do 640
for y in range (0, 480, tile_size): #y isto
window.blit(Tile.Grass, (x,y)
现在很容易通过以下命令获取鼠标位置:
if event.type == pygame.MOUSEBUTTONUP:
print('Click')
pos
每次清除屏幕时重新绘制每个图像都是非常痛苦的。
import pygame
from pygame.locals import *
T = pygame.display.set_mode((500,500))
M = pygame.image.load("test.jpg")
X = 0
Y = 0
while True:
X += 1
Y += 1
# Other sprites are here which are also redrawn every time loop run
每当我试图加载一些薯条(游戏中的敌人)的图像时,它会加载精灵。我认为,图像是空白的。如何正确加载图像以使其显示?
我试图改变加载图像的方法,选择从类的外部而不是内部加载图像。
import pygame
pygame.init()
# how big the game window is
wind = pygame.display.set_mode((600,700))
pygame.display.set_caption("Heart Attack")
x = 50
y = 50
width = 40
height = 60
vel = 0.8
fries = pyga
有没有一种方法可以改变精灵曲面的起始位置?
例如,下面的代码是一个球体精灵。椭圆是在(50,50)处绘制的,但是添加绘图的精灵的曲面从(0,0)开始,这意味着只显示了球的一部分。
我需要球精灵的表面从左上角开始。这可以做到吗?如果是这样的话,是怎么做的?
我的代码:
class Ball(pygame.sprite.Sprite):
"""
This class represents the ball.
"""
def __init__(self, width, height):
super()._
我有一个宽180×90高的精灵。它显示了火箭的两个视图-一个有发动机点火,另一个没有发动机点火。我需要能够只显示一个视图的船,同时也旋转它到任何角度。我可以以任何角度显示整个180x90精灵,但不知道如何将左手或右手图像复制到90x90矩形,然后旋转和but它。这是我的代码。ship_image是包含两艘船的180x90精灵,我的transform.chop是为了在ship3_image中创建一艘船的新90x90图像,其余的代码会旋转它并显示它(我故意没有清理我的显示表面,以显示我的精灵确实在围绕它的中心旋转)。那么,为什么我不能从印章中获得90 x 90精灵,或者我可以使用什么命令来获得90
我的精灵(记号)没有出现在屏幕上。我包括了我所有的代码,以防代码正文中有什么东西把它搞砸了。我把与令牌精灵直接相关的代码放进星星里。代码的要点是:屏幕上出现三个块,现在我试图使11、15或21个标记(橙色20x20像素方格)出现在中间的圆圈中。他们没有出现。忽略有关箭头键的代码,因为这是以后使用的。我的首要任务是让精灵出现,但是如果你有任何建议来加速或更好地组织我的代码,我很乐意听到它!谢谢。
import pygame, sys
from pygame.locals import *
import pygame
import time
import random
pygame.init()