python开发的小球完全弹性碰撞游戏代码.doc

python开发的小球完全弹性碰撞游戏代码.doc

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
python开发的小球完全弹性碰撞游戏代码 这篇文章主要介绍了通过python开发的一个小球完全弹性碰撞游戏效果,特分享下 完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: 游戏初始化状态: 最下面的游标和修改小球的移动速度 源码部分: 复制代码 代码如下: #python tkinter #python version 3.3.2 from tkinter import * ''' 判断 两个小球 { 圆心:A(x1,y1) 半径:r X轴速度:Vax Y轴速度:Vay 圆心:B(x2,y2) 半径:R X轴速度:Vbx Y轴速度:Vby } 碰撞的条件是: 1.两个小球的圆心距离不大于两小球半径之和(r+R),即: { (x2 - x1)^2 + (y2 - y1)^2 <= (r + R)^2 } 2.小球碰撞后,两小球的数度交换,即: { tempVax = Vax tempVay = Vay Vax = Vbx Vay = Vby Vbx = tempVax Vby = tempVay 或: Vax = Vax + Vbx Vbx = Vax - Vbx Vax = Vax - Vbx Vay = Vay + Vby Vby = Vay - Vby Vay = Vay - Vby } 游戏规则: 五小球在画布中移动,他们之间会产生碰撞,当然小球和上下左右都会产生碰撞 碰撞后,小球会改变方向返回 而最下面的游标则用于调节小球的移动速度,游标的范围是[-100, 100] 缺陷或BUG: 1.在修改游标数据从而改变小球移动速度的时候,小球移动的距离得不到及时的更新 导致小球可能会逃离画布 2.小球在运动的过程中,有时候也有可能逃离画布 总结: 完成这个游戏,花了一个星期的下班时间。在这个过程中不仅回去学习了高中的数学知识, 物理知识,很多东西都忘得差不多了,不过很快又学返回来了。 游戏其实很多就是数学问题。 游戏中还存在缺陷或BUG,希望志同道合者可以共同完善。 ''' __author__ = {'author' : 'Hongten', 'Email' : 'hongtenzone@', 'Blog' : '', 'Created' : '2013-09-28', 'Version' : '1.0'} class Pong(Frame): def createWidgets(self): ## 画布 self.draw = Canvas(self, width="5i", height="5i", bg='white') ## 游标(控制小球移动速度,范围:[-100, 100]) self.speed = Scale(self, orient=HORIZONTAL, label="ball speed", from_=-100, to=100) self.speed.pack(side=BOTTOM, fill=X) #小球碰撞墙壁的范围 self.scaling_right = 4.8 self.scaling_left = 0.2 #小球直径 self.ball_d = 0.4 #游标度数 self.scale_value = self.speed.get() #放缩率 self.scaling = 100.0 #存放小球数组 self.balls = [] #存放小球x坐标数组 self.ball_x = [] #存放小球y坐标数组 sel

您可能关注的文档

文档评论(0)

visa158 + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档