Pygame實戰之實現經典外星人遊戲
前言
說說外星人那些事兒….
你以為的外星人……他們都是乘坐UFO來地球的,長的嗯哼可能比較有特色。也許長這樣
害!其實可能也或許不長這樣。
圖片的話借鑒的大眾認知的這一款。當然你們還可以自己來!下面我們來做一款簡單的《外星人入侵》小遊戲吧!
正文
安裝環境
下載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( # 創建screen顯示窗口 (ai_settings.screen_width,ai_settings.screen_height) ) pygame.display.set_caption('Alien Invasion') # 標題 #新建Play按鈕 play_button = Button(ai_settings,screen,"Play") #創建一個用於存儲遊戲統計信息的實例,並創建記分牌 stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) # 創建飛船 ship = Ship(ai_settings,screen) # 創建子彈編組 bullets = Group() #創建一個外星人 aliens = Group() #創建外星人群 gf.create_fleet(ai_settings,screen,ship,aliens) # 開始遊戲主循環 while True: # 監視鍵盤和鼠標事件 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 # 創建子彈矩形初始位置(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實戰之實現經典外星人遊戲的文章就介紹到這瞭,更多相關Pygame外星人遊戲內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 基於Pygame中Pygame模塊的大戰外星人實戰
- Pygame遊戲開發之太空射擊實戰子彈與碰撞處理篇
- Python+Pygame實戰之實現小蜜蜂歷險記遊戲
- python第三方庫pygame的使用詳解
- Pygame遊戲開發之太空射擊實戰添加圖形篇