我正在尝试在pythonv2.7上制作一个简单的游戏(类似于danmaku射击游戏)
我对这部分有意见
import os
from pygame import *
MOVE_SPEED = 3
WIDTH = 10
HEIGHT = 10
COLOR = "#F52525"
class Player(sprite.Sprite):
def __init__(self, x, y):
sprite.Sprite.__init__(self)
self.xvel = 0
self.yvel = 0
self.startX = x
self.startY = y
self.image = Surface((WIDTH,HEIGHT))
#self.image.fill(Color(COLOR))
self.image = image.load("images/player.png")
self.rect = Rect(x, y, WIDTH, HEIGHT)
““播放器.png“大小是40x60,但我需要在实际大小10x10矩形的图像中心,这将与游戏逻辑(与选项显示或不)。你知道吗
您需要在blit中使用rect参数:
如果您想使用中心,您应该定义图像函数
blit(screen, dest)
:您可能知道每个精灵由一个
image
(绘制在曲面上)和一个rect
对象组成(设置image
的位置和碰撞检测区域)。你知道吗您可以在
player
类中创建一个新的rect
对象…并将其位置设置为
每次更改
player
的位置时,也必须调用此行,因此self.collideRect
rect对象会随着屏幕上的player
移动“。你知道吗要测试点(例如鼠标坐标)是否在
self.collideRect
内,请调用我希望这有帮助:)
所以我想你想缩小图像的比例? 没有
编辑
您将需要偏移图形和冲突
rect
所以基本上你希望碰撞发生在图像内部。 https://www.pygame.org/docs/ref/sprite.html#pygame.sprite.collide_rect
相关问题 更多 >
编程相关推荐