Lesson10 敵をクローンで増やそう
割引あり
前回つくった敵キャラが
勝手に増えたら
ちょっとうざいですよね?
今回はそれをやってみます。
ちなみにScratchプログラムでも「クローンする」というコマンドがあります。それを実現しようと思っています☆
stage1.py
#### stage1.py ####
#########################################################################################
#### ライブラリの読み込み ####
#### メインプログラム ####
def main(hp,mp,idx):
#####################################################################################
#### 初期設定 ####
clone_enemies = pygame.sprite.Group()
#####################################################################################
#### プレイヤーのスプライト ####
#####################################################################################
#### コマンドボタンのスプライト ####
#####################################################################################
#### 壁のスプライト ####
#####################################################################################
#### ザコ敵のスプライト ####
# 省略 #
blue_enemy_params = {
# 省略 #
'speed_x': 0,
# 省略 #
}
# 省略 #
#####################################################################################
#### ザコ敵のクローンスプライト ####
del_time = 5
def clone(hp,frame_count,clone_enemies):
copy_enemy = blue_enemy
if frame_count % 45 == 0 and copy_enemy.enemy_hp > 0:
# 新たなパラメータ
clone_enemy = Enemy(
x=copy_enemy.x,
y=copy_enemy.y,
image=copy_enemy.original_image,
image_bomb=copy_enemy.image_bomb,
speed_x=-10,
speed_y=0,
rotation_speed=copy_enemy.rotation_speed,
start_angle=copy_enemy.start_angle,
atk = copy_enemy.atk,
enemy_hp = 1,
size_multiplier=copy_enemy.size)
clone_enemy.creation_frame = frame_count
clone_enemies.add(clone_enemy)
for clone_enemy in clone_enemies:
clone_enemy.update(player_turn)
clone_enemy.draw(screen)
attack_enemy = clone_enemy
if not player_turn:
hp =player.take_damage(hp,damage_base,attack_enemy)
if frame_count - clone_enemy.creation_frame >= del_time * 30:
clone_enemies.remove(clone_enemy)
return hp
#####################################################################################
#### ゲームループ ####
while True:
screen.fill((0, 0, 0))
#### ステージ共通の要素 ####
command_button()
square_structure()
#### ステージごとに変える要素 ####
hp = single_enemy(hp)
hp = clone(hp,frame_count,clone_enemies)
first_player()
stage1.py に追記できましたか?
それでは実行してみましょう!
>python main.py
ちなみにスペースキーを押すとコマンド選択に移りますが、その間は敵キャラたちはちゃん停止してくれます。
おりこうさんですね。
敵キャラが自己増殖をしますが、それぞれに当たり判定をつけているのでしっかりダメージを受けるようになっています。
それでは解説に移ります。Ⅹ(旧Twitter)で拡散し無料でお進みください★
ここから先は
8,273字
この記事が気に入ったらチップで応援してみませんか?