// 碰撞检测 protected override void OnCollision(GameObject obj) { var msg = new GameMsg(); // 撞到了管道,发送死亡消息 if (obj is Pipe) { msg.MsgType = GameMsgType.Died; } //if (obj is Diamonds) //{ // msg.MsgType = GameMsgType.Pick; //} SendMessage(msg); }
protected override void Update() { // 向左移动 X -= 3; // 如果通过了三分之一的位置,则说明小鸟通过 // 发送小鸟通过的消息 // 必须为 Reverse 的作用使为了保证消息只发送一次 //(因为上下有两个Y坐标相同的柱子) if (X < Engine.Width / 3 && !crossed && Reverse) { crossed = true; var msg = new GameMsg(); msg.MsgType = GameMsgType.CrossPipe; SendMessage(msg); } // 超出边界则移除 if (X < -Width) { Deleted = true; } }