建议看一下官方新手教程了解一下什么是变量,什么是字符串。以及看一下keyboard_check_pressed和keyboard_key_press以及instance_create_layer的F1帮助。很明显你是没有跟着做过任何教程就企图上来直接写代码。
三个问题:
1. 你把keyboard_key_press放在if里,我姑且认为你是想判断按下Z键。但是,返回按键是否按下的函数是keyboard_check_pressed而不是keyboard_key_press。后者是执行一个模拟按下Z键的动作。
因此,我后面都以你实际想用的是keyboard_check_pressed函数来说。
--------
2. keyboard_check_pressed函数的参数应当是一个按键的数字ID。此处你填了一个Z。Z是什么?你是想判定Z键,但对于编译器来说,你填Z的意思是指一个名叫Z的变量。但你并没有声明一个名叫Z的变量,因此运行的时候报错告诉你没有名叫Z的变量。
你应当提供给该函数的参数是一个数字:比如3,比如45;或者一个已经赋值的数字变量:比如一个已经赋值为12(写法比如Z=12)的名为Z的变量。这些是说为什么你不应该直接在括号里填一个Z。
现在你知道你需要按键Z的数字ID,但是此处你并不知道数字ID是多少,因此你还需要用到ord函数。(相关说明建议也看下F1帮助)ord函数接受一个字符串作为参数,它会把字符串里的字母转换成对应按键的数字ID。所以你应该把整个ord函数填入keyboard_check_pressed函数的括号内。即使用ord函数的返回值作为keyboard_...函数的参数。
--------
3. instance_create_layer函数的第二个参数应当输入一个layer的数字id或者字符串名称,而你和之前一样只填了个instances_1,它会被识别为一个变量名称。因此你需要为它加上双引号,它应该是一个字符串类型的layer名称。(顺便注意大小写)
--------
综上所述,你的第6行应当写成:
if(keyboard_check_pressed(ord("Z"))) instance_create_layer(x,y,"Instances_1",obj_bullet);