接上篇文章继续解绍arcade游戏编程的基本知识。今天主要解绍学习敌人如何寻找角色方向及角色开炮
# 起始位置
start_x = enemy.center_x
start_y = enemy.center_y
# 目标位置
dest_x = self.player.center_x
dest_y = self.player.center_y
# 计算子弹行进的角度。
x_diff = dest_x - start_x
y_diff = dest_y - start_y
angle = math.atan2(y_diff, x_diff)
# 设置敌人面向角色
enemy.angle = math.degrees(angle) - 90
# 利用粒子制子弹
bullet = arcade.SpriteCircle(8,arcade.color.RED)
bullet.center_x = start_x
bullet.center_y = start_y
# 设置子弹角度朝向角色
bullet.angle = math.degrees(angle)
# 根据角度,计算子弹的变化change_x和change_y。速度是子弹行进的速度。
bullet.change_x = math.cos(angle) * BULLET_speed
bullet.change_y = math.sin(angle) * BULLET_speed
初始时:
self.frame_count = 0
更新时:
def on_update(self, delta_time):
self.frame_count += 1
# 每60帧发射一次
if self.frame_count % 60 == 0:
"""
敌人如何寻找角色方向及角色开炮"""
import arcade
import math
import os
SCREEN_width = 800
SCREEN_height = 600
SCREEN_title = "敌人自动攻击角色"
BULLET_speed = 4
class MyGame(arcade.Window):
def __init__(self, width, height