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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python外星人入侵游戏代码_Python游戏:外星人入侵游戏编程完整版!内附代码

發布時間:2025/3/19 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python外星人入侵游戏代码_Python游戏:外星人入侵游戏编程完整版!内附代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

importsysimportpygamefrom bullet importBulletfrom alien importAlienfrom time importsleepdefcheck_events(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets):#監視鍵盤和鼠標事件

for event inpygame.event.get():if event.type == pygame.QUIT: #關閉窗口退出

sys.exit()elif event.type ==pygame.KEYDOWN:

check_keydown_events(event,ai_settings,screen,ship,bullets)elif event.type ==pygame.KEYUP:

check_keyup_events(event,ship)elif event.type ==pygame.MOUSEBUTTONDOWN:

mouse_x, mouse_y=pygame.mouse.get_pos()

check_play_button(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets,mouse_x, mouse_y)defcheck_play_button(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets,mouse_x, mouse_y):"""在玩家單擊Play按鈕時開始游戲"""button_clicked=play_button.rect.collidepoint(mouse_x,mouse_y)if button_clicked and notstats.game_active:#重置游戲設置

ai_settings.initialize_dynamic_settings()#隱藏光標

pygame.mouse.set_visible(False)#重置游戲統計信息

stats.reset_stats()

stats.game_active=True#重置計分牌圖像

sb.prep_score()

sb.prep_high_score()

sb.prep_level()

sb.prep_ships()#清空外星人列表和子彈列表

aliens.empty()

bullets.empty()#創建一群新的外星人,并讓飛船居中

create_fleet(ai_settings,screen,ship,aliens)

ship.center_ship()defupdate_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button):'''更新屏幕上的圖片,并切換到新屏幕'''screen.fill(ai_settings.bg_color)#設置背景顏色

ship.blitme() #繪制飛船

aliens.draw(screen)#循環子彈組里面的元素,進行繪制 為空時不執行

for bullet inbullets.sprites():

bullet.draw_bullet()#繪制子彈

#顯示得分

sb.show_score()#如果游戲處于非活躍狀態,就顯示Play按鈕

if notstats.game_active:

play_button.draw_button()#顯示最新屏幕,擦拭舊屏幕

pygame.display.flip()#print('1')

defcheck_keydown_events(event,ai_settings,screen,ship,bullets):if event.key ==pygame.K_RIGHT:

ship.moving_right=Trueelif event.key ==pygame.K_LEFT:

ship.moving_left=Trueelif event.key ==pygame.K_SPACE:

fire_bullet(ai_settings,screen,ship,bullets)elif event.key ==pygame.K_q:

sys.exit()defcheck_keyup_events(event,ship):if event.key ==pygame.K_RIGHT:

ship.moving_right=Falseelif event.key ==pygame.K_LEFT:

ship.moving_left=Falsedefupdate_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets):'''更新子彈位置,刪除子彈'''bullets.update()#子彈組每個成員執行self.update()操作

for bullet inbullets.sprites():if bullet.rect.bottom <= 0: #子彈出界 刪除

bullets.remove(bullet)

check_bullet_alien_collisions(ai_settings,screen,stats,sb,ship,aliens,bullets)defcheck_bullet_alien_collisions(ai_settings,screen,stats,sb,ship,aliens,bullets):"""響應外星人和子彈的碰撞"""

#刪除發生碰撞的子彈和外星人

collisions =pygame.sprite.groupcollide(bullets,aliens,True,True)ifcollisions:for aliens incollisions.values():

stats.score+= ai_settings.alien_points *len(aliens)

sb.prep_score()

check_high_score(stats,sb)if len(aliens)==0:#刪除現有的子彈并新建一群外星人,加快游戲進度節奏

bullets.empty()

ai_settings.increase_speed()#提高等級

stats.level += 1sb.prep_level()

create_fleet(ai_settings,screen,ship,aliens)defupdate_ship(ship):

ship.update()deffire_bullet(ai_settings,screen,ship,bullets):#創建一個子彈對象 加入到子彈組

if len(bullets) < ai_settings.bullets_allowed: #子彈少于允許值時再生成

new_bullet =Bullet(ai_settings, screen, ship)

bullets.add(new_bullet)defget_number_aliens_x(ai_settings,alien_width):"""計算每行可容納多少個外星人"""available_space_x= ai_settings.screen_width - 2 *alien_width

number_aliens_x= int(available_space_x / (2 *alien_width))returnnumber_aliens_xdefget_number_rows(ai_settings,ship_height,alien_height):"""計算屏幕可容納多少行外星人"""available_space_y= (ai_settings.screen_height - (3 * alien_height) -ship_height)

number_rows= int(available_space_y / (2 *alien_height))returnnumber_rowsdefcreate_aliens(ai_settings,screen,aliens,alien_number,row_number):"""創建一個外星人并將其放在當期行"""alien=Alien(ai_settings,screen)

alien_width=alien.rect.width

alien.x= alien_width + 2 * alien_width *alien_number

alien.rect.x=alien.x

alien.rect.y= alien.rect.height + 2 * alien.rect.height *row_number

aliens.add(alien)defcreate_fleet(ai_settings,screen,ship,aliens):"""創建外星人群"""

#創建一個外星人,并計算一行可以容納多少個外星人

#外星人間距為外星人寬度

alien =Alien(ai_settings,screen)

number_aliens_x=get_number_aliens_x(ai_settings,alien.rect.width)

number_rows=get_number_rows(ai_settings,ship.rect.height,alien.rect.height)#創建第一行外星人

for row_number inrange(number_rows):for alien_number inrange(number_aliens_x):#創建一個外星人并將其加入當前行

create_aliens(ai_settings,screen,aliens,alien_number,row_number)defcheck_fleet_edges(ai_settings,aliens):"""有外星人到達邊緣時采取相應措施"""

for alien inaliens.sprites():ifalien.check_edges():

change_fleet_direction(ai_settings,aliens)break

defchange_fleet_direction(ai_settings,aliens):"""將整群外星人下移,并改變他們的運動方向"""

for alien inaliens.sprites():

alien.rect.y+=ai_settings.fleet_drop_speed

ai_settings.fleet_direction*= -1

defship_hit(ai_settings,stats,screen,sb,ship,aliens,bullets):"""響應被外星人撞到的飛船"""

if stats.ships_left >0:#將ship_left減1

stats.ships_left -= 1

#更新記分牌

sb.prep_ships()#清空外星人列表和子彈列表

aliens.empty()

bullets.empty()#創建一群新的外星人,并將飛船放到屏幕低端中央

create_fleet(ai_settings,screen,ship,aliens)

ship.center_ship()#暫停

sleep(0.5)else:

stats.game_active=False

pygame.mouse.set_visible(True)defcheck_aliens_bottom(ai_settings,stats,screen,sb,ship,aliens,bullets):"""檢查是否有外星人到達屏幕低端"""screen_rect=screen.get_rect()for alien inaliens.sprites():if alien.rect.bottom >=screen_rect.bottom:#像飛船被撞到一樣進行處理

ship_hit(ai_settings,stats,screen,sb,ship,aliens,bullets)break

defupdate_aliens(ai_settings,stats,screen,sb,ship,aliens,bullets):"""更新外星人群中所有外星人的位置"""check_fleet_edges(ai_settings,aliens)

aliens.update()#檢測外星人和飛船之間的碰撞

ifpygame.sprite.spritecollideany(ship,aliens):

ship_hit(ai_settings,stats,screen,sb,ship,aliens,bullets)#檢查是否有外星人到達屏幕低端

check_aliens_bottom(ai_settings,stats,screen,sb,ship,aliens,bullets)defcheck_high_score(stats,sb):"""檢查是否誕生了新的最高紀錄"""

if stats.score >stats.high_score:

stats.high_score=stats.score

sb.prep_high_score()

總結

以上是生活随笔為你收集整理的python外星人入侵游戏代码_Python游戏:外星人入侵游戏编程完整版!内附代码的全部內容,希望文章能夠幫你解決所遇到的問題。

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