| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4229 人关注过本帖, 2 人收藏
标题:求助!!!
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏(2)
已结贴  问题点数:100 回复次数:149 
求助!!!
下面是我写的一个象棋的界面
图片附件: 游客没有浏览图片的权限,请 登录注册


棋盘是在程序里画的 棋子是PS搞的 然后在主窗口裁剪了一个圆形区域 用BitBlt把棋子传输到这个区域中
右边的按钮 的功能先不搞 现在我的主要问题是怎么实现棋子的移动。
大致有这么个流程:
1. 在棋子上点击鼠标 产生一个鼠标点击事件 系统怎么相应这个事件 让这个棋子位图被锁定 并在其周围
显现出 一个断裂的方框 (表示此棋子被选中)?
2.移动鼠标到下一个位置(适当的位置) 点击鼠标(鼠标的坐标不一定在十字交叉的地方 而是在一个有效范
围内就相应, 不在有效范围内就不相应) 系统怎么相应这个事件 产生一个棋子位图重新放置的裁剪区域?
3.系统相应第2步后 棋子移动 怎么在同时让原位置被棋盘的相应部分覆盖,并不出现闪烁?
4.红 黑 方 吃子如何实现?
搜索更多相关主题的帖子: 象棋 鼠标 
2012-05-14 14:08
ljk694145447
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:44
专家分:114
注 册:2011-11-29
收藏
得分:11 
有容给力啊,写好程序之后给我们欣赏欣赏吧
2012-05-14 15:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:11 
方向出偏差,再想一想怎么处理图像吧。不是什么都要在程序中画的,你不会把棋子放在图像文件中装入内存各个“设备”中的么,非要截图不可?

授人以渔,不授人以鱼。
2012-05-14 16:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
吃子,做gif动画不好么,你还想弄到多复杂才满意?

授人以渔,不授人以鱼。
2012-05-14 16:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序逻辑与显示界面分离,这是首要之务,不要什么都堆在一起。首先做好棋谱的记录,按照棋谱摆界面,把运子过程记录到棋谱中,这个做好了,你所说的那些都不是问题。棋谱上当前是什么棋子,就从外部图片数据库中取出对应棋子图像填到需要的区域,哪有人截图搬运的。

棋盘上每个交叉点,都是一个“棋格对象”,鼠标进入离开这个对象的区域、里面呈现什么图像,都是对象的类代码处理,能处理任何一个格子,自然就能处理全部90个格子。难道你要根据鼠标的绝对坐标来确定处理对象?

[ 本帖最后由 TonyDeng 于 2012-5-14 16:43 编辑 ]

授人以渔,不授人以鱼。
2012-05-14 16:34
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:11 
以下是引用TonyDeng在2012-5-14 16:34:45的发言:

程序逻辑与显示界面分离,这是首要之务,不要什么都堆在一起。首先做好棋谱的记录,按照棋谱摆界面,把运子过程记录到棋谱中,这个做好了,你所说的那些都不是问题。棋谱上当前是什么棋子,就从外部图片数据库中取出对应棋子图像填到需要的区域,哪有人截图搬运的。

棋盘上每个交叉点,都是一个“棋格对象”,鼠标进入离开这个对象的区域、里面呈现什么图像,都是对象的类代码处理,能处理任何一个格子,自然就能处理全部90个格子。难道你要根据鼠标的绝对坐标来确定处理对象?


程序逻辑与显示界面分离  +1  不解释

为游戏狂~~!!    大家努力编哈!
2012-05-14 18:05
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 3楼 TonyDeng
老大 棋盘是自己在主窗口上画的 棋子是BMP图片 60 * 60 大小的正方形 我是在棋盘(主窗口上)创建一个圆形裁剪区域然后把棋子图片BitBlt上去的 截图也是我这样的吗?还不很清楚这些方式啊

o 在说下 我贴的这个图是我做完一个棋子后写的程序 因为我还不会移动棋子 网上看了N多网页没找到相关的介绍 所以就发帖来求助 如果PS完所有的棋子我就能都把他们贴到想要的位置上 我现在的问题是 怎么让棋子BMP图片相应鼠标的点击 然后移动  也就是当我点击一下鼠标时 系统怎么知道我点击的这个地方贴了个位图 如果根据WM_LBUTTONDOWN 怎么获取这个位图的句柄? 说的更细点就是 比如我上面那个图 当我点击 ‘帅’上面 立刻出现一个MessageBox(…“你点击的是帅”…) 如果点击其他地方就提示 MessageBox(…“你点击的地方没有棋子”…) 要实现这个效果 怎么和HBITMAP (棋子句柄)发生联系?

[ 本帖最后由 有容就大 于 2012-5-14 18:34 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-05-14 18:06
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 4楼 TonyDeng
…… GIF动画怎么搞啊 要说在窗口上画图我还能理解点

梅尚程荀
马谭杨奚







                                                       
2012-05-14 18:07
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 5楼 TonyDeng
程序代码:
难道你要根据鼠标的绝对坐标来确定处理对象?

棋谱上当前是什么棋子,就从外部图片数据库中取出对应棋子图像填到需要的区域,哪有人截图搬运的。


我现在的想法是这样的
先划出90个圆形区域(半径可以比30小一点) 对应棋盘每个交叉点 然后根据鼠标的当前坐标 判断是否落在90个有效区域内 再判断落在那个有效区域内 然后根据这个确定是那个交叉点 然后再实施相关操作 这样想有问题吗?

[ 本帖最后由 有容就大 于 2012-5-14 18:24 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-05-14 18:21
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 6楼 smallmoon521
解释下吧 我一脑壳浆糊现在

梅尚程荀
马谭杨奚







                                                       
2012-05-14 18:22
快速回复:求助!!!
数据加载中...
 
   



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

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