М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения


Напишем новый класс  GameStats для ведения статистики и сохраним его в файле  game_stats .py : game_stats.py



Pdf көрінісі
бет209/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   205   206   207   208   209   210   211   212   ...   334
Байланысты:
Изучаем Python

287
Напишем новый класс 
GameStats
для ведения статистики и сохраним его в файле 
game_stats .py
:
game_stats.py
class GameStats():
"""Отслеживание статистики для игры Alien Invasion."""
def __init__(self, ai_game):
"""Инициализирует статистику."""
self.settings = ai_game.settings

self.reset_stats()
def reset_stats(self):
"""Инициализирует статистику, изменяющуюся в ходе игры."""
self.ships_left = self.settings.ship_limit
На все время работы Alien Invasion будет создаваться один экземпляр 
GameStats

но часть статистики должна сбрасываться в начале каждой новой игры. Для этого 
большая часть статистики будет инициализироваться в методе 
reset_stats()
вместо 
__init__()
. Этот метод будет вызываться из 
__init__()
, чтобы статистика 
правильно инициализировалась при первом создании экземпляра 
GameStats


а метод 
reset_stats()
будет вызываться в начале каждой новой игры.
Пока в игре используется всего один вид статистики — значение 
ships_left
, из-
меняющееся в ходе игры. Количество кораблей в начале игры хранится в 
settings .py
под именем 
ship_limit
:
settings.py
# Настройки корабля
self.ship_speed = 1.5
self.ship_limit = 3
Также необходимо внести ряд изменений в 
alien_invasion .py
для создания экземпляра 
GameStats
. Начнем с обновления команд 
import
в начале файла:
alien_invasion.py
import sys
from time import sleep
import pygame
from settings import Settings
from game_stats import GameStats
from ship import Ship
...
Мы импортируем функцию 
sleep()
из модуля 
time
стандартной библиотеки 
Python, чтобы игру можно было ненадолго приостановить в момент столкновения 
с кораблем. Также импортируется класс 
GameStats
.




Достарыңызбен бөлісу:
1   ...   205   206   207   208   209   210   211   212   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет