gamemaker吧 关注:13,622贴子:94,839
  • 6回复贴,共1
用的是gm8
我想搞一个角色被选中时描边的效果
我的思路是把精灵涂成描边的颜色,然后在上下左右加一个像素各绘制一个,然后在原位置绘制出正常的精灵
用什么方法可以把精灵的颜色涂成想要的颜色,除了透明色其它完全替换
或者有什么别的方法能实现这种描边的效果


IP属地:广东1楼2020-03-15 19:55回复
    还有一个问题,我要用框选来选择物体,怎么找到所有被框住的物体
    用collision_rectangle检测只能返回一个被框柱的物体


    IP属地:广东2楼2020-03-15 20:44
    回复
      描边:
      最简单的办法:在精灵编辑器里为每个需要的精灵添加一个描边的子图像。运行时运算的办法:使用surface和blend_mode。最好的办法:改用gms2并使用shader。
      框选:
      其中一种办法:使用while循环,每次collision_rectangle之后将当次检测到的实例deactivate,这样该实例就不会参与下一次检测,如此循环,直到collision_rectangle检测不到碰撞,然后把之前所有检测到的实例重新activate。最好的办法:改用gms2,并直接调用collision_rectangle_list。


      IP属地:上海来自Android客户端3楼2020-03-15 22:21
      收起回复
        在把一个精灵绘制到一个表面上时,表面上已有的像素称为目标像素,将要绘制的精灵上的像素称为源像素。绘制的过程实际上是目标像素的rgba值乘一组数,源像素的rgba值乘一组数,再相加。现在我们是要保留精灵的形状,但是换一个颜色:因此源只提供形状,即alpha通道,目标提供颜色,即rgb通道。根据这一目标,找出这样的两组数。
        这些用来乘的数可能的取值,以及其他详情参照F1帮助的draw_set_blend_mode_ext函数的说明。


        IP属地:上海来自Android客户端4楼2020-03-15 22:42
        收起回复