# Actor
Actor 是 cpgzero 中最为重要的部分,通过 Actor(name) 创建一个 actor 实例。
from cpgzero import *
alien = Actor("alien")
alien.pos = 100, 100
alien.angle = 45
# pos
通过 actor.pos 得到 actor 的坐标,当然你也可以通过 actor.x、actor.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()