python重構函式怎麼確定引數(在《python從入門到實踐》的《外星人入侵》小遊戲遇到的問題)

2021-06-28 17:36:20 字數 2433 閱讀 3419

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。然後別的指令碼或函式通過...