欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pygame實戰(zhàn)之實現經典外星人游戲

 更新時間:2022年01月19日 08:47:22   作者:嗨!栗子同學  
這篇文章主要介紹了通過Pygame實現經典的外星人游戲的示例代碼,文中的代碼講解詳細,對我們了解Pygame有一定的幫助,感興趣的同學可以試一試

前言

說說外星人那些事兒....

你以為的外星人......他們都是乘坐UFO來地球的,長的嗯哼可能比較有特色。也許長這樣

害!其實可能也或許不長這樣。

圖片的話借鑒的大眾認知的這一款。當然你們還可以自己來!下面我們來做一款簡單的《外星人入侵》小游戲吧!

正文

安裝環(huán)境

下載python3,或如Anaconda3(64 bit),導入pygame游戲包。

主要代碼

1.外星人設置,alien.py,代碼:

import pygame
from pygame.sprite import Sprite
 
class Alien(Sprite):
 """表示單個外星人的類"""
 
 def __init__(self,ai_settings,screen):
  """初始化外星人并設置其他位置"""
  super(Alien,self).__init__()
  self.screen = screen
  self.ai_settings = ai_settings
  
  #加載外星人圖像,并設置其rect屬性
  self.image = pygame.image.load('images/alien.bmp')
  self.rect = self.image.get_rect()
  
  #每個外星人最初都在屏幕左上角附近
  self.rect.x = self.rect.width
  self.rect.y = self.rect.height
  
  #存儲外星人的準確位置
  self.x = float(self.rect.x)
  
  
 def blitme(self):
  """在指定位置繪制外星人"""
  self.screen.blit(self.image,self.rect)
    
 def check_edges(self):
  """如果外星人位于屏幕邊緣,就返回True"""
  screen_rect = self.screen.get_rect()
  if self.rect.right >= screen_rect.right:
   return True
  elif self.rect.left <= 0:
   return True
 
 def update(self):
  """向右移動外星人"""
  self.x += (self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction)
  self.rect.x = self.x

2.游戲主程序,alien_invasion.py,代碼:

import pygame
 
from settings import Settings
from game_stats import GameStats
from button import Button
from ship import Ship
from pygame.sprite import Group
import game_functions as gf
from scoreboard import Scoreboard
 
def run_game():
  pygame.init()    # 初始化背景設置
  ai_settings = Settings()    # 全局設置
 
  screen = pygame.display.set_mode(      # 創(chuàng)建screen顯示窗口
    (ai_settings.screen_width,ai_settings.screen_height)
  )
  pygame.display.set_caption('Alien Invasion')  # 標題
  #新建Play按鈕
  play_button = Button(ai_settings,screen,"Play")
  #創(chuàng)建一個用于存儲游戲統(tǒng)計信息的實例,并創(chuàng)建記分牌
  stats = GameStats(ai_settings)
  sb = Scoreboard(ai_settings, screen, stats)
  # 創(chuàng)建飛船
  ship = Ship(ai_settings,screen)
  # 創(chuàng)建子彈編組
  bullets = Group()
  
  #創(chuàng)建一個外星人
  aliens = Group()
  #創(chuàng)建外星人群
  gf.create_fleet(ai_settings,screen,ship,aliens)
  
  # 開始游戲主循環(huán)
  while True:
    # 監(jiān)視鍵盤和鼠標事件
    gf.check_events(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets)
    
    if stats.game_active:
      # 移動飛船
      gf.update_ship(ship)
      # 更新子彈位置
      gf.update_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets)
      #更新外星人
      gf.update_aliens(ai_settings,stats,screen,sb,ship,aliens,bullets)
    # 更新屏幕
    gf.update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button)
 
run_game()

3.設置子彈,bullet.py,代碼:

import pygame
from pygame.sprite import Sprite
import time
 
class Bullet(Sprite):
  '''飛船子彈進行管理'''
 
  def __init__(self,ai_settings,screen,ship):
    super(Bullet,self).__init__()
    self.screen = screen
 
    # 創(chuàng)建子彈矩形初始位置(0,0,3,15)分別對應lef,top,寬,高
    self.rect = pygame.Rect(0,0,
    ai_settings.bullet_width, ai_settings.bullet_height)
 
    self.rect.centerx = ship.rect.centerx # 設置中心點x軸坐標跟飛船一致
    self.rect.top = ship.rect.top     # 設置y軸坐標頂部跟飛船一致
 
    # 設置成小數進行計算
    self.top = float(self.rect.top)
 
    self.color = ai_settings.bullet_color
    self.speed_factor = ai_settings.bullet_speed_factor
 
  def update(self):
    self.top -=self.speed_factor
    self.rect.top = self.top
    print(self.rect.top)
 
  def draw_bullet(self):
    pygame.draw.rect(self.screen,self.color,self.rect)
#略.....................................

其實還有幾頁的源碼量,代碼很多,需要的話直接找我會比較好~

效果展示:

到此這篇關于Pygame實戰(zhàn)之實現經典外星人游戲的文章就介紹到這了,更多相關Pygame外星人游戲內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 用Python爬取英雄聯(lián)盟的皮膚詳細示例

    用Python爬取英雄聯(lián)盟的皮膚詳細示例

    大家好,本篇文章主要講的是用Python爬取英雄聯(lián)盟的皮膚詳細示例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python封裝git命令的流程步驟

    Python封裝git命令的流程步驟

    在日常的 Android 項目開發(fā)中,一般只會使用到: git add, git commit, git push, git pull, git rebase, git merge, git diff等常規(guī)命令,但是使用 git 命令,還可以做一些特別的事情,下面將介紹使用 python 封裝 git 命令,需要的朋友可以參考下
    2024-01-01
  • pybind11和numpy進行交互的方法

    pybind11和numpy進行交互的方法

    這篇文章主要介紹了pybind11和numpy進行交互的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • 一文教會你使用Python批量縮放圖片

    一文教會你使用Python批量縮放圖片

    最近處理一些規(guī)格不一的照片,需要修改成指定尺寸便于打印,下面這篇文章主要給大家介紹了關于使用Python批量縮放圖片的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02
  • Pytorch 使用CNN圖像分類的實現

    Pytorch 使用CNN圖像分類的實現

    這篇文章主要介紹了Pytorch 使用CNN圖像分類的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • python logging 重復寫日志問題解決辦法詳解

    python logging 重復寫日志問題解決辦法詳解

    這篇文章主要介紹了python logging 重復寫日志問題解決辦法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Python解決C盤卡頓問題及操作腳本示例

    Python解決C盤卡頓問題及操作腳本示例

    這篇文章主要為大家介紹了Python解決C盤卡頓問題腳本示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Python獲取多進程執(zhí)行的返回值實現

    Python獲取多進程執(zhí)行的返回值實現

    本文主要介紹了Python獲取多進程執(zhí)行的返回值實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Python實現抓取HTML網頁并以PDF文件形式保存的方法

    Python實現抓取HTML網頁并以PDF文件形式保存的方法

    這篇文章主要介紹了Python實現抓取HTML網頁并以PDF文件形式保存的方法,結合實例形式分析了PyPDF2模塊的安裝及Python抓取HTML頁面并基于PyPDF2模塊生成pdf文件的相關操作技巧,需要的朋友可以參考下
    2018-05-05
  • Python編程實現簡易的音樂播放器基本操作

    Python編程實現簡易的音樂播放器基本操作

    這篇文章主要來教大家利用Python編程來實現一個簡易的音樂播放器,文中含有基本功能的操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10

最新評論