求教:draw事件与create事件的区别
gamemaker吧
全部回复
仅看楼主
level 4
HR_Small_Rui 楼主
想问问大佬draw事件和create事件有啥区别吗?一直搞不懂qwq,上网上查教程也没查着qwq
2020年07月23日 14点07分 1
level 15
差多了[小乖]一个是实例创建时的事件,只执行一次;一个是绘制事件,通常每一步后都执行
2020年07月23日 15点07分 2
吧务
level 13
看到这问题的感觉,就像是拿一幅蒙娜丽莎和一幅清明上河图摆到一起玩找不同。如果是找相同的话倒是简单一点(都是图)。
2020年07月24日 02点07分 3
level 9
不是问create和step?你干脆直接查“所有事件的执行顺序”算了[呵呵]
2020年07月24日 03点07分 4
step和draw倒是可以用执行顺序来解释一下,但create是步循环体系外的东西啊
2020年07月24日 03点07分
level 4
HR_Small_Rui 楼主
记得之前去问一个大佬有啥区别,结果被狠狠嘲讽了一遍[泪]
我只是有些笨而已啊[泪]
2020年07月24日 06点07分 5
level 4
HR_Small_Rui 楼主
var i;
draw_set_color(c_white);
draw_rectangle(0,0,639,479,0);
draw_set_color(c_blue);
draw_rectangle(0,0,639,479,1);
draw_set_font(fArial);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_text(320,32,"BackPack");
for(i=0;i<10;i+=1)
{
if(global.ItemNumbers[i]!=0)
{
draw_set_color(c_ltgray);
draw_rectangle(32+32*i1,160,64+32*i1,192,0);
draw_set_color(c_blue);
draw_rectangle(32+32*i1,160,64+32*i1,192,1);
i1+=1;
}
}
draw_set_color(c_black);
draw_set_halign(fa_left);
draw_set_valign(fa_top);
这段代码用来绘制背包界面时,我发现用draw事件可以,但为什么用create事件就不行呢?啥反应也没有[泪]
PS:之前在另一个obj里用了按下E键时instance_create(objBackpackWindow)
objBackpackWindow是背包物体名。
2020年07月24日 06点07分 6
绘制必须在绘制事件内完成。建议看一下软件自带的F1帮助,看不懂英文的话百度有中文版。里面说的很清楚了。如果还弄不明白,建议从官方教程开始自学,不要上来就直接抄别人的代码。
2020年07月24日 08点07分
@sunyubokkkkk 自己看着教程打的qwq,不算抄别人的代码吧qwq
2020年07月24日 14点07分
@HR_Small_Rui 唉我不是说抄袭那种意思啦,我是说,就算是看教程,也尽量要弄清楚教程里为什么那么写,而不是看到教程里某一段代码有某个功能,就直接把那一段照着打到其它你想要那个功能的地方。
2020年07月24日 15点07分
嗯,其实我只是突发奇想,想看看draw与create有什么区别,就把draw里的代码复制到create事件里,发现什么效果都没有,这才过来求教的qwq 我比较喜欢看代码在不同的位置都有什么不同的效果qwq
2020年07月25日 10点07分
level 11
[滑稽]看到这个问题的时候我是有点懵的…draw和create事件有什么关联吗?…我是这么想的…
没想到你只是想知道create和draw事件是干啥的啊
2020年07月24日 13点07分 7
level 6
create事件是创造事件,就是你这个代码所在实例在被创造的那一步执行一次的代码
draw本质上应该算是一个动作,在你定义的条件下绘制一个精灵啊、图像啊或者是分数生命之类的。
我也才刚开始学,我的理解就是这个,有理解错的地方望路过的大神指教
2020年07月25日 11点07分 8
吧务
level 13
嗯,一看帖子的回复数量增加了,果然有些地方可以纠正:
关于 @RTX院长 提到的create是事件而draw是动作的说法……在GM系的引擎里始终是“事件驱动动作”这个逻辑,于是多数时候“触发draw事件”和“执行draw事件的动作”通常指的是同一件事,大家也懒得区分。不过通常create只执行一次,而draw“一直执行”倒是真的。
关于 @sunyubokkkkk 提到的绘制必须在绘制事件内完成……其实不是这样,但新人阶段的话还是暂时记住这句话比较好。详细情况咱在“关于步循环”那帖里进行过一些分析(但可能关键楼层被度娘隐藏到仅自己可见了)。
=====================================
create和draw的相同点:都是GM系引擎的事件-动作逻辑的组成部分
create和draw的不同点主要是触发条件不同:create仅在实例创建时执行一次,使用instance create代码、房间编辑器里摆放那些“object”在房间初始化时以及instance_change在参数设定为特定值时;而draw在步循环里,每个step都会尝试触发,当visible是true时触发次数和房间内开启view的数量一致(如果未开启view则为1),而visible为false时不触发(即使里面的代码不是绘制动作)。
2020年07月26日 00点07分 9
谢谢,现在已经理解了[太开心]
2020年07月26日 08点07分
谢补充,我确实没说清楚。当时那样回复是觉得对新人比较好理解。
2020年07月26日 09点07分
level 1
[滑稽]?
2020年07月27日 04点07分 10
你来捣什么乱?快去更新你的漫画去啊[滑稽]
2020年07月27日 07点07分
1