上一篇:pygame教程实例(一)小球弹跳
下一篇:pygame教程实例(三)游戏事件
本教程使用python3
我的另一篇文章pygame春节十二响
阅读本文需要一些简单的物理知识
上一篇我们写了一个小球在重力的作用下反复弹跳,现在我们来实现模拟三体运动。
三体运动是指三个质量相差不大的天体相互作用下的运动。
一、定义一些常量和初始化
from sys import exit
import pygame, math
from pygame.color import *
G = 900 # 重力常量
FPS = 50 # 帧率
exact = 50 # 每帧计算几次,次数越多越精确,它是动态变化的
pygame.init() # 初始化pygame
screen = pygame.display.set_mode((640, 480), pygame.DOUBLEBUF, 32)
pygame.display.set_caption("模拟三体")
clock = pygame.time.Clock()
font = pygame.font.SysFont("Arial", 16)
二、定义星球类
class Star():
x , y = 0, 0 # 坐标
vx, vy = 0, 0 # x,y方向上的速度
ax, ay = 0, 0 # x,y方向上的加速度
m = 0 # 质量
r = 10 # 半径
def __init__(self, x, y, vx, vy, m):
self.x