tkinter物理引擎pymunk粒子效果源代码

tkinter物理引擎粒子效果 python physics particle effect
tkinter物理引擎粒子效果 python physics particle effect

tkinter和pymunk物理引擎结束的一个粒子效果源码程序。本程序还借用了pygame模块的Clock类,用来调整fps。
下面是部分代码预览:

"""
   tkinter物理引擎粒子效果,把半径改大些就是一个个的弹球了。
   每个物体之间会有互碰效果,这是由于采用了pymunk这个物理引擎。
   本程序还借用了Pygame模块提供的Clock类,以便固定FPS。
"""

import pymunk
from tkinter import *
from random import *
from pygame.time import Clock   # 导入Clock类

def rndcolor():
    """产生随机颜色"""
    s = "0123456789ABCDEF"
    s = [choice(s) for _ in range(6)]
    s.insert(0,"#")
    return "".join(s)

class Ball:
    """受重力的物理弹球类"""
    container = []
    def __init__(self,pos,radius,color,canvas,space):
        """
           pos:坐标
           radius:半径
           color:颜色
           canvas:画布
           space:空间
           假设所有的小球物理系数都是一样的。
        """
        self.pos = pos
        self.radius = radius
        self.color = color
        self.canvas = canvas
        self.space = space
        x1,y1 = pos[0] - radius,pos[1] - radius
        x2,y2 = pos[0] + radius,pos[1] + radius
        ..............
window=Tk()
window.resizable(width=False,height=False)  # 设置窗口不能变化大小
window.geometry("480x360+200+200")          # 设置窗口的几何尺寸
window.title('tkinter物理引擎粒子效果 by lixingqiu')    # 设置窗口的标题

canvas=Canvas(window,width=480,height=360,bg="white")   #创建canvas
canvas.pack(expand=True)                    

space = pymunk.Space()                      # 创建物理空间
space.gravity = 0,100                       # 设置重力参数,注意这里改成了正数

rectangle=canvas.create_rectangle(100,300,300,320,fill='magenta',outline='magenta')
a ,b = (100,320),(300,320)
board1 = pymunk.Segment(space.static_body,a,b,20) # 创建静态板子
board1.elasticity = 0.95                    # 弹性系数
board1.friction = 0.9                       # 摩擦系数
space.add(board1)
    
radius = 2
counter = 0
clock = Clock()
................

 

如需要查看所有源代码,请扫码付款:

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。扫码付款后的朋友可以加QQ: 406273900,提供技术支持及发送作品图片与配音素材。亦可直接向微信号scratch8付款购买。
李兴球的博客_Python创意编程技术前沿 » tkinter物理引擎pymunk粒子效果源代码

学本领,探索更大的世界!

李兴球博客 风火轮编程主页