Silverlight+WCF 新手实例 象棋 游戏房间列表(十三)

Silverlight+WCF 新手实例 象棋 游戏房间列表(十三),第1张

概述转帖地址:http://www.cnblogs.com/cyq1162/archive/2010/07/12/1775774.html   热到飚血了。。。 上次创建了一房间了,现在要创建多个房间了。 我们像添加一个Chess类来创建很多棋子一样,现在创建一个Game类来创建很多房间: Code文件夹右键,添加新建项->类->Game.cs,同样的,名称空间去掉[.Code]   namespac @H_419_6@转帖地址:http://www.cnblogs.com/cyq1162/archive/2010/07/12/1775774.HTML

@H_419_6@ 

@H_419_6@热到飚血了。。。

@H_419_6@上次创建了一房间了,现在要创建多个房间了。

@H_419_6@我们像添加一个Chess类来创建很多棋子一样,现在创建一个Game类来创建很多房间:

@H_419_6@Code文件夹右键,添加新建项->类->Game.cs,同样的,名称空间去掉[.Code]

@H_419_6@ 

namespace  NewChessproject
{
    
///   <summary>
    
///  游戏 by 路过秋天
    
///   </summary>
     public   class  Game
    {

    }
}
@H_419_6@ 

@H_419_6@先上一个房间列表的属性:

  public  List < GameRoom >  GameRoomList // 房间列表
        {
            
get ;
            
set ;
        }
@H_419_6@ 

@H_419_6@接下来就是一个创建房间的方法了:

public   voID  CreateGameRoom( int  count)
        {
            GameRoomList 
=   new  List < GameRoom > ();
            
int  margin  =   40 ;
            
int  GameRoomWIDth  =   120 ;
            
int  pageWIDth  =   800 ;
            
int  x  =   0 , y  =   0 ;
            Point location;
            
for  ( int  i  =   0 ; i  <  count; i ++ )
            {
                
// 计算房间位置
                x  =  i  %  (pageWIDth  /  GameRoomWIDth)  *  GameRoomWIDth  +  margin  +  i  %  (pageWIDth  /  GameRoomWIDth)  *   20 ;
                y 
=  (i  /  (pageWIDth  /  GameRoomWIDth))  *  GameRoomWIDth  +  margin;
                location 
=   new  Point(x, y);
                GameRoom GameRoom 
=   new  GameRoom(i  +   1 , location, GameRoomWIDth);
                GameRoomList.Add(GameRoom);
            }
        }
        
public   voID  DrawIn(Panel control)
        {
            
for  ( int  i  =   0 ; i  <  GameRoomList.Count; i ++ )
            {
                GameRoomList[i].DrawIn(control);
            }
        }
@H_419_6@ 

@H_419_6@由于我们设置了页面总宽为800,我们需要到Room.xaml设置一下Canvas的宽和高:

@H_419_6@ 

< GrID  x:name ="LayoutRoot"  Background ="White"  WIDth ="800"  Height ="600"  HorizontalAlignment ="left"  VerticalAlignment ="top"  margin ="0,0" >

    
</ GrID > @H_419_6@OK,现在我们回到Room.xaml.cs代码里,创建30个房间:

public   partial   class  Room : UserControl
    {
        
public  Room()
        {
            InitializeComponent();
            
// GameRoom gameRoom = new GameRoom(1, new Point(0,0), 120);
            
// gameRoom.DrawIn(LayoutRoot);
            Game game  =   new  Game();
            game.CreateGameRoom(
30 );
            game.DrawIn(LayoutRoot);
        }
    }
@H_419_6@ 

@H_419_6@运行F5,看下效果:

@H_419_6@

@H_419_6@怎么全挤在一堆了,我查了查,调了调,又比较了一下,发现:

@H_419_6@原来GrID布局和Canvas布局的区别。

@H_419_6@因此,把GrID标签换成Canvas标签就行了:

< Canvas  Background ="White"  Height ="600"  HorizontalAlignment ="left"  margin ="0,0"  name ="LayoutRoot"  VerticalAlignment ="top"  WIDth ="800"   >
    
</ Canvas > @H_419_6@ 

@H_419_6@OK,再F5运行,房间正常了:

@H_419_6@

@H_419_6@OK,列表出来了。

@H_419_6@下一节开始要讲WCF通讯,同时后面章节会对之前的很多代码会做调整与补充。

@H_419_6@现在提供第3部分代码:点此下载

总结

以上是内存溢出为你收集整理的Silverlight+WCF 新手实例 象棋 游戏房间列表(十三)全部内容,希望文章能够帮你解决Silverlight+WCF 新手实例 象棋 游戏房间列表(十三)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存