| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
Reworld,下班在家制作游戏,1500万奖金等你拿编程微博 - 发现编程界的新鲜事
共有 3733 人关注过本帖
标题:如何动态生成扫雷的界面
只看楼主 加入收藏
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2786
专家分:14619
注 册:2014-10-16
结帖率:95.45%
  已结贴   问题点数:20  回复次数:7   
如何动态生成扫雷的界面
在做扫雷游戏中如何不用拖拽按钮的方式而是动态生成的方式绘制扫雷界面
搜索更多相关主题的帖子: 动态 如何 游戏 
2015-05-12 17:00
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2786
专家分:14619
注 册:2014-10-16
  得分:0 
就是用户可以指定雷区大小

一片落叶掉进了回忆的流年。
2015-05-12 17:03
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:138
帖 子:1507
专家分:7641
注 册:2014-5-19
  得分:20 
用户指定雷区大小的话,这样看行不行.

const int TOP_MARGIN=10;const int LEFT_MARGIN=10;
const int WIDTH=10;
HWND tile[x][y];//x,y接受用户的输入值
for(int idx_x=0;idx_x<x;idx_x++)
{
      for(int idx_y=0;idx_y<y;idx_y++)
      {
            tile[x][y]=CreateWindow(TEXT("BUTTON"),TEXT(" "),
WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,LEFT_MARGIN+idx_x*WIDTH,TOP_MARGIN+idy_y*WIDTH,WIDTH,WIDTH,hwnd,(HMENU)((idy_y*x)+idx_x),NULL,NULL);
//这一行设的控件ID号是0到x*y-1的一维序列号,便于区分按钮点击事件点上了哪个按钮.并将按钮设置为矩阵.
      }
}
2015-05-12 18:52
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:138
帖 子:1507
专家分:7641
注 册:2014-5-19
  得分:0 
我用的是API,MFC的语法我搞不太清楚,你要用MFC编写的话还需要自己改一下语法
2015-05-12 18:52
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2786
专家分:14619
注 册:2014-10-16
  得分:0 
看来要动态内存申请来分配一个二维数组来指定雷区

一片落叶掉进了回忆的流年。
2015-05-12 19:46
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:138
帖 子:1507
专家分:7641
注 册:2014-5-19
  得分:0 
以为你是要考虑怎么动态生成界面. 如果只是说内存如何分配的话应该还容易一些. 二维数组产生后用指定次数循环随机抽样来设置哪些元素有地雷
2015-05-13 11:19
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2786
专家分:14619
注 册:2014-10-16
  得分:0 
界面也要动态生成,问题是在界面大小变化时其他控件的大小和位置如何变化

一片落叶掉进了回忆的流年。
2015-05-13 13:08
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:138
帖 子:1507
专家分:7641
注 册:2014-5-19
  得分:0 
这好像有点难。我只能想到利用二维数组的横纵下标来设置其他控件的横纵坐标。主要是针对雷区右方和下方的控件。比如一块砖宽度为WIDTH,右方控件的横坐标就设为WIDTH * x + MARGIN. 即便这样,还是得设置用户输入值的上限,不能让用户无节制地输入尽可能大的雷区。并且我觉得这样做的不确定因素有点多,不应该推荐。最好是所有命令都在窗体上方做成菜单,其他控件一个都不用。虽然我这种方法不能算解决问题,只能算回避问题,但还比较利于实际操作。
  如果非要做出控件,并照顾控件的位置,确实想不出什么好办法。
2015-05-13 17:04
快速回复:如何动态生成扫雷的界面
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.075277 second(s), 7 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved