大家还记得小时候玩的游戏——“Pong”吗?

今天,我们使用Python还原这个经典游戏。

整活!

from turtle import Screen
import turtle as t
import time
t.tracer(0) #加速画图
#屏幕左边
side = 400
top = 300#创建小球
ball = t.Turtle()
ball.penup()#抬笔,移动中不留下痕迹
ball.shape("circle")
ball.color("darkorange")
ball_x = 0
ball_y = 0
speed_x = 4
speed_y = 2 #左边的笔
p1 = t.Turtle()
p1.fillcolor("red")
p1.ht() #隐藏画笔
p1_x = -side+50
p1_y = 0
#画出左边球拍
def p_left(x,y):p1.clear() #先清除图像p1.penup() p1.goto(x, y)p1.pendown()p1.begin_fill() #填充红色for _ in range(2):p1.fd(20)p1.left(90)p1.fd(100)p1.left(90)p1.end_fill()t.update()
#右边的笔
p2 = t.Turtle()
p2.fillcolor("blue")
p2.ht() #隐藏画笔
p2_x = side-50
p2_y = 0
#画出右边球拍
def p_right(x,y):p2.clear() #先清除图像p2.penup() p2.goto(x, y)p2.pendown()p2.begin_fill() #填充蓝色for _ in range(2):p2.fd(20)p2.left(90)p2.fd(100)p2.left(90)p2.end_fill()t.update()
#左边球拍向上移动10步
def up_left():y = p1.ycor()if y < top:y +=10p_left(p1_x, y)
#左边球拍向下移动10步
def down_left():y = p1.ycor()if y > -top:y -= 10p_left(p1_x, y)
#右边球拍向上移动10步
def up_right():y = p2.ycor()if y < top:y +=10p_right(p2_x, y)
#右边球拍向下移动10步
def down_right():y = p2.ycor()if y > -top:y -= 10p_right(p2_x, y)#设定键盘监听
screen = Screen()
#按键控制左边球拍
screen.onkey(up_left, "w")
screen.onkey(down_left, "s")
#按键控制右边球拍
screen.onkey(up_right,"p")
screen.onkey(down_right,"l")
screen.listen()#启动键盘监听机器人#调用函数,画出左右球拍
p_left(p1_x, p1_y)
p_right(p2_x,p2_y)"""游戏开始"""
while True:ball_x =ball.xcor()+speed_xball_y = ball.ycor()+speed_y ball.goto(ball_x,ball_y)#左右边界判断if ball_x >side or ball_x < -side:#设置x轴方向 为相反数。speed_x = - speed_x#上下边界判断if ball_y >top or ball_y <-top:speed_y = - speed_y""" 判断小球是否碰到球拍 """#左球拍碰撞检测p1_y = p1.ycor() #获取球拍y坐标p1_x = p1.xcor() #获取球拍x坐标if p1_x < ball_x < p1_x + 20:if  p1_y < ball_y < p1_y +100 :speed_x = -speed_xp2_y =p2.ycor()p2_x =p2.xcor()if p2_x  < ball_x < p2_x + 20:if p2_y < ball_y < p2_y + 100:speed_x = -speed_xt.update()  time.sleep(0.01)  

都有注释,自己看吧。

完毕!!!!!

Python游戏——Pong相关推荐

  1. Unity游戏制作:2D弹球游戏 Pong(附完整项目)

    介绍 这里,又来做弹球游戏了--(^_^) 之前自学了一段时间的 unity,还是先做一款 2D 的小游戏吧,运行效果如下: 目录 下载 项目制作过程 一.拼界面 二.主程序Game.cs 1)显示初 ...

  2. 《树莓派Python编程指南》——2.2 一个Python游戏:猫和老鼠

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第2章,第2.2节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  3. 33关Python游戏,测试你的爬虫能力到底及格不?

    作者 | 苏克1900 责编 | 胡巍巍 转载自高级农民工(ID: Mocun6) 最近在网上看到一个非常有意思的 Python 游戏通关网站,一共有 33 关,每一关都需要利用 Python 知识解 ...

  4. Python游戏开发:最强大脑第一关,数字华容道

    前言 freegames是Apache2许可的Python游戏集合,旨在用于教育和娱乐,完全是开源的,我们只要引用编写就好,当前在最强大脑的舞台上的第一关就是数字华容道,好多人都栽在了上面,如果你也想 ...

  5. python趣味编程100_《Python游戏趣味编程》 第8章 勇闯地下一百层

    知乎视频​www.zhihu.com 图书简介可以看这里:童晶:<Python游戏趣味编程>新书上架了​zhuanlan.zhihu.com 本章我们将编写一个勇闯地下一百层的游戏,键盘控 ...

  6. python游戏编程入门书籍推荐-游戏编程入门书籍推荐:想要游戏编程尽快入门这些书不要错过...

    游戏编程一直都是编程之中的一大热点,这也是由于游戏本身的火热造成的结果,所以每年都有很多人在关注着游戏编程.介于此小编今天就来将一些好的游戏编程入门书籍推荐给大家,希望对想要了解和学习游戏编程的朋友能 ...

  7. python游戏程序-python游戏程序

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 易于阅读:python代码定义更清晰. 易于维护:源代码是相当容易维护的 ...

  8. python游戏编程书籍-《Python游戏编程快速上手》一1.3 如何使用本书

    本节书摘来异步社区<Python游戏编程快速上手>一书中的第1章,第1.3节,作者: [美]Al Sweigart(斯维加特) 译者: 李强 责编: 陈冀康,更多章节内容可以访问云栖社区& ...

  9. python游戏程序-Python游戏趣味编程

    书名:Python游戏趣味编程 定价:69.0 ISBN:9787115538246 作者:童晶 版次:第1版 出版时间:2020-07 内容提要: 本书把趣味游戏开发应用于Python编程教学,通过 ...

  10. python游戏编程入门-python游戏编程入门

    <Python游戏编程入门> 这些文章负责整理在这本书中的知识点.注意事项和课后习题的尝试实现. 并且对每一个章节给出的最终实例进行分析和注释. 初识pygame:pie游戏 pygame ...

最新文章

  1. iOS-----Xcode-Debug尝试
  2. oracle大数据量更新引发的死锁问题解决方法及oracle分区和存储过程的思考
  3. boost::hana::remove_at用法的测试程序
  4. fhq treap ------ luogu P3369 【模板】普通平衡树(Treap/SBT)
  5. 将语音搜索集成到Google Now中
  6. Bootloader和App例程,实现M0基于UART的IAP升级功能,升级过程中通信中断,重新上电后Bootloader仍可运行。实现平台:STM32F030R8
  7. EasyUI:动态更改combox下拉框中选项
  8. IDEA---Project下看不见项目目录
  9. 不可错过的效能利器「GitHub 热点速览 v.22.39」
  10. macOS Safari使用EasyConnect插件的坑
  11. c++程序员书籍推荐
  12. 何为数码相机EXIF信息的等效焦距
  13. MATLAB绘制三维曲面图和等高线 绘图(2)
  14. 基于微前端qiankun的多页签缓存方案实践
  15. 联通沃云联手阿里云推混合云解决方案 打造共赢云生态
  16. 腾讯位置大数据中区域热力图数据的数据解析
  17. 0x0000007b电脑蓝屏的解决方法
  18. 【图像去噪】基于matlab自适应中值滤波图像去噪【含Matlab 1156期】
  19. csol怎么设置屏蔽服务器信息,谁知道反恐精英OL的控制台怎么调? -反恐精英锤子宏设置...
  20. MySQL中IN和EXISTS的用法

热门文章

  1. python+opencv修改像素值、创建图像
  2. python里apply用法_python中apply函数是什么?
  3. CloudSim仿真流程研究(一)
  4. awk if 使用方法
  5. 有营养的算法笔记(七)
  6. 普通人的编辑利器——Vim
  7. Centos7安装源地址
  8. 模拟电子技术 项目课 多种波形发生器(方波、三角波、正弦波)
  9. python简易网络验证(零成本)
  10. Pubg九月十六日服务器维护,绝地求生9月16日更新维护到几点?绝地求生9月16日更新时间公告...