你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
利用WPF实现基于MSN协议的五子棋游戏(十二)
 

 //  如果联系人不在列表中,拒绝游戏请求

        if(itemObject == null) return ;

        //  sender参数转换成SBMessageHandler对象

        SBMessageHandler switchboard = (SBMessageHandler)sender;

        itemObject.contact = e.Sender;

        itemObject.switchboard = switchboard;

        //  将主窗口的聊天信息接收事件删除

        switchboard.TextMessageReceived -=

            new TextMessageReceivedEventHandler(TextMessageReceived);

        //  创建游戏窗口对象

        Game game = new Game(im, itemObject);

        game.lblStatus.Content = "该对方走棋了!";

        game.lblStatus.Tag = 0;   

        //  人工调用游戏窗口的聊天信息接收事件

        game.TextMessageReceived(sender, e);

        itemObject.game = game;

        //  添加游戏窗口的聊天信息接收事件

        itemObject.switchboard.TextMessageReceived +=

            new TextMessageReceivedEventHandler(game.TextMessageReceived);

        //  添加联系人离线事件

        itemObject.contact.ContactOffline +=

            new Contact.StatusChangedEventHandler(game.StatusChangedEvent);

        game.setChessColorInfo(ChessColor.WhiteChess);

        //  显示游戏窗口

        game.Show();            

    }

}

    当游戏的双方都启动如图4所示的游戏界面后,两个玩家就可以进行聊天和玩游戏了。

 

6  利用MSN聊天信息发送命令和下棋指令

前面介绍了如何实现两个联系人之间的聊天功能。在本程序中通过在聊天信息中加前缀的方式来发送命令文本。命令文本有两种:

1)普通命令文本:该命令文本的前缀由Game.COMMAND_PREFIX指定。

2)下棋命令文本:该命令文本的前缀由Game.CHESSMESSAGE_PREFIX指定。

    如在下棋时,可以使用如下的代码来发送聊天信息:

    SendInput(CHESSMESSAGE_PREFIX + x.ToString() + ":" + y.ToString());

    其中xy为鼠标点击Canvas的当前坐标。发送到对方的聊天信息为如下的形式:

    ^%@^210:200

    其中“^%@^”为下棋命令的前缀,读者也可以使用其他的字符串,但要比较特殊。

    对方在接收到该聊天信息后,会按着下棋命令来解释它,也就是说,会根据这个信息在棋盘上放一个棋子,而不会在聊天记录中显示这条信息。
  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089