pygame 會寫字的瓦力walli

2022-02-03 14:57:24 字數 3801 閱讀 7714

題目:用walli在螢幕上寫出指定的文字

思路:利用地圖,指引walli寫出文字。walli要有筆運動的軌跡。

方法:利用mapmake.py完成地圖製作,其中右鍵建立筆運動軌跡,左建為字的筆劃。執行walli.py,點選左鍵後walli會自動寫字。因為walli是按運動軌跡運動,所以在製作地圖時,要注意下筆順序。

具體**:

製作地圖:mapmake.py

#

-*- coding: cp936 -*-

#@小五義

#右鍵畫出綠色的點,表示walli的運動軌跡,左鍵畫出紅色的點,表示字的筆劃。

import

pygame,sys,os

import

time

from pygame.locals import *pygame.init()

screencaption=pygame.display.set_caption('

hello world')

screen=pygame.display.set_mode((800, 600),fullscreen)

screen.fill([255,255,255])

width=10#

記錄每個格的寬度

height=10#

記錄每個格的高度

left=0

top=0

oldx=0

oldy=0

#判斷地**件是否存在

if os.path.isfile('

map.dat'):

os.remove(

'map.dat')

#畫出**

while top<601:

for i in range(800/10):

pygame.draw.rect(screen,[0,0,0],[left+i*10,top,width,height],1)

top+=10pygame.display.flip()

while

true:

for event in

pygame.event.get():

if (event.type==pygame.quit or (event.type==pygame.keydown and event.key==pygame.k_escape)):

sys.exit()

#這裡獲取滑鼠的按鍵情況

pressed_mouse =pygame.mouse.get_pressed()

if pressed_mouse[0]:#

按下左鍵

x, y =pygame.mouse.get_pos()

f=open('

map.dat

','a')

if ((x/10)*10)!=oldx or ((y/10)*10)!=oldy:

f.write(str((x/10)*10)+'

,'+str((y/10)*10)+'

,1\n')

oldx=((x/10)*10)

oldy=((y/10)*10)

f.close()

pygame.draw.rect(screen,[255,0,0],[(x/10)*10,(y/10)*10,width,height],0)

if pressed_mouse[2]:#

按下右鍵

x, y =pygame.mouse.get_pos()

f=open('

map.dat

','a')

if ((x/10)*10)!=oldx or ((y/10)*10)!=oldy:

f.write(str((x/10)*10)+'

,'+str((y/10)*10)+'

,0\n')

oldx=((x/10)*10)

oldy=((y/10)*10)

f.close()

pygame.draw.rect(screen,[0,255,0],[(x/10)*10,(y/10)*10,width,height],0)

pygame.display.update()

walli寫字:walli.py

#

-*- coding: cp936 -*-

#@小五義

#按照地圖畫出軌跡

記錄要畫的點

pygame.display.update()

while

true:

for event in

pygame.event.get():

if (event.type==pygame.quit or (event.type==pygame.keydown and event.key==pygame.k_escape)):

sys.exit()

pressed_mouse =pygame.mouse.get_pressed()

ifpressed_mouse[0]:

f=open('

map.dat

','r')

lines=f.readlines()

for i in

lines:##如果這句改為for i in lines[::-1]:會發現walli在倒著寫字

locationxy=i.split(','

) oldxy=[oldx,oldy]

screen.blit(my_zheban,oldxy)

if'1'

in locationxy[2]:

xy=[int(locationxy[0]),int(locationxy[1])]

time.sleep(0.051)

screen.blit(my_pic,xy)

for j in

goldxy:

screen.blit(my_yan,j)

pygame.display.update()

oldx=int(locationxy[0])

oldy=int(locationxy[1])

f.close()

兩張效果圖:

電腦時代 你會不會寫字

南方 電腦時代 你會不會寫字 電腦時代,很多人習慣用鍵盤碼字,而不是用筆寫字,於是中華民族又到了危險的時刻,有教育家們擔心,我們下一代不會用筆,燦爛書法文化即將斷送在我等手 中,教育部既能傾聽民意,又擁有龐大資源,決定制定漢字書寫標準,像英語考級一樣,再來乙個漢字考級,呵呵,這不是搞笑,這確實是人家...

用電腦這麼久,你還會寫字麼?

阿拉伯數字 1 2 3 4 5 6 7 8 9 10 100 1000 10000 中文 一 二 三 四 五 六 七 八 九 十 百 千 萬 億 中文大寫 壹 貳 叄 肆 伍 陸 柒 捌 玖 拾 佰 仟 萬 億 元 圓 角 分 零 整 不 管是阿拉伯數字 1 2 3 還是所謂漢字小寫數碼 一 二 三...

總要學會寫的

逛了那麼多年csdn,卻沒試著寫什麼文章!今天若有所思,總要學會寫的。以前有計畫,然後按計畫一步一步做,這個習慣還算行吧!但是很容易忘記。是的,總結不夠。總結,自我反省也好,自我鼓勵也罷!總歸是在正視自己,了解很多人,很多事,但是卻不甚了解自己!現在發現其實清楚知道自己才最重要的,有人會說,連自己都...