首頁>技術>

1 效果圖

2 知識點

======

2.1 turtle的動畫設計,透過遊戲設計,增強學習興趣。

2.2 turtle.shape已有圖形呼叫和自定義shape圖形(gif格式)。

2.3 python程式設計設計思維和相關知識複習。

2.4 程式碼講解清楚,小白秒懂,一秒入門,值得收藏。

2.5 python3.8+deepin-linux作業系統。

3 圖片初步處理

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

3.2 截圖成1.png,然後將圖片背景透明化處理

import PIL.Image as Image# 以第一個畫素為準,相同色改為透明def transparent_back(img):    img = img.convert('RGBA')    L, H = img.size    color_0 = img.getpixel((0,0))    for h in range(H):        for l in range(L):            dot = (l,h)            color_1 = img.getpixel(dot)            if color_1 == color_0:                color_1 = color_1[:-1] + (0,)                img.putpixel(dot,color_1)    return imgif __name__ == '__main__':    img=Image.open('/home/xgj/Desktop/guiturace/1.png')    img=transparent_back(img)    img.save('/home/xgj/Desktop/guiturace/11.png')

3.3 然後將圖片11.png大小縮小到48*48

from PIL import Image def Image_PreProcessing():	# 待處理圖片儲存路徑		im = Image.open('/home/xgj/Desktop/guiturace/11.png')	# Resize圖片大小,入口引數為一個tuple,新的圖片大小	imBackground = im.resize((48,48))	#處理後的圖片的儲存路徑,以及儲存格式	imBackground.save('/home/xgj/Desktop/guiturace/111.png','PNG')if __name__ == "__main__":	Image_PreProcessing()

3.4 新建資料夾png,將111.png複製6個,取名為1~6.png,生成/png/rabbit.gif

import imageio,osfrom PIL import ImageGIF=[]filepath="/home/xgj/Desktop/guiturace/png"#檔案路徑filenames=os.listdir(filepath)for filename in os.listdir(filepath):    GIF.append(imageio.imread(filepath+"/"+filename))#這個duration是播放速度,數值越小,速度越快imageio.mimsave(filepath+"/"+'rabbit.gif',GIF,duration=0.1)

3.5 效果圖

4 turtle版龜兔賽跑的主程式碼

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

4.1 第1步:匯入模組

from turtle import *import turtle as t

4.2 第2步:大視窗設定,自定義圖形先註冊和文字說明

#設定標題t.title("龜兔賽跑turtle版")#設定背景色t.bgcolor("black")#需要在這裡註冊自定義的圖形#僅僅支援gif格式t.register_shape('/home/xgj/Desktop/guiturace/png/rabbit.gif')#書寫文字說明t.goto(-400,400)t.pencolor('white')t.write('說明:\n白色是小白兔\n紅色是小烏龜')t.ht() #隱藏畫筆

4.3 畫終點小紅旗

#小白兔終點的小紅旗t.penup()t.speed(1)t.goto(200,0)t.pendown()t.color("red")t.begin_fill()t.left(90)t.forward(60)t.right(90)t.forward(40)t.right(150)t.forward(50)t.end_fill()t.penup()t.ht()#小烏龜的終點的小紅旗t.penup()t.speed(1)t.goto(200,-100)t.pendown()t.color("red")t.begin_fill()t.right(120)t.forward(60)t.right(90)t.forward(40)t.right(150)t.forward(50)t.end_fill()t.penup()t.ht()

4.4 第4步:定義小白兔

rabbit=Turtle()#定義兔rabbit.hideturtle()#讓兔子隱形#獲取已有圖形#rabbit.shape('arrow')#兔子的形狀#形狀:“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”。#前面需要先註冊自定義圖形,後面才能呼叫自定義圖形rabbit.shape('/home/xgj/Desktop/guiturace/png/rabbit.gif')rabbit.shapesize(3) #兔子的大小rabbit.color("white") #兔子的顏色rabbit.up()#將兔子移動到起點,準備比賽rabbit.back(400)#把兔子往後移400rabbit.showturtle()#讓兔子顯露出來rabbit.down()#兔子移動時劃線def rabbitmove():#定義一個新的函式 兔子移動     if usedtime<50:#如果用時小於50         rabbit.forward(3)#兔子向前奔跑         rabbit.color("white")#兔子的顏色是白色     elif usedtime<415:#如果用時 50<=usedtime<415 兔子就去睡覺,位移不變         rabbit.forward(0)#兔子向前0     else:#否則就追趕          rabbit.forward(6)#兔子向前6     #顏色可變性,對自定義圖形不變色     if usedtime%2==0:         rabbit.color("white")     else:         rabbit.color("blue")

4.5 定義小烏龜

tortoise=Turtle()#引入烏龜圖案tortoise.hideturtle()#讓烏龜隱形tortoise.shape('turtle')#確定烏龜的形狀tortoise.shapesize(3) #烏龜大小tortoise.color("purple")#確定烏龜的顏色tortoise.pensize(3)#確定筆畫的粗細tortoise.up()#將烏龜移動到起點,準備比賽#小烏龜下移tortoise.goto(0,-100)tortoise.back(400)#將烏龜後移400tortoise.showturtle()#把烏龜顯露出來tortoise.down()#烏龜移動時劃線def tortoisemove():#定義一個新的函式 烏龜移動    tortoise.forward(1)#烏龜一直在緩慢的爬行    #顏色可變性    if usedtime%2==0:         tortoise.color("green")    else:         tortoise.color("red")

4.6 第6步:移動設定

usedtime=0#定義用時 賦初值為0def move():#定義函式 移動    global usedtime#全域性形式 移動均參照usedtime    rabbitposition = rabbit.xcor()#兔子的位置是兔子的x座標    tortoiseposition = tortoise.xcor()#烏龜的位置是烏龜的x座標    if max(rabbitposition,tortoiseposition)>200:#如果兔子和烏龜的位置中最大的超過200        writer= Turtle()#writer定義為Turtle        writer.hideturtle()#隱藏烏龜(兔子)        if tortoiseposition >200:#如果烏龜的位置大於200            msg='小烏龜贏了!'        else:            msg ='小白兔贏了!'                writer.color("white")        writer.write(msg, align='center',font=('simfang', 20,'bold'))    else:#否則就移動         rabbitmove()#兔子移動         tortoisemove()#烏龜移動         ontimer(move,100)#定時讓它們有動畫效果         usedtime= usedtime+1#迴圈,用時+1

4.7 第7步:結尾

#第7步:定時器開啟,移動引數ontimer(move,100)#比賽開始,定時#畫面顯示,並等待關閉done()

5 參考這裡的程式碼,對下面的程式碼進行刪減,修改,註釋,增加功能等。感謝。

https://blog.csdn.net/qq_45381011/article/details/95789558?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-6&spm=1001.2101.3001.4242

29
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 課程設計指導——應用AJAX技術提高Web應用的整體響應效能