Python之游戏Pong的简单实现

本文介绍了使用Python实现经典游戏Pong的过程,包括游戏规则、滑块几何与控制、矢量与运动以及碰撞与反射的处理。通过控制键位改变滑块位置,小球碰撞边界反弹,得分规则等内容,展示了一个基本的Pong游戏实现。
摘要由CSDN通过智能技术生成

Python之游戏Pong的简单实现

最近闲的无聊在MOOC上注册了Python的学习课程,课程链接为:
http://mooc.guokr.com/course/395/An-Introduction-to-Interactive-Programming-in-Python%EF%BC%88part-1%EF%BC%89/
课程Part 1 部分已经结束,按要求做了一个Pong的小游戏。

Pong游戏规则

Pong layout
如上图所示,Player1通过控制键盘上的”w”和”s”键分别控制滑块1在Gutter里的上移和下滑,同理,滑块2的运动由Player2通过控制”↑”和”↓”来实现。小球碰到内壁边缘自动反弹。若不能在小球触碰左右两边Gutter边缘的时候用滑块接住小球,则对方得分。简易的游戏原理就是这样,下面介绍其编程实现。

Paddle geometroy and control

paddle
重要的物理参量:
- height: height of canvas
- paddle_height: height of paddle
- paddle_width: width of paddle
- paddle1_pos: vertical distance of left paddle from top
- paddle1_vel: vertical velocity of left paddle
控制机制:
- 用draw handler连续更新paddle1_pos
- 通过按键控制paddle1_vel的大小和方向

vectors and motion

vectors and motion
如上图所示,有p,q两点,在Python中,速度为v的P点表示方法为:
p[0] = p[0] + a* v[0]
p[1] = p[1] + a* v[1]
这里a表示速度增加的缓慢程度。
因此,在程序中更新小球的位置即可表示为:

#update ball
    ball_pos[0] += vel[0]
    ball_pos[1] += vel[1] 
collisions and reflections

collisions
当小球撞击边缘的时候,既有:
Left wall: p[0]<= radius
Right wall: p[0]>=(width-1)-radius
(注意:此处不能写成==的形式)
此时,只需要让相应方向的速度反向即可实现小球碰壁反弹的效果。
reflections

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值