当前位置: 首页>JAVA>正文

有一個解謎的有外星人的游戲,【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、案例等)

(文章匯總還有更多你案例等你來學習啦!)

https://www.nshth.com/java/338567.html
>

相关文章:

  • 有一個解謎的有外星人的游戲
  • pygame做的著名游戲
  • python外星人入侵游戲
  • python文字冒險游戲
  • 外星人單機游戲
  • 外星人說地球史
  • python猜人名游戲
  • pygame游戲
  • 有一個解謎的有外星人的游戲,【Pygame小游戲】 史上最經典的外星人游戲 ,全面保障 勇敢去闖 (未解之謎)
  • 2020年2月編程語言排行榜:Java第一,Python出現下滑!
  • 開一家手機配件店怎么樣,手機配件實體店好做不_震驚!手機實體店,你不得不防的套路!
  • bld設計公司,BLE外設設計
  • 手機如何連接外設,iOS 連接外設的幾種方式
  • 三星手機換電池視頻教程,三星2016換電池教程
  • 機械設計制造畢業設計題目,機械專業夾具類畢業設計題目匯總/組合機床、車床撥叉、飛錘支架、連接座、倒擋撥叉、蓋、法蘭盤、銅襯軸套、心軸零件、曲軸箱零件、托板、發動
  • Shell基礎(四):字符串截取及切割、字符串初值的處理、基使用Shell數組、expect預期交互、使用正則表達式...
  • shell編程入門,shell基礎之04
  • 計算機基礎知識試題及答案(全),計算機序列類型和字典試題,計算機考試試題和資料
  • 新開店鋪怎么做推廣,淘寶新開店鋪沒有生意不會推廣的苦衷與心得
  • 如何注冊商標,給大家科普一下商標小知識沒注冊下來的商標,做吊牌,做包裝袋,發朋友圈廣告時千萬不能打R。將未注冊商標冒充注冊商標使用的,或者使用未注冊商標的,最高
  • 商標繳費后多久初步審核通過,商標注冊需要多久下證
  • 商標買賣,信用百度公司商標信息爬取
  • 商標檢索網站,中國商標網 -爬蟲
  • 應用商店上架app容易么,iOS App 上架App Store及提交審核(Appuploader)
  • app證書失效了怎么辦,iOS證書申請打包上傳App Store審核完整流程(7個步驟)
  • 銀行合并后,10萬億同業存款免繳存準 全面降準將推遲
  • kindle買8g還是32g,萬字長文!對比分析了多款存儲方案,KeeWiDB最終選擇自己來
  • java中的final關鍵字有哪些用法,Java: static,final,代碼塊 的詳解
  • 服務器反應慢及解決辦法,Linux服務器 大量的CLOSE_WAIT、TIME_WAIT解決辦法
  • wait for的用法,oracle for update wait 解析
  • 如何手動關閉close_wait,CLOSE_WAIT和TIME_WAIT
  • 渲染軟件哪個好用,Windows平臺OpenGL渲染視頻
  • 怎樣說代碼讓人聽不懂,RPA初級認證直通車,不懂代碼也能成為技術大佬
  • java快速開發平臺 開源,快上車!Java技術開發大廠直通車馬上啟動!
  • 架構師培訓,Java高級:java架構師成長直通車pan
  • 【淘寶開店教程】淘寶直通車常見問題講解
  • 《java架構師成長直通車》課程階段一學習筆記
  • 視頻教程-Java面試Offer直通車-Java