有一個解謎的有外星人的游戲,【Pygame小游戲】 史上最經典的外星人游戲 ,全面保障 勇敢去闖 (未解之謎)
有一個解謎的有外星人的游戲,【Pygame小游戲】 史上最經典的外星人游戲 ,全面保障 勇敢去闖 (未解之謎)
??前言
說說外星人那些事兒....
你以為的外星人......他們都是乘坐UFO來地球的,長的嗯哼可能比較有特色。也許長這樣👇
?害!其實可能也或許不長這樣。
圖片的話借鑒的大眾認知的這一款。當然你們還可以自己來!下面我們來做一款簡單的《外星人入
侵》小游戲吧!
所有文章完整的素材+源碼都在👇👇
粉絲白嫖源碼福利,請移步至CSDN社區
正文
安裝環境:
下載python3,或如Anaconda3(64 bit),導入pygame游戲包。
???
代碼實現過程:
1.外星人設置,alien.py,代碼:
import pygame
from pygame.sprite import Spriteclass Alien(Sprite):"""表示單個外星人的類"""def __init__(self,ai_settings,screen):"""初始化外星人并設置其他位置"""super(Alien,self).__init__()self.screen = screenself.ai_settings = ai_settings#加載外星人圖像,并設置其rect屬性self.image = pygame.image.load('images/alien.bmp')self.rect = self.image.get_rect()#每個外星人最初都在屏幕左上角附近self.rect.x = self.rect.widthself.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 Trueelif self.rect.left <= 0:return Truedef 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 pygamefrom 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 Scoreboarddef 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 timeclass 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_colorself.speed_factor = ai_settings.bullet_speed_factordef update(self):self.top -=self.speed_factorself.rect.top = self.topprint(self.rect.top)def draw_bullet(self):pygame.draw.rect(self.screen,self.color,self.rect)
#略.....................................
其實還有幾頁的源碼量,代碼很多,需要的話直接找我會比較好~
效果展示:
好了!代碼都在上面了哦。需要完整的教學圖片素材、源碼已經全部打包放在群里了。
不要說代碼報錯不知道在哪里修改哦!嘿嘿,群可互相解答問題啦!!!
小結
嘻嘻,文章寫完啦~這款簡單的飛機大戰外星人就到這里結束啦~未解之謎就留著科學家來解密
叭!
?完整的素材等:也可以滴滴我吖!或者點擊文末公眾號自取免費拿的哈~
😘往期推薦閱讀——
項目1.2? ?Pygame小游戲:玩掃雷就在瞎點的,不止你一個人。
項目1.3??Pygame小游戲:死磕《球球版—貪吃蛇蛇》,你中招了嘛?
項目1.6?【Pygame小游戲】斗地主我見多了,BUT 這款開源歡樂斗地主,最讓人服氣~
項目1.7?【Pygame小游戲】神還原【歡樂無窮的雙人坦克大戰】小程序游戲,上手開玩~
🎁文章匯總——
匯總:?Python文章合集 | (入門到實戰、游戲、Turtle、案例等)
(文章匯總還有更多你案例等你來學習啦!)