我比较好奇的是位置判定是怎么做的,按照我的理解应该是个像素地址列表吧
鼠标在那里就读取相应的信息
http://bbs.saraba1st.com/2b/images/back.gif
应该用的是颜色遮罩,读取的是颜色信息。。。 引用第5楼md2000于2011-02-15 14:59发表的:
我比较好奇的是位置判定是怎么做的,按照我的理解应该是个像素地址列表吧
鼠标在那里就读取相应的信息
images/back.gif
两种,猴岛小英雄是坐标,大多数gal是颜色的rgb代码 引用第5楼md2000于2011-02-15 14:59发表的 :
我比较好奇的是位置判定是怎么做的,按照我的理解应该是个像素地址列表吧
鼠标在那里就读取相应的信息
images/back.gif
当时可能不是这么做的,因为这样需要在内存中放一个和屏幕大小相同的“像素点击属性”列表,如果屏幕中最多只有16种可点击物体,则640*400的屏幕需要125KB的内存存放这个列表。当时基本内存只有640KB,扩展内存一般只有1MB,所以这125KB还是挺大的一个浪费。
比较节省内存的方法是只保存一组矩形位置信息,鼠标点击时判断鼠标是否位于某个矩形内,是采取该矩形相关的操作。因为一个矩形只要4个数字就能描述(左上角坐标和长宽),所以节省内存得多。
第二种方法的缺点是可点击位置只能以矩形为单位,不能足够精确。但如果屏幕上的图像是用一个个带有透明背景的小图片拼成的,则用第二种方法可以精确到像素,只要把每个矩形和每个可点击的小图片关联,并检查是否点击到小图片的非透明部分就行了。
--------------------
说到底不做边框发亮不是编程能力不够,而是当时没有这个观念,用户操作界面的设计思想没现在这么先进。 PC98监禁的某个小岛害得我上MSL求助。。。。。。还好解决了。。。。。。 楼上正解,现在有些图形界面还是这样做的。
页:
[1]