資源簡介
最近又學了一下python,聽說pygame挺好玩的,研究了好久, 弄了個貪吃蛇出來,在一位網(wǎng)友的基礎上加了不少東西,加減速,暫停,排名,障礙物弄了一半。希望沒女朋友的大家喜歡~~~

代碼片段和文件信息
##?導入相關(guān)模塊
import?random
import?pygame
import?sys
from?pygame.locals?import?*
windows_width?=?800
windows_height?=?600??#?游戲窗口的大小
cell_size?=?20??#?貪吃蛇身體方塊大小注意身體大小必須能被窗口長寬整除
‘‘‘?#初始化區(qū)
由于我們的貪吃蛇是有大小尺寸的?因此地圖的實際尺寸是相對于貪吃蛇的大小尺寸而言的
‘‘‘
map_width?=?int(windows_width?/?cell_size)
map_height?=?int(windows_height?/?cell_size)
#?顏色定義
white?=?(255?255?255)
black?=?(0?0?0)
gray?=?(230?230?230)
dark_gray?=?(40?40?40)
DARKGreen?=?(0?155?0)
Green?=?(0?255?0)
Red?=?(255?0?0)
blue?=?(0?0?255)
dark_blue?=?(0?0?139)
FOOD_color?=?[(10?(255?100?100))?(20?(100?255?100))?(30?(100?100?255))]??#?食物顏色
BG_COLOR?=?black??#?游戲背景顏色
#?定義方向
UP?=?1
DOWN?=?2
LEFT?=?3
RIGHT?=?4
HEAD?=?0??#?貪吃蛇頭部下標
score_add?=?[]
def?running_game(screen?snake_speed_clocknum):
change_speed?=?0??#?定義改變速度
start_speed?=?2??#?貪吃蛇的原始速度+2
startx?=?random.randint(20?map_width?-?20)??#?開始位置
starty?=?random.randint(10?map_height?-?10)
snake_coords?=?[{‘x‘:?startx?‘y‘:?starty}??#?初始貪吃蛇
{‘x‘:?startx?-?1?‘y‘:?starty}
{‘x‘:?startx?-?2?‘y‘:?starty}]
direction?=?RIGHT??#?開始時向右移動
food?=?get_random_location()??#?實物隨機位置
while?True:
for?event?in?pygame.event.get():
if?event.type?==?QUIT:
terminate()
elif?event.type?==?KEYDOWN:??#?and?判斷是否輸入了反方向
if?(event.key?==?K_LEFT?or?event.key?==?K_a)?and?direction?!=?RIGHT:
direction?=?LEFT
elif?(event.key?==?K_RIGHT?or?event.key?==?K_d)?and?direction?!=?LEFT:
direction?=?RIGHT
elif?(event.key?==?K_UP?or?event.key?==?K_w)?and?direction?!=?DOWN:
direction?=?UP
elif?(event.key?==?K_DOWN?or?event.key?==?K_s)?and?direction?!=?UP:
direction?=?DOWN
elif?event.key?==?K_SPACE:
pause(screen)
elif?event.key?==?K_ESCAPE:
terminate()
elif?event.key?==?K_1:??#?按“1”加速一局加速不超過10
if?change_speed?10:
change_speed?+=?1
elif?event.key?==?K_2:??#?按“2”減速,減速次數(shù)不能超過加速5次
if?change_speed?>?-5?and?len(snake_coords)?>?8:
change_speed?-=?1
move_snake(direction?snake_coords)??#?移動蛇
ret?=?snake_is_alive(snake_coords)
if?not?ret:
break??#?蛇跪了.?游戲結(jié)束
snake_is_eat_food(snake_coords?food)??#?判斷蛇是否吃到食物
screen.fill(BG_COLOR)
draw_grid(screen)
draw_snake(screen?snake_coords)
draw_food(screen?food)
draw_score(screen?len(snake_coords)?-?3)
pygame.display.update()
#?控制速度
if?len(snake_coords)?40:
snake_speed?=?change_speed?+?len(snake_coords)?//?2?+?start_speed
draw_speed(screen?change_speed?+?len(snake_coords)?//?2?+?start_speed)
pygame.display.update()
else:
snake_speed?=?10??#?長度到達40時,若一直按減速,則看到速度最小為10
draw_speed(screen?10)
pygame.display.update()
snake_speed_clock.tick(snake_speed)
keep_rangking(len(snake_coords)-4?num)
show_gameover_info(screenlen(snake_coords)-4num)
#?將食物畫出來
def?draw_food(screen?food):
x?=?food[‘x‘]?*?cell_size
y?=?food[‘y‘]?*?cell_size
appleRect?=?pygame.Rect(x?y?cell_size?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-12-12?10:12??snake\
?????文件????????1195??2018-12-11?20:08??snake\h.jpg
?????文件???????19347??2018-12-11?19:56??snake\l.png
?????文件?????4381372??2017-12-19?16:41??snake\myfont.ttf
?????文件??????192520??2018-12-10?17:10??snake\over.png
?????文件???????87281??2018-12-11?20:25??snake\rangking.jpg
?????文件???????10121??2018-12-12?10:12??snake\snake.py
?????文件???????67359??2018-12-10?19:16??snake\start.png
?????文件????????1237??2018-12-11?20:13??snake\timg.jpg
評論
共有 條評論