python外星人入侵
⑴ python外星人入侵代碼運行正常,但是黑屏的原因
我首先安裝好了pyinstaller:在cmd中告裂輸入:pip install PyInstaller
二:cmd切換到alien_invasion目錄下,在cmd中輸入:pyinstaller -p alien_invasion -p alien.py -p bullet.py… 結果是運行不了閃退
三:然後我用另一種,我切換到alien_invasion目錄下,在cmd輸入:pyinstaller -F alien_invasion -p alien.py -p bullet.py…這一次可以了。(-F後面接的是主文件,後面要接上其他所有的文件,-F、-p前後都有空格)
四:但是還沒完,第三種比第二種好很多,起碼不閃退了,但是窗口是黑色襪皮閉的,過幾秒還自動退出了。我查了查網上,發現是字體問題,把(None,45)諸如握豎此類的None改為『arial』.在重新進行了第三步打包(把原來的刪掉,包括build和dist),就可以了。
⑵ python入門可以做的小游戲
1、Python入門拼圖小游戲
簡單介紹:
將圖像分為m×n個矩形塊,並將圖像右下角的矩形塊替換為空白塊後,將這些矩形塊隨機擺放成原圖像的形狀。
2、Python入門推箱子小游戲
簡單介紹:
這是來自日本的一個經典游戲,在狹小的倉庫中,要求把木箱放到指定的位置,如果不小心就可能出現箱子無法移動或者通道被堵的情況,所以,如何巧妙利用有限的空間和通道,合理安排移動順序,就成了這個游戲能否通關的關鍵。
3、Python入門小游戲之外星人入侵
簡單介紹:
玩家可以通過滑鼠控制飛船的移動和射擊,如果能在敵人達到游戲界面低端之前消滅所有敵人,則游戲勝利,否則游戲失敗。
4、Python入門小游戲之吃豆子
簡單介紹:
通過鍵盤方向鍵,控制游戲的人物吃豆人,吃掉藏在迷宮內的所有豆子,並且不能被敵人抓到。
5、Python入門小游戲之寶石消消樂
簡單介紹:
玩家通過滑鼠交換相鄰的拼圖,若交換後,在水平/豎直方向存在連續三個相同的拼圖,則這些拼圖消失,玩家得分。
6、Python入門小游戲之乒乓球對戰
簡單介紹:
中間是球網,玩家通過上下鍵移動球拍,並且這個游戲是可以兩個人玩的哦。
7、還有其他四個游戲
它們是:炸彈人小游戲、逃出迷宮、飛揚的小鳥、五子棋
⑶ python外星人入侵游戲左移正常,右移屏幕上不顯示,但實際上已經移動了
主要看看向右移動的地方的代碼有沒有問題:
#設置向右移動flag
self.move_right=False
deflistening_key_down(self,event):
"""
監聽key_down事件
:paramevent:
"""
ifevent.key==pygame.K_RIGHT:
self.air_ship.move_right=True
elifevent.key==pygame.K_LEFT:
self.air_ship.move_left=True
deflistening_key_up(self,event):
"""
監聽key_up事件
:paramevent:
"""
ifevent.key==pygame.K_RIGHT:
self.air_ship.move_right=False
elifevent.key==pygame.K_LEFT:
self.air_ship.move_left=False
defmove(self):
"""
更新飛船橫軸位置,實現左右移動
"""
ifself.move_rightandself.air_ship_rect.right<=self.screen_rect.right:
self.center+=self.speed_factorifself.move_leftandself.air_ship_rect.left>=self.screen_rect.left:
self.center-=self.speed_factor
self.air_ship_rect.centerx=self.center
deflistening_game_event(self):
"""
監聽事件
叢棚姿"""
for滲絕eventinpygame.event.get():ifevent.type==pygame.QUIT:
pygame.quit()
sys.exit()elifevent.type==pygame.KEYDOWN:
self.listening_key_down(event)elifevent.type==pygame.KEYUP:
self.listening_key_up(event)
#游戲主循環
whileTrue:self.listening_game_event()self.air_ship.move()和讓self.update_game_screen()
⑷ Python從入門到實踐里的《外星人入侵》
項目名如標題,在《python編程:從入門到實踐》里有完整詳細的說明,網上也能查到源碼,這里只是在重復這種程序
不過學編程,借鑒模仿很重要,即使抄輪子也得抄個像模像樣才行,抄到即是學到。
進入正題:
游戲很簡單,就是一個打飛機類型的游戲,以下代碼將實現游戲的主程序,飛船的基本操作等。
註:這里提醒新上手的萌新,python的代碼不要隨便復制粘貼!
不要隨便復制粘貼!
不要隨便復制粘貼!
python的縮進很嚴格,復制粘貼後一定要注意格式是否正確,否則會報出異常:
IndentationError: unexpected indent
未知的縮進錯誤
當出現此提示時,要檢查一下哪裡的縮進出現了問題,小段的代碼還好,大段的代碼就呵呵了
注意下載好的文件後綴名為.whl
然後新建一個文件夾,名字叫alien_invasion,將下載好的模塊放在此文件夾下,
然後你要新建以下文件:
1.alien_invasion.py 游戲主程序
2.game_functions.py 存放游戲函數
3.bullet.py 子彈模塊
4.settings.py 游戲設置模塊
5.ship.py 飛船模塊
然後新建images文件夾存放飛船素材。
這些會讓我們實現啟動游戲,飛船的顯示與移動,以及開火功能。
為避免文章冗~長,這里貼一段主程序代碼,其它代碼下周見(偷懶)。
alien_invasion.py
#!usr/bin/env python3
#_*_ coding:utf-8 _*_
#此模塊是游戲的主程序
import sys
import game_functions as gf #導入game_functions文件,並指定了別名gf
import pygame
from settings import Settings
from ship import Ship
from pygame.sprite import Group
def run_game():
# 初始化游戲並創建一個屏幕對象
pygame.init() #pygame的init函數,用於創建一個游戲對象
#把Setting類實例化
ai_settings = Settings()
#顯示游戲窗口並設置其大小
screen = pygame.display.set_mode(
(ai_settings.screen_width,ai_settings.screen_height))
#設置窗口標題
pygame.display.set_caption("Alien Invasion")
# 把Ship類實例化,用於創建飛船
ship = Ship(ai_settings,screen)
#存儲子彈的編組
bullets = Group()
#開始游戲的主循環
while True:
#用於響應滑鼠,鍵盤事件
gf.check_events(ai_settings,screen,ship,bullets)
#更新飛船在屏幕的位置
ship.update()
#更新子彈位置並刪除消失的子彈
gf.update_bullets(bullets)
#用於更新屏幕背景色,更新飛船,子彈等
gf.update_screen(ai_settings,screen,ship,bullets)
run_game() #運行游戲
⑸ 《外星人入侵》的python完整代碼
項目名如標題,在《python編程:從入門到實踐》里有完整詳細的說明,網上也能查到源碼,這里只是在重復這種程序
不過學編程,借鑒模仿很重要,即使抄輪子也得抄個像模像樣才行,抄到即是學到。
進入正題:
游戲很簡單,就是一個打飛機類型的游戲,以下代碼將實現游戲的主程序,飛船的基本操作等。
註:這里提醒新上手的萌新,python的代碼不要隨便復制粘貼!
不要隨便復制粘貼!
不要隨便復制粘貼!
python的縮進很嚴格,復制粘貼後一定要注意格式是否正確,否則會報出異常:
IndentationError: unexpected indent
未知的縮進錯誤
當出現此提示時,要檢查一下哪裡的縮進出現了問題,小段的代碼還好,大段的代碼就呵呵了
注意下載好的文件後綴名為.whl
然後新建一個文件夾,名字叫alien_invasion,將下載好的模塊放在此文件夾下,
然後你要新建以下文件:
1.alien_invasion.py 游戲主程序
2.game_functions.py 存放游戲函數
3.bullet.py 子彈模塊
4.settings.py 游戲設置模塊
5.ship.py 飛船模塊
然後新建images文件夾存放飛船素材。
這些會讓我們實現啟動游戲,飛船的顯示與移動,以及開火功能。
為避免文章冗~長,這里貼一段主程序代碼,其它代碼下周見(偷懶)。
alien_invasion.py
#!usr/bin/env python3
#_*_ coding:utf-8 _*_
#此模塊是游戲的主程序
import sys
import game_functions as gf #導入game_functions文件,並指定了別名gf
import pygame
from settings import Settings
from ship import Ship
from pygame.sprite import Group
def run_game():
# 初始化游戲並創建一個屏幕對象
pygame.init() #pygame的init函數,用於創建一個游戲對象
#把Setting類實例化
ai_settings = Settings()
#顯示游戲窗口並設置其大小
screen = pygame.display.set_mode(
(ai_settings.screen_width,ai_settings.screen_height))
#設置窗口標題
pygame.display.set_caption("Alien Invasion")
# 把Ship類實例化,用於創建飛船
ship = Ship(ai_settings,screen)
#存儲子彈的編組
bullets = Group()
#開始游戲的主循環
while True:
#用於響應滑鼠,鍵盤事件
gf.check_events(ai_settings,screen,ship,bullets)
#更新飛船在屏幕的位置
ship.update()
#更新子彈位置並刪除消失的子彈
gf.update_bullets(bullets)
#用於更新屏幕背景色,更新飛船,子彈等
gf.update_screen(ai_settings,screen,ship,bullets)
run_game() #運行游戲
⑹ Python外星人入侵問題求助
你好,我也遇到雀宏了同樣的問題。debug可以發現其實你的程序仍然是36個外星人,但是每行外星人的位置重合導致了顯示結果看起來只有一列外星人響應。這是由於每個外星人的初始位置相同。
我當初寫的大檔時候理所當然地在def create_alien中(該函數目的是生成一組外星人),對函數體中每個alien的位置都是用精靈的實際位置計算,即alien.rect.x和alien.rect.y。但你可以觀察到Alien類的update函數計算對象是alien.x, 所以你可能需要頃仿冊在別的文件中補上這個關鍵的中間變數,加上這句話(圖中紅字):alien.x=alien.rect.x
這樣才能夠將真實的位置alien.rect.x和我們數學計算的變數alien.x對應起來,實現一堆外星人動起來的效果!請採納!!!!!!
⑺ 0基礎自學python,有入門書籍推薦下么
1、《Python編程:入門到實踐》
書中內容分為基礎篇和實戰篇兩部分。基礎篇介紹基本的編程概念,實戰篇介紹如何利用新學到的知識開發功能豐富的項目:2D游戲《外星人入侵》,數據可視化實戰,Web應用程序。
推薦理由:這本書,書中涵蓋的內容是比較精簡的,沒有艱深晦澀的概念,最重要的是每個小結都附帶有」動手試一試」環節。理論和實踐恰到好處,行文邏輯流暢,不跳躍,手把手教的感覺,卻絕不_嗦,非常適合入門。
2、《Python基礎教程》
這本書內容涉及的范圍較廣,既能為初學者夯實基礎,又能幫助程序陪正員提升技能,適合各個層次的Python開發人員閱讀參考。最後幾章的10各項目更是這本書最大的亮點,不僅實用而且講解到位。
3、《笨方法學Python》
這是一本Python入門書籍,適合對計算機了解不多,沒有學過編程,但對編程感興趣的讀者學習使用。這本書衫鎮以習題的方式引導讀者一步一步學習編程,從簡單的列印一直講到完整項目的實現,讓初學者從基礎的編程技術入手,最終體驗到軟體開發的基本過程。
推薦理由:編程入門的必備書,從一個個的小例子入手,不僅是教你寫Python代碼,還有編程的技巧。
4、《Python編程快速上手》
本書的首部分介紹了基本Python編程概念,第二部分介紹了一些不同的任務,通過編寫Python程序,可以讓計算機自動完成它們。同時,每章的末尾還提供了一些習題和深入的實踐項目,幫助讀者鞏固所學的知識。
推薦理由:本書尤其適合缺乏編程基礎或亂粗的初學者,語法使用Python3,書中不僅介紹了Python語言的基礎知識,而且還通過項目實踐教會讀者如何應用這些知識和技能。有其它編程語言經驗的同學,也可以直接看著本書快速了解Python可以做什麼,語法問題可以邊做東西邊查!
5、《Python核心編程》
書中內容總共分為3部分。
第1部分為講解了Python的一些通用應用,包括正則表達式、網路編程、Internet客戶端編程、多線程編程、GUI編程、資料庫編程等。第2部分講解了與Web開發相關的主題,包括Web客戶端和伺服器、CGI和WSGI相關的Web編程、DjangoWeb框架等。第3部分則為一個補充/實驗章節,包括文本處理以及一些其他內容。
推薦理由:它仔細、深入地剖析了一些重要的Python主題,而且讀者無需大量的相關經驗也能看懂。與所有其他Python入門類圖書不同的是,它不會用隱晦、難以理解的文字來折磨讀者,而是始終立足於幫助讀者牢固掌握Python的語法和結構。
想要快速入門Python開發,僅靠看書怎麼夠,畢竟編程最重要的就是練習。
⑻ 外星人入侵python代碼編寫出錯求大神指導
答: pygame裡面都是有init()這個函數的,但是錯誤提示卻是這個模塊沒有init這個方法。那我覺得你可以按以下步驟去檢查一下。
- 確保自己有沒有安裝pygame這個模塊,安裝命令是pip install pyname,或者pip3 install pygame,如果你是用anaconda的話,也可以用conda install pyname來安裝;
- 仔細再檢查一下,你有沒有重名的文件pyname,之前我也是認為沒有的,後來自己看了一下,真的猛鉛有一個重名的,你根據那個報錯路徑去看一看姿知慧。
- 如果跡答還不行的話,你乾脆重建一個項目目錄,再試試,或者重裝那個模塊。
希望可以幫助到你~