问题描述
我正在学习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
我写了另一个类叫做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
对此将有任何帮助。
谢谢, 克里斯多夫(Christoph)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)