日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Python 实例 - Day2 - Aircraft Fight 飞机大战 (进行中ing)

發布時間:2023/12/4 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python 实例 - Day2 - Aircraft Fight 飞机大战 (进行中ing) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先感謝@1_bit 大佬的教程, 源代碼請移步下面鏈接. 本文是自己為了理解代碼所做的注釋.
https://blog.csdn.net/A757291228/article/details/116305295

功能: 可以用子彈消滅敵機, 無法碰撞敵機銷毀.
還有代碼沒有讀懂, 注釋持續添加中.

# 2021.5.8
# refer to https://blog.csdn.net/A757291228/article/details/116305295import pygame
# reset the path for your own file path!!!
bg = pygame.image.load(r'C:\aircraft_fight\img\bg.png')  
hero = pygame.image.load(r'C:\aircraft_fight\img\hero1.png')
enemy = pygame.image.load(r'C:\aircraft_fight\img\enemy1.png')
enemy_boom = pygame.image.load(r'C:\aircraft_fight\img\enemy1_down1.png')
bullet = pygame.image.load(r'C:\aircraft_fight\img\bullet1.png')pygame.init()   # initialize all modules of pygame
screen = pygame.display.set_mode((600, 800))   # set the size of game window
pygame.display.set_caption("This is a aircraft fight game!") # set the title of the game windowheroX = 250  # the origination of hero on X axis
heroY = 680  # the origination of hero on Y axis
stepX = 0    # the extent of movement on X axis
stepY = 0    # the extent of movement on Y axisenemy_speed = 2
enemy_objs = []
enemy_objs1 = []
enemy_objs2 = []
enemy_objs3 = []
bullets_pos =[]
bullet_speed =[]def keydown_event(event, stepX, stepY, hero_pos):  # the movement of keyboard controlbullet_pos = []if event.key == pygame.K_RIGHT:stepX =5elif event.key == pygame.K_LEFT:stepX =-5elif event.key == pygame.K_UP:stepY =-5elif event.key == pygame.K_DOWN:stepY =5elif event.key == pygame.K_SPACE:bullet_pos=[hero_pos[0],hero_pos[1]+10]return stepX, stepY, bullet_posdef enemy_show(enemy_objs,startY =-40):if len(enemy_objs) < 5:while len(enemy_objs) < 5:enemy_X = random.randint(0,500)enemy_pos = [enemy_X, startY]screen.blit(enemy,enemy_pos)enemy_objs.append(enemy_pos)else:i = 0for pos in enemy_objs:screen.blit(enemy, pos)enemy_objs[i] = [pos[0],pos[1]+enemy_speed]i = i +1return enemy_objsdef screen_border(x,y):if x<0:x = 0elif x > 500:x = 500if y<0:y = 0elif y>700:y = 700return x, ydef distance(bx,by,ex,ey):a=bx-exb=by-eyreturn math.sqrt(a*a+b*b)while True:bullet_pos_ = []heroX = heroX + stepXheroY = heroY + stepYheroX, heroY = screen_border(heroX, heroY)#blit function: draw one image onto anotherscreen.blit(bg,(0, 0))  #draw the background image onto screen windowscreen.blit(hero, (heroX,heroY))  #draw the aircraft image onto screen windowenemy_objs = enemy_show(enemy_objs)print(bullets_pos)i = 0for v in bullets_pos:bullets_pos[i] =[v[0], v[1]-10]screen.blit(bullet, (bullets_pos[i][0]+45, bullets_pos[i][1]))distance_b = [bullets_pos[i][0]+45, bullets_pos[i][1]]ei = 0for ep in enemy_objs:if distance(distance_b[0], distance_b[1],ep[0],ep[1])<60:print('\n\n\n\n\n\n\n\n\n\n\n boom')screen.blit(enemy_boom, (ep[0], ep[1]))enemy_objs[ei] = [random.randint(0,500),-50]ei = ei + 1i = i + 1for event in pygame.event.get():if event.type == pygame.QUIT:exit()if event.type == pygame.KEYDOWN:stepX, stepY, bullet_pos_= keydown_event(event, stepX, stepY, [heroX, heroY])if len(bullet_pos_)>0:bullets_pos.append(bullet_pos_)pygame.display.update()  #need update to refresh game window

總結

以上是生活随笔為你收集整理的Python 实例 - Day2 - Aircraft Fight 飞机大战 (进行中ing)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。