import pygame,sys
from pygame.sprite import group
from settings import settings
class
alien
(pygame.sprite.sprite)
:def
__init__
(self,screen,ai_settings)
:super
(alien, self)
.__init__(
) self.screen = screen
self.ai_settings=ai_settings
self.screen_rect = self.screen.get_rect(
) self.image = pygame.image.load(
'imgage/alien.bmp'
) self.rect = self.image.get_rect(
) self.x =
float
(self.rect.x)
defupdate
(self)
:"""向左或向右移動外星人"""
self.x +=
(self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction)
self.rect.x = self.x
defcheck_edges
(self)
:"""如果外星人位於螢幕邊緣,就返回true"""
screen_rect = self.screen.get_rect(
)if self.rect.right >= screen_rect.right:
return
true
elif self.rect.left <= screen_rect.left:
return
true
defupdate_aliens
(ai_settings, aliens)
:"""更新外星人群中所有外星人的位置"""
check_fleet_edges(ai_settings, aliens)
aliens.update(
)def
check_fleet_edges
(ai_settings, aliens)
:"""有外星人到達邊緣時採取相應的措施"""
for alien in aliens.sprites():
if alien.check_edges():
change_fleet_direction(ai_settings, aliens)
break
defchange_fleet_direction
(ai_settings, aliens)
:"""將整群外星人下移,並改變它們的方向"""
for alien in aliens.sprites():
alien.rect.y += ai_settings.fleet_drop_speed
ai_settings.fleet_direction *=-1
defcreate_alien
(screen,aliens,i,j,ai_settings)
: alien = alien(screen,ai_settings)
screen_rect = screen.get_rect(
) alien_width = alien.rect.width
alien.x = alien_width +
2* alien_width * i
alien.rect.x = alien.x
alien.rect.y = alien.rect.height +
2* alien.rect.height * j
aliens.add(alien)
defrun()
: pygame.init(
) fleet_direction =
1 bg_color =
230,
230,
230 ai_settings = settings(
) screen = pygame.display.set_mode(
(1200
,800))
aliens = group(
)for i in
range(4
):for j in
range(9
):create_alien(screen,aliens,j,i,ai_settings)
while
true
:for event in pygame.event.get():
if event.
type
== pygame.quit:
sys.exit(
) screen.fill(bg_color)
aliens.draw(screen)
update_aliens(ai_settings,aliens)
aliens.update(
) pygame.display.flip(
)run(
)
外星人入侵
今天是乙個週末,宿舍的人全部都出去玩了,而我因為太懶乙個人留在了宿舍,連床都不起,吃飯靠的是點外賣。不過,為了好玩,我跟著書本學習打了乙個2d小遊戲,並加入了一點自己的東西。一 遊戲頁面 剛開始我把所有的遊戲螢幕設定都放在了下面 裡,這使得 看起來非常長,和雜亂,所以為了使遊戲方便擴充套件和整個 邏...
Pygame 外星人入侵(7)外星人壓境
二 更加合理地移動 三 小結 在之前的博文中,實現了在螢幕上繪製一大群外星人,現在我們想讓這群外星人動起來,它們的移動遵循著一定的規律。我們首先要實現的是,如何讓一群外星人一起向螢幕右側移動。遊戲引數性質的變數統一存放在 設定模組中的設定類中 6 外星人的屬性 6。1 外星人移動的速度 self.a...
外星人入侵 Standard IO
description 外星人入侵地球。可怕的吃人外星人正在全國各地依次序建立它們的基地。全國共有n 1 n 10,000 座城市,城市編號1 n。城市之間有m 0 m 100,000 條雙向道路相連。外星人計畫建立a 0 a n 個基地。你只有在距離當前所有外星人基地至少k 1 k 100 單位長...