我的意见:用panel实现!~
1、将panel定义成控件数组。
2、在panel中绘制跟隨鼠标移动的图形
3、并添加相应的,使每个被添加的panel在初次被创建后,都能跟随鼠标移动,且在被点击后停留在指定的位置。
此外,还可以在窗体载入时就预先将panel的动态数组,但设为不可视。而鼠标上则另放置一个panel,并设置跟随,当鼠标左键单击时,仅是将鼠标指针所在点上的panel显示出来,并获得跟随鼠标移动的那个panel上的图形。至此,还原跟随鼠标的panel.

解决方案 »

  1.   

    推荐看看dx9.0c for managecode
      

  2.   

    哥们这个东西和
    GDI+ 没什么关系,
    不管俄罗斯方块 或 战旗游戏很多游戏都是这些步骤 循环使用
    Whlie(True) //不用线程加 Whlie(True) 就是 Timer 控件 制造无限循环
    {
         监测鼠标键盘的动作(如鼠标点击了屏幕的那个位置是否是棋子,鼠标是否按下棋子,把移动信息
         保存)     画背景(如棋盘)
         画角色(如棋子,根据上次监测的信息绘图)
         稍加停顿释放cpu (一般50毫秒即可)
    }还有作游戏没有用 控件的,角色多了 你就郁闷了.Mark 和 图像旋转 不用 GDI+ 就可以实现
    而且简单的 2d 游戏也用不到 dx;我有一套代码以前写的 VC++ SDK 写的
    你可以拿来参考也许有用
    http://www.kairuisoft.com/Uploads/block.rar
      

  3.   

    一般都用双缓存处理!
    向这种东西大多都拿 VC 写
    C# 这方面的性能不说了速度还行慢不了多少毕竟处理不会很多,不过吃内存太多
      

  4.   

    TO: maxxxz_cn(<*_*>) 大哥,这个东西不用这么麻烦吧???我只不过要做一个小小小小的类似五子棋的游戏。
      

  5.   

    双缓冲 
    this.SetStyle(ControlStyles.OptimizedDoubleBuffer|ControlStyles.UserPaint|ControlStyles.AllPaintingInWmPaint,true);