⑴ 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入門可以做的小游戲
1、Python入門拼圖小游戲
簡單介紹:
將圖像分為m×n個矩形塊,並將圖像右下角的矩形塊替換為空白塊後,將這些矩形塊隨機擺放成原圖像的形狀。
2、Python入門推箱子小游戲
簡單介紹:
這是來自日本的一個經典游戲,在狹小的倉庫中,要求把木箱放到指定的位置,如果不小心就可能出現箱子無法移動或者通道被堵的情況,所以,如何巧妙利用有限的空間和通道,合理安排移動順序,就成了這個游戲能否通關的關鍵。
3、Python入門小游戲之外星人入侵
簡單介紹:
玩家可以通過滑鼠控制飛船的移動和射擊,如果能在敵人達到游戲界面低端之前消滅所有敵人,則游戲勝利,否則游戲失敗。
4、Python入門小游戲之吃豆子
簡單介紹:
通過鍵盤方向鍵,控制游戲的人物吃豆人,吃掉藏在迷宮內的所有豆子,並且不能被敵人抓到。
5、Python入門小游戲之寶石消消樂
簡單介紹:
玩家通過滑鼠交換相鄰的拼圖,若交換後,在水平/豎直方向存在連續三個相同的拼圖,則這些拼圖消失,玩家得分。
6、Python入門小游戲之乒乓球對戰
簡單介紹:
中間是球網,玩家通過上下鍵移動球拍,並且這個游戲是可以兩個人玩的哦。
7、還有其他四個游戲
它們是:炸彈人小游戲、逃出迷宮、飛揚的小鳥、五子棋
⑶ 外星人入侵python代碼編寫出錯求大神指導
答: pygame裡面都是有init()這個函數的,但是錯誤提示卻是這個模塊沒有init這個方法。那我覺得你可以按以下步驟去檢查一下。
希望可以幫助到你~
⑷ python,外星人入侵游戲,Pycharm,pygame,寫完了,但是有bug,希望幫我找一下原因
只能說明你復制粘貼的能力還欠缺
⑸ 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對應起來,實現一堆外星人動起來的效果!請採納!!!!!!