pygame 移开的矩形留痕迹_python-Pygame矩形碰撞

博主在尝试使用Python的Pygame库创建Pong游戏,遇到了球与球拍碰撞时无法正确反弹的问题。尽管已经确保了球在碰到墙壁时会改变方向,但球碰到球拍时却直接穿过而没有改变速度。博主分享了球拍类和球类的代码,并希望能得到关于如何在碰撞时反转球的速度以及检测球与球拍重叠的建议。
摘要由CSDN通过智能技术生成

我正在用Python在Pygame中创建Pong游戏(很明显),并且是Pygame的新手,因此希望对物理操作有所帮助,例如当球触碰桨叶时,它将颠倒速度并朝相反的方向发展.到目前为止,一切正常,但是当球到达球拍时,球会直接穿过球拍,并且不会改变方向.我已经解决了问题,因此桨板不会离开屏幕,并且当球遇到墙时球会改变方向,但是当球遇到桨板时球不会改变方向.任何帮助或提示,将不胜感激.

我的桨课程:

class Paddle:

def __init__(self, x, y):

self.x = x

self.y = y

self.height = 40

self.width = 10

def draw(self, canvas):

pygame.draw.rect(canvas, pygame.Color(0,0,255),(self.x,self.y,self.width,self.height))

def contains(self, ptX, ptY):

return self.x < ptX < self.x + self.width & self.y < ptY < self.y + self.height

def overlaps(self, otherRectangle):

return otherRectangle.colliderect(Rect(self.x,self.y,self.height, self.width))

我的球课

class Ball:

def __init__(self, x, y):

#position of ball

self.x = x

self.y = y

#speed of ball

self.dx = 5

self.dy = 5

self.height = 10

self.width = 10

def draw(self, canvas):

pygame.draw.rect(canvas, pygame.Color(0,255,0), (self.x,self.y,self.width,self.height))

def reset(self):

self.x = 320

self.y = 240

self.dx = -self.dx

self.dy = 5

我的目标是使球碰到球拍或反弹时的速度反转(负速)(重叠点).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值