《Python学习笔记》

近几日学习了Python大神的教学课程,自己动手实践,巩固学习的内容,决定对弹力球小游戏下手(文末源码奉上)。

进入正题:

避免自己忘记下一步干啥,将小游戏分8步完成:

#Part1 Game UI
#Part2 Paddle
#Part3 Ball
#Part4 Move the paddle 
#Part5 Move the ball
#Part6 Border check
#Part7 Paddle and Ball collisions
#Part8 Score

先看下这个简陋的游戏吧,没错就是这个界面

Part1:  Game UI  (游戏界面简陋无匹啊)

import turtle#UI
wn = turtle.Screen()
wn.title("Rebound Ball Game @TimeOld")
wn.bgcolor("black")
wn.setup(width=500,height=600)
wn.tracer(0)#Main
while True:wn.udpate()

Part2 Paddle(接球板,名字好听)

#Paddle
paddle = turtle.Turtle()
paddle.speed(0)
paddle.shape("square")
paddle.color("white")
paddle.shapesize(1,5)
paddle.penup()
paddle.goto(0,-260)

Part3 Ball(小球,不是伽利略的那个摆球啊喂)

#Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape("circle")
ball.color("white")
ball.penup()
ball.goto(0,0)

Part4 Move the paddle (球板动起来喽)

#Function
def paddle_left():x = paddle.xcor()x -= 20paddle.setx(x)
def paddle_right():x = paddle.xcor()x += 20paddle.setx(x)
#Keyboard binding
wn.listen()
wn.onkeypress(paddle_left,"Left")
wn.onkeypress(paddle_right,"Right")

Part5 Move the ball(看我如何摇动此球)

#在Part3 Ball后面加两个变量,后续坐标+++,ball动起来
#Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape("circle")
ball.color("white")
ball.penup()
ball.goto(0,0)
ball.dx = 0.2
ball.dy = 0.2#Ball Movingball.setx(ball.xcor() + ball.dx)ball.sety(ball.ycor() + ball.dy)

#Part6 Border check(防止球动的力度较大,一去不返,需要个框框留住球)

    #Border Checkingif ball.xcor() > 240:#rightball.setx(240)ball.dx *= -1if ball.xcor() < -240:#leftball.setx(-240)ball.dx *= -1if ball.ycor() > 290:#topball.sety(290)ball.dy *= -1if ball.ycor() < -290:#under 下边界自己防守,守不住,球越狱到指定位置ball.goto(100,100)

#Part7 Paddle and Ball collisions (猛烈的碰撞得分开始)

 #Paddle and Ball conllisionsif  ball.ycor()< -240  and (ball.xcor()>paddle.xcor()-25 and ball.xcor()<paddle.xcor()+25):ball.sety(-210)ball.dy *= -1 #蚂蚁撞大象,反弹回去

#Part8 Score (可能需要记录得分)

#Score 裁判可以统计分数了
score = 0#Pen   解说员可以播报分数
pen = turtle.Turtle()
pen.speed(0)
pen.color("white")
pen.penup()
pen.hideturtle()
pen.goto(0,260)
pen.write("Score: 0 ", align = "Center", font = ("Courier", 20 , "normal"))#在Part7 Paddle and Ball conllisions 后面记录碰撞得分,得分显示pen.clear()pen.write("Score: {} ".format(score), align = "Center" ,font = ("Courier", 20 , "normal"))

Last Part :  源码奉上,记录本次学习

#Rebound Ball Game
#Part1 Game UI
#Part2 Paddle
#Part3 Ball
#Part4 Move the paddle
#Part5 Move the ball
#Part6 Border check
#Part7 Paddle and Ball collisions
#Part8 Score
import turtle#UI
wn = turtle.Screen()
wn.title("Rebound Ball Game @TimeOld")
wn.bgcolor("black")
wn.setup(width=500,height=600)
wn.tracer(0)#Score
score = 0#Paddle
paddle = turtle.Turtle()
paddle.speed(0)
paddle.shape("square")
paddle.color("white")
paddle.shapesize(1,5)
paddle.penup()
paddle.goto(0,-260)#Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape("circle")
ball.color("white")
ball.penup()
ball.goto(0,0)
ball.dx = 0.2
ball.dy = -0.2#Pen
pen = turtle.Turtle()
pen.speed(0)
pen.color("white")
pen.penup()
pen.hideturtle()
pen.goto(0,260)
pen.write("Score: 0 ", align = "Center", font = ("Courier", 20 , "normal"))#Function
def paddle_left():x = paddle.xcor()x -= 20paddle.setx(x)
def paddle_right():x = paddle.xcor()x += 20paddle.setx(x)
#Keyboard binding
wn.listen()
wn.onkeypress(paddle_left,"Left")
wn.onkeypress(paddle_right,"Right")#Main game loop
while True:wn.update()#Ball Movingball.setx(ball.xcor() + ball.dx)ball.sety(ball.ycor() + ball.dy)#Border Checkingif ball.xcor() > 240:#rightball.setx(240)ball.dx *= -1if ball.xcor() < -240:#leftball.setx(-240)ball.dx *= -1if ball.ycor() > 290:#topball.sety(290)ball.dy *= -1if ball.ycor() < -290:#underball.goto(100,100)#Paddle and Ball conllisionsif  ball.ycor()< -240  and (ball.xcor()>paddle.xcor()-25 and ball.xcor()<paddle.xcor()+25):ball.sety(-210)ball.dy *= -1score += 1pen.clear()pen.write("Score: {} ".format(score), align = "Center" ,font = ("Courier", 20 , "normal"))

Python小游戏,弹力球相关推荐

  1. python小游戏-16行代码实现3D撞球小游戏!-源码下载

    python小游戏-16行代码实现3D撞球小游戏!-源码下载 所属网站分类: 资源下载 > python小游戏 作者:搞笑 链接: http://www.pythonheidong.com/bl ...

  2. python弹球游戏双球代码键盘操作_python运用pygame库实现双人弹球小游戏

    使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球. 因为是第一次用pygam ...

  3. python小游戏之三

    猜拳游戏 Python代码实现猜拳小游戏 Python代码实现猜拳小游戏_zhangtongyuan0909的博客-CSDN博客_python猜拳游戏代码 用python中类与对象写一个猜拳游戏 用p ...

  4. 边玩边学,13个 Python 小游戏真有趣啊(含源码)

    经常听到有朋友说,学习编程是一件非常枯燥无味的事情.其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个Python小游戏,教你 ...

  5. python小游戏-移动木板

    文章目录 一.游戏简介 二.编写步骤 1.引入库 2.初始化 3.相关自定义函数 4.相关自定义函数 一.游戏简介 本游戏是通过python编写的小游戏,给初学者熟悉python编程语言抛砖引玉,希望 ...

  6. python画图、python小游戏、python刷题、python算法、python编程与数学

    python画图系列整理 python画图系列整理-CSDN博客 python游戏入门书籍推荐 python游戏入门书籍推荐_pygame书籍推荐_dllglvzhenfeng的博客-CSDN博客 p ...

  7. 寓教于乐——PyGame游戏编程,Python小游戏制作实战教学

    Python非常受欢迎的一个原因是它的应用领域非常广泛,其中就包括游戏开发.而是用Python进行游戏开发的首选模块就是PyGame. 1. 初识Pygame PyGame是跨平台Python模块,专 ...

  8. 边玩边学,13个Python小游戏(含源码)

    经常听到有朋友说,学习编程是一件非常枯燥无味的事情.其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个Python小游戏,教你 ...

  9. 边玩边学,30个Python小游戏(含源码)

    大家好,我是小F~ 经常听到有朋友说,学习编程是一件非常枯燥无味的事情.其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享30个P ...

  10. python编的俄罗斯方块游戏_手把手制作Python小游戏:俄罗斯方块(一)

    手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...

最新文章

  1. 阿里云存储_OSS对象存储
  2. (科普帖)电梯突然断电下坠时、一定要这么做
  3. seqlist插入java_大话数据结构(五)(java程序)——顺序存储结构的插入与删除...
  4. Deformable ConvNets自己的理解
  5. 超越村后端开发(7:修改完善代码(持续更新))
  6. mysql中创建视图语法错误_mysql - 使用过程MySQL创建视图时出错 - 堆栈内存溢出
  7. Andrew Ng 如何重拾梦想
  8. 目录 1. 常见mime类型 1 1.1. 2.1.1. Type application 2 2.1.2. Type audio 22.1.3. Type image 32.1.4. Type t
  9. 盘式过滤器工作原理介绍
  10. google earth 专业版下载方法
  11. 计算机蓝屏代码0x0000007b,win7系统开机蓝屏提示STOP:0X0000007B错误代码怎么办
  12. FastDFS文件服务器升级内置nginx版本
  13. 来啊,一起来智障啊:国外大火游戏人类一败涂地究竟有多好玩?
  14. MATLAB梯度和拉普拉斯算子在图像边缘检测中的应用
  15. 爱快路由安装mysql_ESXi安装爱快iKuai OS路由(图文教程)
  16. 0103 混蛋罗心得[装*技巧]
  17. ESP32开发环境的搭建和 ESP-IDF支持以下调试方法
  18. 关于x>y?x:y的含义
  19. android水波纹动画制作,Framer之事件 | 如何制作安卓点击水波纹效果?
  20. 科罗拉多大学波尔得分校计算机科学,科罗拉多大学波尔得分校副教授Dan Zhang:基于线性规划的近似动态规划方面的一些最新成果...

热门文章

  1. 热门软件看点:暴风影音和它的对手们
  2. Assembly.cs
  3. 广东金融学院计算机实验报告二,广东金融学院实验报告[多媒体2].doc
  4. 死锁的原理以及避免算法
  5. 虚拟机时间为什么不是快了就是慢了?
  6. FileReader和BufferedReader的区别
  7. 蓝牙5.1低功耗SOC 私有协议2.4GHz芯片HS6621
  8. [git] git中origin的含义
  9. matlab imshow 多平面图像的输入项必须是大小为 MxNx3 的 RGB 图像,和imread读取路径以及特定路径修改
  10. 有趣的设计能让人心情愉快,有趣的设计作品是什么样的呢?磨金石设计学院告诉你。