# Actor

Actorcpgzero 中最为重要的部分,通过 Actor(name) 创建一个 actor 实例。

from cpgzero import *
alien = Actor("alien")
alien.pos = 100, 100
alien.angle = 45

# pos

通过 actor.pos 得到 actor 的坐标,当然你也可以通过 actor.xactor.y 分别得到 x、y 坐标。
设置 actor 的坐标,给相应的属性赋值即可,比如 actor.pos = 100, 50

from cpgzero import *
alien = Actor("alien")
alien.pos = 100, 100
alien.x += 10
alien.y = alien.y + 10
print(alien.pos)

# angle

actor 的旋转角度。

from cpgzero import *
alien = Actor("alien")
alien.angle += 20
print(alien.angle)

# scale

actor 的缩放度。

from cpgzero import *
alien = Actor("alien")
alien.scale = 0.5
print(alien.scale)

# opacity

actor 的可见度。

from cpgzero import *
alien = Actor("alien")
alien.opacity = 0.5
print(alien.opacity)

# image_count

造型总数,actor 可以有多个造型,设置 image 切换不同造型。image 为造型名称,frame 为造型序号。

from cpgzero import *
alien = Actor("alien")
def nextFrame(actor):
    actor.frame = actor.frame % actor.image_count + 1
    
def loopFrame(actor, speed):
    def showNext():
        nextFrame(actor)
    clock.schedule_interval(showNext, speed)

loopFrame(alien, 0.2)

# image

造型名称,actor 可以有多个造型,设置 image 切换不同造型。image 为造型名称,frame 为造型序号。

from cpgzero import *
alien = Actor("alien")
def on_key_down(key):
    if key == keys.LEFT:
        alien.image = "造型2"
    elif key == keys.RIGHT:
        alien.image = "造型1"

# frame

造型序号,从 1 开始。image 为造型名称,frame 为造型序号。

from cpgzero import *
alien = Actor("alien")
def on_key_down(key):
    if key == keys.LEFT:
        alien.frame = 1
    elif key == keys.RIGHT:
        alien.frame = 2

# show

显示、隐藏角色。

from cpgzero import *
alien = Actor("alien")
def on_key_down(key):
    if key == keys.LEFT:
        alien.show = True
    elif key == keys.RIGHT:
        alien.show = False

# distance_to(pos)

pos 的距离。

from cpgzero import *
alien = Actor("alien")
alien.pos = 0, 0

def on_mouse_down(pos):
    print(alien.distance_to(pos))

# angle_to(pos)

pos 的角度。

from cpgzero import *
alien = Actor("alien")
alien.pos = 0, 0

def on_mouse_down(pos):
    print(alien.angle_to(pos))

# face_to(target)

actor 面向 target 此刻的位置。

from cpgzero import *
alien = Actor("alien")
target = Actor("target")
alien.face_to(target) # 面向角色

alien.face_to("mouse") # 面向鼠标

# collide_point(pos)

actor 是否与坐标 pos 碰撞。

from cpgzero import *
alien = Actor("alien")
alien.pos = 0, 0

def on_mouse_down(pos):
    print(alien.collide_point(pos))

# collide_actor(actor)

两个 actor 是否碰撞。

from cpgzero import *
alien = Actor("alien")
star = Actor("star")

alien.pos = 0, 0
star.pos = 50, 50
print(alien.collide_actor(star))

# remove()

当不需要 actor 时,使用 remove 删除,actor 会从舞台中消失。

from cpgzero import *
alien = Actor("alien")
alien.remove()