1樓:匿名使用者
1,對,__init__中定義的變數,其他物件方法(第一個引數是self的),可以直接用
2,不是很清楚你什麼地方沒想明白,三個引數都是update_screen的引數,作者認為它需要3個才能正確工作,就這麼設計了。
3,ai_settings是一個例項,在圖1的1處就是它了。
python從入門到實踐裡的《外星人入侵》 10
2樓:
不過學程式設計,借鑑模仿很重要,即使抄輪子也得抄個像模像樣才行,抄到即是學到。
進入正題:
遊戲很簡單,就是一個***型別的遊戲,以下**將實現遊戲的主程式,飛船的基本操作等。
不要隨便複製貼上!
不要隨便複製貼上!
python的縮排很嚴格,複製貼上後一定要注意格式是否正確,否則會報出異常:
indentationerror: unexpected indent
未知的縮排錯誤
當出現此提示時,要檢查一下**的縮排出現了問題,小段的**還好,大段的**就呵呵了
然後你要新建以下檔案:
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從入門到實踐裡的《外星人入侵》 ,記分部分**錯誤,幫忙解答一下?
3樓:
這是真的簡單的不能再簡單的了,只要會用就行了類似第一題
1 print(float(100))
勸你想想以後考試,工作誰會來幫你做?還是一開始就自己來吧
4樓:最大的_大寶寶
在init初始化方法裡面把score_image定義一下
python 程式設計從入門到實踐一書中,外星人專案裡14章按鍵
5樓:
程式設計沒有問題就不會報錯!難道你是發現了python的bug?另外,最好不要使用中文路徑。
python專案外星人入侵新增爆照效果有沒有原碼
6樓:匿名使用者
很簡單啊在響應外星人被擊中的時候繪製**點陣圖然後刪除外星人就好了。。
python函式怎麼使用另函式內的變數
例如一個函式內有一個變數i,怎麼在函式外或另一個函式中呼叫或更改它。新手學習,謝謝。不能在函式外更改某函式裡的區域性變數,因為每當你例項化那個函式的時候,那個函式裡面的區域性變數也會被重新賦值,重新定義,談何更改呢?這一個全部變數和區域性變數的問題,如果要實現樓主說的,必須使用全域性變數 類中的se...
python中怎麼呼叫自定義函式
網上的很多資料都是說 如果把my abs 的函式定義儲存為abstest.py檔案了,那麼,可以在該檔案的當前目錄下啟動python直譯器,用from abstest import my abs來匯入my abs 函式,注意abstest是檔名 不含.py副檔名 但是在嘗試這種方法後,發現仍然還是無...
LUA指令碼的不定參函式怎麼封裝急
兩種方式 1 指令碼內定義全域性函式 非local的 然後在別的指令碼require這個指令碼後直接通過名稱版和引數進行呼叫 類似權c函式的呼叫 2 指令碼內定義一個message handler的入口函式 類似main函式 這個入口函式接受一個msg和一系列的params。然後別的指令碼或函式通過...