python场景动画_昨夜星辰多媒体情景动画
海王星上全是大海嗎?為什么土星竟然有62個月亮,而地球只有一個月亮?據說喜歡仰望天空的是充滿好奇心的人….
以下是部分代碼預覽:
"""本程序實現星空中閃爍爍的星星,然后有七顆星星會連起來,它們是北斗七星,還有啟明星。"""
from star import *
from time import sleep
"定義全局變量"
stars_amounts = 49
width ,height = 800,600 #屏幕寬高
beidou_cors = [(-276,110),(-125,135),(-38,88),(76,38),(100,-64),(284,-70),(314,52)] #北斗七星坐標表
beidou_names = ["瑤光","開陽","玉衡","天權","天璣","天旋","天樞"] #名稱表
images_small = ["star1.gif","star2.gif"] #星星的小造型images_small列表
images_big = ["big_star1.gif","big_star2.gif"] #星星的大造型images_big列表
s1 = "北斗七星,是由天樞、天璇、天璣、天權、玉衡、開陽、瑤光七星組成的。"
s2 = "古代中國人民把這七星聯系起來想象成為古代舀酒的斗形。"
s3 = "天樞、天璇、天璣、天權組成為斗身,古曰魁;玉衡、開陽、搖光組成為斗柄,古曰杓。"
s4 = "道教稱北斗七星為七元解厄星君,居北斗七宮。以下是它們的名稱:"
s5 = "天樞宮貪狼星君、天璇宮巨門星君、天璣宮祿存星君、天權宮文曲星君、"
s6 = "玉衡宮廉貞星君、開陽宮武曲星君、瑤光宮破軍星君。"
knowledge = [s1,s2,s3,s4,s5,s6] # 放在列表中,方便遍歷
"生成屏幕對象"
screen = Screen()
screen.title("昨夜星辰_作者:李興球")
screen.setup(width,height)
screen.delay(0) # 繪畫延時為0
screen.bgpic("北斗定位坐標用.png")
screen.addshape("star1.gif") # 注冊形狀
screen.addshape("star2.gif")
screen.addshape("big_star1.gif") # 注冊形狀
screen.addshape("big_star2.gif")
screen.update()
sleep(1)
"生成星星49顆"
stars = [] # 創建stars列表
for i in range(stars_amounts): # 重復stars_amounts次
"Star參數為:圖形列表,x坐標,y坐標"
stars.append(Star(images_small,randint(-width/2,width/2),randint(0,height/2))) #新建Star,并添加到stars列表
#sleep(randint(1,2)/4)
screen.delay(6) # 繪畫延時為6
"以下等待幾秒鐘,不直接用sleep(5)是防止窗口無響應"
for i in range(5):
sleep(1)
screen.update()
"定位前7顆星星到北斗七星的坐標位置"
for i in range(7):
star = stars.pop() # 彈出一顆星星
x,y = beidou_cors[i] # 取出x,y坐標
star.goto(x,y) # 定位到此坐標
star.images = images_big
"準備連線"
t.pencolor("gray") # 畫筆顏色為灰
t.pensize(2) # 畫筆跡寬為2
t.goto(beidou_cors[0]) # 定位到北斗第一顆星的坐標
t.write(beidou_names[0],font=("黑體",14,"normal"))# 寫第一顆星的名字
t.pendown() # 落筆,準備畫連線
for i in range(1,7): # 把其它六顆星連線
t.goto(beidou_cors[i])
t.write(beidou_names[i],font=("黑體",14,"normal"))
t.goto(beidou_cors[3])
screen.title("北 斗 七 星")
"剩下的都隱藏"
for i in range(stars_amounts-7):
star = stars.pop() # 彈出最后的
star.ht() # 隱藏
"以下是寫字,包括標題和北斗七星的小知識。"
t.penup()
t.pencolor("yellow")
t.goto(0,200)
t.write("北 斗 七 星",align='center',font=("黑體",24,"bold"))
t.pencolor("cyan")
t.goto(-340,-160)
for s in knowledge: # 遍歷“知識”列表
t.write(s,font=("宋體",12,"normal"))
t.sety(t.ycor() - 24)
screen.mainloop()
下面是star模塊,star.py源代碼:
from turtle import *
from random import randint
from time import sleep
class Star(Turtle):
def __init__(self,images,x,y):
Turtle.__init__(self,visible=False) # 父類初始化
self.penup() # 抬筆
self.images = images # 圖形列表
self.index = 0 # 索引號
self.goto(x,y) # 定位坐標
self.twinkle() # 調用閃爍方法
self.st() # 顯示
if __name__ == "__main__":
screen = Screen()
screen.setup(800,600)
screen.title("一閃一閃亮晶晶")
screen.delay(0)
screen.bgpic("bg2.png")
screen.addshape("star1.gif")
screen.addshape("star2.gif")
images = ["star1.gif","star2.gif"]
[Star(images,randint(-400,400),randint(0,400)) for i in range(50)]
screen.mainloop()
下載完整源代碼與素材,請掃碼付款。
VIP免費查看
當前隱藏內容需要支付
250元
已有0人支付
立即購買
總結
以上是生活随笔為你收集整理的python场景动画_昨夜星辰多媒体情景动画的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据算法基础笔记
- 下一篇: 从零开始学C++之STL(七):剩下5种