vb做偷菜游戏,土地是斜的,不好确认点击事件是在哪个土地上

[复制链接]
查看11 | 回复5 | 2012-8-16 16:36:21 | 显示全部楼层 |阅读模式
标准的解决办法是用API函数依据土地的轮廓建立一个区域(CreatePolygonRgn),然后判断鼠标点击的点是否在这个区域内(PtInRegion)。还有一个办法是给土地图片做一个同样大小的单色的遮罩图片,就是说有土地的地方设为黑色,无土地的地方设为白色(也可以是其他的不同的两种颜色),当然这个遮罩图片是隐藏的,然后根据点击的坐标再映射到这个遮罩图片上,如果该点是黑色就表示点的是这块土地。...
回复

使用道具 举报

千问 | 2012-8-16 16:36:21 | 显示全部楼层
获取坐标(x,y)取得坐标范围 四个点a,b,c,d
a d
o
b
c判读一个点在四边形内直接判读它到每条边的距离 小于另外两个点到边的距离由于你这个是平行四边形 所以直接小于另外一个点的距离就行了点p 到ad的距离 小于c 到ad的距离点p到ab的距离 小...
回复

使用道具 举报

千问 | 2012-8-16 16:36:21 | 显示全部楼层
一个办法,把土地的图片改成正方形还有一个办法,十分麻烦,显示图片不能用图片控件,所有土地用API函数(例如Bitblt)画到窗体上或一个Picturebox上,然后再Form_MouseDown事件中,分析X和Y的坐标,看看是落在哪一块土地上。...
回复

使用道具 举报

千问 | 2012-8-16 16:36:21 | 显示全部楼层
好强大啊,这都能做出来啊能不能通过捕捉颜色来确定?如果不是黑的就把图片置后?我也不知道,瞎说的,....................
回复

使用道具 举报

千问 | 2012-8-16 16:36:21 | 显示全部楼层
反正是自己做的弄成正的不就解决了换个点击事件也可以解决...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行