python画地球代码_python的pygame模拟太阳-地球-月亮-金星等动态示意图代码分析

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

80015e15-1f3e-46b0-a037-9c9ad9a68077

2.今天来模拟太阳系的运动的行星,用python3和pygame来制作。

3.第1步:

#---第1步---导出模块---

import pygame

import sys

import math

from pygame.locals import *

4.第2步:

#---第2步---游戏初始化---

pygame.init()

5.第3步:

#---第3步---定义颜色---

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

YELLOW = (255, 255, 0)

6.第4步:

#---第4步---定义窗口大小、标题名称、字体设置、创建时钟---

size = width, height = 2200, 1400

screen = pygame.display.set_mode(size)

pygame.display.set_caption("太阳-地球-月亮-金星等示意图")

#字体的初定义,注意英文就这样

myfont=pygame.font.Font(None,60)

#如果是中文,字体hwfs=华文仿宋字体,放在根目录下

#myfont=pygame.font.Font('hwfs.ttf',60)

#创建时钟对象 (可以控制游戏循环频率)---必须要---

clock = pygame.time.Clock()

=以上4步基本格式固定=

7.第5步:这里有列表定义,多个列表的定义和一行多次赋值,都是python的特点。

#---第5步---初始化相关定义---具体到各个游戏的定义---

#定义三个空列表

'''

pos_v=[]

pos_e = []

pos_mm = []

'''

#与上面的作用相同

pos_v=pos_e=pos_mm=[]

#金星、地球和月球等其他行星的公转过的角度

roll_v = roll_e = roll_m = 0

roll_3=roll_4=roll_5=roll_6=roll_7=roll_8=0

#太阳的位置---相对固定---中心

#知识点:size是一行赋值法,相当于size=(width, height )的元组

#size[0]=width,size[1]=height

position = size[0]//2, size[1]//2

8.第6步:

#---第6步---游戏循环---

while True:

#---6-1---首先---

#---pygame的游戏循环必不可少的---个人建议和喜欢---

for event in pygame.event.get():

if event.type == QUIT:

sys.exit()

#背景颜色为黑色

screen.fill(BLACK)

#屏幕上显示文字设置

textImage=myfont.render("Sun=yellow,Earth=blue,Moon=green,Venas=red",True,GREEN)

#在屏幕坐标为100和100的位置显示

screen.blit(textImage,(100,100))

#---6-2---画太阳sun的大小、位置、颜色设置,60的大小较合适---

pygame.draw.circle(screen, YELLOW, position, 60, 0)

#---6-3---地球=the Earth---

roll_e += 0.01# 假设地球每帧公转0.01pi

pos_e_x = int(size[0]//2 + size[1]//6*math.sin(roll_e))

pos_e_y = int(size[1]//2 + size[1]//6*math.cos(roll_e))

pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)

#---地球的轨迹线---可要可不要---

pos_e.append((pos_e_x, pos_e_y))

if len(pos_e) > 255:

pos_e.pop(0)

for i in range(len(pos_e)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN, pos_e[i], 1, 0)

#---6-4---月球=the Moon---

roll_m += 0.1# 假设月球每帧公转0.1pi

pos_m_x = int(pos_e_x + size[1]//20*math.sin(roll_m))

pos_m_y = int(pos_e_y + size[1]//20*math.cos(roll_m))

pygame.draw.circle(screen, GREEN, (pos_m_x, pos_m_y), 5, 0)

#---月球的轨迹线---可要可不要---

pos_mm.append((pos_m_x, pos_m_y))

if len(pos_mm) > 255:

pos_mm.pop(0)

for i in range(len(pos_mm)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, GREEN ,pos_mm[i], 1, 0)

#---6-5---金星=the Venas---

roll_v += 0.015# 假设金星每帧公转0.015pi

pos_v_x = int(size[0]//2 + size[1]//3*math.sin(roll_v))

pos_v_y = int(size[1]//2 + size[1]//3*math.cos(roll_v))

pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)

#---金星的轨迹线---可要可不要---

pos_v.append((pos_v_x, pos_v_y))

if len(pos_v) > 255:

pos_v.pop(0)

for i in range(len(pos_v)):

#轨迹线为绿色=green=0,255,0

pygame.draw.circle(screen, (0,255,0), pos_v[i], 1, 0)

#---6-6---其他几个行星---缺点不是椭圆形轨道---

# 3

roll_3 += 0.03# 假设金星每帧公转0.03pi

pos_3_x = int(size[0]//2 + size[1]//3.5*math.sin(roll_3))

pos_3_y = int(size[1]//2 + size[1]//3.5*math.cos(roll_3))

pygame.draw.circle(screen, WHITE,(pos_3_x, pos_3_y), 20, 0)

# 4

roll_4 += 0.04# 假设金星每帧公转0.04pi

pos_4_x = int(size[0]//2 + size[1]//4*math.sin(roll_4))

pos_4_y = int(size[1]//2 + size[1]//4*math.cos(roll_4))

pygame.draw.circle(screen, WHITE,(pos_4_x, pos_4_y), 20, 0)

# 5

roll_5 += 0.05# 假设金星每帧公转0.05pi

pos_5_x = int(size[0]//2 + size[1]//5*math.sin(roll_5))

pos_5_y = int(size[1]//2 + size[1]//5*math.cos(roll_5))

pygame.draw.circle(screen, WHITE, (pos_5_x, pos_5_y), 20, 0)

# 6

roll_6 += 0.06# 假设金星每帧公转0.06pi

pos_6_x = int(size[0]//2 + size[1]//2.5*math.sin(roll_6))

pos_6_y = int(size[1]//2 + size[1]//2.5*math.cos(roll_6))

pygame.draw.circle(screen, WHITE,(pos_6_x, pos_6_y), 20, 0)

# 7

roll_7 += 0.07# 假设金星每帧公转0.07pi

pos_7_x = int(size[0]//2 + size[1]//4.5*math.sin(roll_7))

pos_7_y = int(size[1]//2 + size[1]//4.5*math.cos(roll_7))

pygame.draw.circle(screen, WHITE, (pos_7_x, pos_7_y), 20, 0)

# 8

roll_8 += 0.08# 假设金星每帧公转0.08pi

pos_8_x = int(size[0]//2 + size[1]//5.5*math.sin(roll_8))

pos_8_y = int(size[1]//2 + size[1]//5.5*math.cos(roll_8))

pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)

#刷新

pygame.display.flip()

#数值越大刷新越快,小球运动越快

clock.tick(40)

9.效果图:

0241321633824baf86eec99d9cb634ad

10,适合收藏,慢慢逐行研究pygame的代码。

好的,我知道您的问题是关于Python3和pygame开发的音乐播放器。这是一个简单的音乐播放器,使用Python3和pygame库开发。它可以播放MP3格式的音乐文件,具有基本的播放、暂停、停止、下一曲和上一曲等功能。 以下是代码示例: ```python import pygame import os import time class musicplayer: def __init__(self): pygame.init() pygame.mixer.init() self.clock = pygame.time.Clock() self.screen = pygame.display.set_mode((320, 240)) def play(self, music): pygame.mixer.music.load(music) pygame.mixer.music.play() def pause(self): pygame.mixer.music.pause() def unpause(self): pygame.mixer.music.unpause() def stop(self): pygame.mixer.music.stop() def next(self, musiclist, index): index += 1 if index >= len(musiclist): index = 0 self.play(musiclist[index]) return index def prev(self, musiclist, index): index -= 1 if index < 0: index = len(musiclist) - 1 self.play(musiclist[index]) return index def main(): musiclist = ["music1.mp3", "music2.mp3", "music3.mp3"] index = 0 mp = musicplayer() mp.play(musiclist[index]) while True: mp.clock.tick(60) for event in pygame.event.get(): if event.type == pygame.QUIT: mp.stop() pygame.quit() return if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: if pygame.mixer.music.get_busy(): mp.pause() else: mp.unpause() elif event.key == pygame.K_ESCAPE: mp.stop() pygame.quit() return elif event.key == pygame.K_RIGHT: index = mp.next(musiclist, index) elif event.key == pygame.K_LEFT: index = mp.prev(musiclist, index) if __name__ == "__main__": main() ``` 这个音乐播放器使用了pygame库来实现音乐播放和界面显示。它定义了一个`musicplayer`类来管理音乐播放器的各项功能,包括播放、暂停、停止、下一曲和上一曲等。在主程序中,我们可以设置要播放的音乐列表,然后通过按键来控制音乐播放器的各项功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值