加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python开发_tkinter_小球完全弹性碰撞游戏_源码下载

发布时间:2020-12-17 00:20:52 所属栏目:Python 来源:网络整理
导读:完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: tkinter * = { : : : : : self.draw = Canvas(self,width= ,height= ,bg= self.speed = Scale(self,orient=HORIZONTAL,label= from_=-100,to=100 s

完成这个小球的完全弹性碰撞游戏灵感来自于:

下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏:

tkinter * = { : : : : : self.draw = Canvas(self,width=,height=,bg= self.speed = Scale(self,orient=HORIZONTAL,label= from_=-100,to=100 self.speed.pack(side=BOTTOM,fill= self.scaling_right = 4.8 self.scaling_left = 0.2 self.ball_d = 0.4 self.scale_value = self.scaling = 100.0 self.balls = self.ball_x = self.ball_y = self.ball_v_x = self.ball_v_y = self.ball = self.draw.create_oval(,,, fill= self.second_ball = self.draw.create_oval(,,, fill= self.three_ball = self.draw.create_oval(,,, fill= self.four_ball = self.draw.create_oval(,,, fill= self.five_ball = self.draw.create_oval(,,, fill= self.x = 0.3 self.y = 0.3 self.velocity_x = -0.2 self.velocity_y = 0.5 self.second_ball_x = 0.9 self.second_ball_y = 0.9 self.second_ball_v_x = 0.4 self.second_ball_v_y = -0.5 self.three_ball_x = 1.5 self.three_ball_y = 1.5 self.three_ball_v_x = -0.3 self.three_ball_v_y = -0.5 self.four_ball_x = 2.2 self.four_ball_y = 2.2 self.four_ball_v_x = 0.1 self.four_ball_v_y = -0.5 self.five_ball_x = 3.2 self.five_ball_y = 3.2 self.five_ball_v_x = 0.3 self.five_ball_v_y = 0.5 self.draw.pack(side= update_ball_x_y(self,* update_ball_velocity(self,index,* self.scale_value = (self.ball_x[index] > self.scaling_right) (self.ball_x[index] < self.ball_v_x[index] = -1.0 * (self.ball_y[index] > self.scaling_right) (self.ball_y[index] < self.ball_v_y[index] = -1.0 * n (round((self.ball_x[index] - self.ball_x[n])**2 + (self.ball_y[index] - self.ball_y[n])**2,2 temp_vx = temp_vy = self.ball_v_x[index] = self.ball_v_y[index] = self.ball_v_x[n] = self.ball_v_y[n] = get_ball_deltax(self,* deltax = (self.ball_v_x[index] * self.scale_value / self.ball_x[index] = self.ball_x[index] + get_ball_deltay(self,* deltay = (self.ball_v_y[index] * self.scale_value / self.ball_y[index] = self.ball_y[index] + moveBall(self,* deltax = deltay = self.draw.move(self.ball, % deltax, % self.after(10 move_second_ball(self,* self.update_ball_velocity(1 deltax = self.get_ball_deltax(1 deltay = self.get_ball_deltay(1 self.draw.move(self.second_ball, % self.after(10 move_three_ball(self,* self.update_ball_velocity(2 deltax = self.get_ball_deltax(2 deltay = self.get_ball_deltay(2 self.draw.move(self.three_ball, % self.after(10 move_four_ball(self,* self.update_ball_velocity(3 deltax = self.get_ball_deltax(3 deltay = self.get_ball_deltay(3 self.draw.move(self.four_ball, % self.after(10 move_five_ball(self,* self.update_ball_velocity(4 deltax = self.get_ball_deltax(4 deltay = self.get_ball_deltay(4 self.draw.move(self.five_ball, % self.after(10 (self,master= Frame. self.after(10 self.after(10 self.after(10 self.after(10 self.after(10 game = game.mainloop()

修改记录: 1.调整画布大小 2.调整了小球的半径,以及小球的速度初始值,小球初始圆心坐标 3.游标的范围修改为:[-200,200] 这些修改主要是针对上面的缺陷而进行的。

优点: 1.小球移动的过程更直观 2.小球的移动速度变小,但是可以根据游标来修改小球移动速度 3.界面比之前更加友好

运行效果:

===================================================

tkinter * = { : : : : : self.scaling = 100.0 self.canvas_width = 10 self.canvas_height = 5.6 self.draw = Canvas(self,width=(self.canvas_width * height=(self.canvas_height * bg= self.speed = Scale(self, from_=-200,to=200 self.speed.pack(side=BOTTOM,fill= self.ball_d = 1.0 self.scaling_left = round(self.ball_d / 2,1 self.scaling_right = self.canvas_width - self.scaling_bottom = self.canvas_height - self.scaling_top = self.scale_value = self.speed.get() * 0.1 self.balls = self.ball_x = self.ball_y = self.ball_v_x = self.ball_v_y = self.ball = self.draw.create_oval(,,, fill= self.second_ball = self.draw.create_oval(, fill= self.three_ball = self.draw.create_oval(,,, fill= self.four_ball = self.draw.create_oval(,, fill= self.five_ball = self.draw.create_oval(,, fill= self.x = 1.1 self.y = 1.1 self.velocity_x = -0.2 self.velocity_y = 0.1 self.second_ball_x = 2.5 self.second_ball_y = 2.5 self.second_ball_v_x = 0.1 self.second_ball_v_y = -0.2 self.three_ball_x = 4.5 self.three_ball_y = 4.5 self.three_ball_v_x = -0.1 self.three_ball_v_y = -0.2 self.four_ball_x = 6.5 self.four_ball_y = 2.5 self.four_ball_v_x = 0.1 self.four_ball_v_y = -0.2 self.five_ball_x = 8.5 self.five_ball_y = 3.5 self.five_ball_v_x = 0.1 self.five_ball_v_y = 0.2 self.draw.pack(side= update_ball_x_y(self,* update_ball_velocity(self,* self.scale_value = self.speed.get() * 0.1 (self.ball_x[index] > self.scaling_right) (self.ball_x[index] < self.ball_v_x[index] = -1.0 * (self.ball_y[index] > self.scaling_bottom) (self.ball_y[index] < self.ball_v_y[index] = -1.0 * n (round((self.ball_x[index] - self.ball_x[n])**2 + (self.ball_y[index] - self.ball_y[n])**2,2 temp_vx = temp_vy = self.ball_v_x[index] = self.ball_v_y[index] = self.ball_v_x[n] = self.ball_v_y[n] = get_ball_deltax(self,* deltax = (self.ball_v_x[index] * self.scale_value / self.ball_x[index] = self.ball_x[index] + get_ball_deltay(self,* deltay = (self.ball_v_y[index] * self.scale_value / self.ball_y[index] = self.ball_y[index] + moveBall(self,* deltax = deltay = self.draw.move(self.ball, % self.after(10 move_second_ball(self,* self.update_ball_velocity(1 deltax = self.get_ball_deltax(1 deltay = self.get_ball_deltay(1 self.draw.move(self.second_ball, % self.after(10 move_three_ball(self,* self.update_ball_velocity(2 deltax = self.get_ball_deltax(2 deltay = self.get_ball_deltay(2 self.draw.move(self.three_ball, % self.after(10 move_four_ball(self,* self.update_ball_velocity(3 deltax = self.get_ball_deltax(3 deltay = self.get_ball_deltay(3 self.draw.move(self.four_ball, % self.after(10 move_five_ball(self,* self.update_ball_velocity(4 deltax = self.get_ball_deltax(4 deltay = self.get_ball_deltay(4 self.draw.move(self.five_ball, % self.after(10 (self,master= Frame. self.after(10 self.after(10 self.after(10 self.after(10 self.after(10 game = game.mainloop()

源码下载:

========================================================

More reading,and english is important.

I'm Hongten

<pre class="code"><span style="font-size: 16px; color: #ff0000;">大哥哥大姐姐,觉得有用打赏点哦!多多少少没关系,一分也是对我的支持和鼓励。谢谢。Hongten博客排名在100名以内。粉丝过千。Hongten出品,必是精品。

E | hongtenzone@foxmail.com ?B |?

========================================================

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读