# 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()