如何在Cocos2D中输出变量的内容?

问题描述

我正在学习Cocos 2D和Python,并且有一个简单的问题。

我想在屏幕上输出变量的内容,以便我可以看到它在运行时的变化。

我有一个这样的演员班:

class Actor(cocos.cocosnode.CocosNode):
    def __init__(self,x,y):
        super(Actor,self).__init__()
        w,h = director.get_window_size()
        self.position = (x,y)
        self.slow_radius = 200
        self.veLocity = eu.Vector2(0,0)
        self.speed = 10
        self.max_force = 5
        self.max_veLocity = 200
        self.target = None
        self.seek = True
        self.distance = 10
        self.distance_text = self._create_text(w-60,h-40)
        self.add(ps.Sun())
        self.schedule(self.update)

    def update(self,dt):
        if self.target is None:
            return
        self.distance = self.target - eu.Vector2(self.x,self.y)
        ramp = 1.0
        ramp = min(abs(self.distance) / self.slow_radius,1.0)
        steering = self.distance * self.speed * ramp - self.veLocity
        steering = truncate(steering,self.max_force)
        self.veLocity = truncate(self.veLocity + steering,self.max_veLocity)
        direction = 1 if self.seek else -1
        self.position += self.veLocity * dt * direction
        self.distance_text.element.text = 'distance: %s' % self.distance

    def _create_text(self,y):
        text = cocos.text.Label(font_size=10,font_name='Verdana',anchor_x='right',anchor_y='center',color=(255,255,255))
        text.position = (x,y)
        self.add(text)
        return text

例如,我想输出self.distance的内容

我写了另一个类叫做HUD:


class HUD(cocos.layer.Layer):
    def __init__(self,distance):
        super(HUD,h = director.get_window_size()
        self.distance = distance
        self.distance_text = self._create_text(w-60,h-40)

        self.distance_text.element.text = 'distance: %s' % self.distance

    def _create_text(self,y)
        self.add(text)
        return text

调用这两个类的主层:


class MainLayer(cocos.layer.Layer):
    is_event_handler = True

    def __init__(self):
        super(MainLayer,self).__init__()
        self.actor = Actor(320,240)
        self.add(self.actor)
        self.hud = HUD(self.actor.distance)
        self.add(self.hud)

    def on_mouse_motion(self,y,dx,dy):
        self.actor.target = eu.Vector2(x,y)

    def on_mouse_press(self,buttons,mod):
        self.actor.seek = not self.actor.seek

我的屏幕上的输出保持为10,并且不会更新为更新功能的值。

对此将有任何帮助。

谢谢, 克里斯多夫(Christoph)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)