请问一个对象的不同实例在绘制变量的时候点,击只显示一个实例的
gamemaker吧
全部回复
仅看楼主
level 2
比如说我做的一个创造物体的游戏。。。当鼠标点击按钮时创造一个跟随鼠标移动的的实例,鼠标点任意空挡位置放置物体,这些被创造的物体都有属性,会因为不同情况发生不同变化。当鼠标点击选中这些物体的时候会显示这些数值变量。但我当我点击第二个物体的时候就会发生数值重叠。有没有什么好办法能解决重叠的问题,请大家帮帮我。
2019年10月26日 05点10分 1
level 9
给5块钱我教你[滑稽]
2019年10月26日 12点10分 2
level 15
含义不明,什么叫做“数值重叠”[歪头]
2019年10月27日 14点10分 3
就是同一个obj创造的两个实例绘制的变量位置是一样的,我希望是点击哪个实例就绘制哪个实例的变量,而不是两个实例的变量都显示。
2019年10月29日 04点10分
吧务
level 13
歧义太多,直接回答的话大概率答非所问。如果有谁能答对的话我会指认那个是托。
请在附带截图的情况下修正一下问题,或者按下面的格式填空、选择及修正错误:
1(目的部分)、游戏的目的是点击“按钮”时生成一个跟随鼠标的A,再点击空白处时将把A放在对应位置。不同的A具有不同的属性信息。
2(做法部分)、按钮是一个object,A是一个object,在按钮的<鼠标按键>/<鼠标按下>/<鼠标抬起>事件中生成一个<仅仅在按钮的绘制事件里生效的“幻象”>/<A的实例但用自身变量标记状态是尚未放置>/<一个“未放置的A”的实例>,并在再次空白位置<鼠标按键>/<鼠标按下>/<鼠标抬起>时创建A。在A的<鼠标按键>/<鼠标按下>/<鼠标抬起>事件里通过<自身绘制>/<在当前位置创建数值显示板>/<创建显示板并让“显示板.x=x”的方式来显示到自身位置>/<把已有的显示板移动到当前位置来进行显示>/<删除已有显示板并在当前位置生成新显示板>的方式来显示自身数据。
3(矛盾部分)、当游戏运行至场内同时存在两个A时,点击第一个A可以正常显示数值板,点击第二个A的时候(<请在这里填写A是否重合,是先创建的移动了还是先点击的移动了>),(<请在这里填写数值板是否重合,是先创建的移动了还是先点击的移动了>),(<请在这里填写数值板上的文字是否重合,是先创建的移动了还是先点击的移动了>)。
2019年10月28日 01点10分 4
就是同一个obj创造的两个实例绘制的变量位置是一样的,我希望是点击哪个实例就绘制哪个实例的变量,而不是点击第二个实例的时候第一个实例的变量还在。
2019年10月29日 04点10分
同时如果同一个obj创造3个4个等实例的时候就会依次点击这些实例就会重叠显示这些实例的变量。怎么样才能点击哪个实例就绘制显示哪个实例的变量。
2019年10月29日 04点10分
吧务
level 13
如果自己说不清楚“自己是怎么做的”,也没法在引导下说清楚的话,只能让你发源文件了。
2019年10月29日 07点10分 5
我今天中午下班回去搞个源文件发给你吧!我还有好多疑问和不懂要请教您呢?
2019年10月30日 03点10分
我是这样写的,首先地图上设置一个obj1按钮,当鼠标左键按下的时候在地图上任意位置上创造一个obj2实例,接下来就是那个被创造的obj2的事件了,请往下看
2019年10月30日 03点10分
在obj2里首先创造事件里设置两个变量id.a1=0 a2=0,然后鼠标左键按下事件里写。。if id.a1=0{all.a1=0} if id.a1=0{id.a1=1;exit} if id.a1=1 {id.a1=0;exit} 然后绘制事件里写。。draw_sprite(spr1,0,x,y) if id.a1=1{draw_text(100,100,a2)}
2019年10月30日 03点10分
level 9
只能帮你到这里了[滑稽]
2019年10月29日 14点10分 6
level 1
那你原来是怎么干的
2019年10月30日 02点10分 7
我是这样写的,首先创造事件里设置两个变量id.a1=0 a2=0,然后鼠标左键按下事件里写。。if id.a1=0{all.a1=0} if id.a1=0{id.a1=1;exit} if id.a1=1 {id.a1=0;exit} 然后绘制事件里写。。draw_sprite(spr1,0,x,y) if id.a1=1{draw_text(100,100,a2)}
2019年10月30日 03点10分
第一,声明实例变量用不着id.前缀 第二,变量名应该根据意义设定,a1a2无意义 第三,if后表达式应该加括号 第四,if后表达式应该用双等判等 第五,语句应该以分号结束 第六,语义不明,看不出和你的需求的联系
2019年10月30日 03点10分
吧务
level 13
根据答复得到的数据,经过7层的楼中楼阐述的一般规则和本人习惯优化一下格式,再稍微优化一点逻辑,LZ的代码是这样:
--obj2--
创建事件:
a1=0;
a2=0;
左键按下:
if(a1==0){
all.a1=0;
a1=1;
}else{
a1=0;
}
绘制事件:
draw_sprite(spr1,0,x,y);
if(a1==1){
draw_text(100,100,a2);
}
那么现在至少有一件事清楚了,就是无论哪个obj2,在需要显示a2时,都会显示在100,100这个坐标上,毕竟是draw_text(100,100,a2);而不是draw_text(x,y,a2);。但目前尚未发现“两个obj2同时进行显示”的可能性。“重合”这个描述的来源还是不明所以。
2019年10月30日 05点10分 8
[滑稽]人心难测啊
2019年10月30日 06点10分
@大四象 说真的,一开始我还以为有个独立的显示板object…反正新人们说不清楚问题这种事咱已经习惯了。
2019年10月30日 09点10分
1