Open Game Maker 2D 教程 - 第五讲





在第五讲里,我们会学习如何创建一个带有自定义属性和自定义事件的精灵。


 


步骤一、创建一个新的空游戏

请按照第一讲中的步骤一来创建一个新的空游戏。




步骤二、添加图片资源到游戏中


请先从以下路径中下载我们将会使用到的图片:


gameres/button.bmp


请参考第四讲中的步骤二,把 "button.bmp" 添加到游戏中。










这里要选择的是 "button.bmp" 文件:





这次我们不设置图像的色键:





点击 "OK" 按钮完成添加操作:







步骤三、 新建一个带有自定义属性的精灵


打开精灵列表,点击 "Add" 按钮开始添加新精灵:




在弹出的精灵编辑窗口中,只需要输入"Sprite Name",然后点击在"Custom properties" 选项卡上的 "Add" 按钮:





在弹出的对话框中,给精灵设置一个名叫 "Caption" 的字符串型属性,并把这个属性的初始值(默认值)设为 "Label" 。





回到精灵编辑对话窗口中后,点击"OK" 按钮就可以创建一个没有动画,但带有一个自定义属性的新精灵:





在精灵列表中选中新建的 "Label" 精灵,并双击他的 "OnDraw" 事件:





然后 "OnDraw" 事件的脚本代码就会自动生成:





复制一下蓝色的代码并粘贴到 "OnDraw" 事件中去:

    int iSprId = OGE_GetSpr();
   
    int iPosX = OGE_GetPosX(iSprId);
    int iPosY = OGE_GetPosY(iSprId);
   
    int iScreen = OGE_GetScreenImage();
    OGE_SetPenColor(iScreen, 0);
   
    Label label(iSprId);
   
    OGE_DrawText(iScreen, label.Caption, iPosX, iPosY);


请注意:粗体的文本内容正展示如何访问精灵的自定义数据。





点击 "Save file" 按钮保存脚本文件。





把 "Label" 精灵拖放到场景中去:








同时,我们也可以试一下修改精灵对象中的自定义属性的值:





点击 "Run scene" 按钮来测试一下效果:





然后会得到以下的运行结果界面:











步骤四、新建一个带有自定义事件的精灵

请参考第四讲中的第三个步骤, 使用"button"图像来创建一个名叫"Button"的新精灵,该精灵属于"Panel" 类型,只有一个动画,这个动画里也只有一个帧。

在创建的过程中,我们需要在 "Custom events" 选项卡中点击 "Add" 按钮来添加自定义事件:





在弹出的窗口中输入一个名叫 "OnClick" 的自定义事件:





最后返回到精灵编辑窗口,点击"OK"来创建这个带自定义事件的精灵:




在精灵列表中选中 "Botton" 精灵,双击他的 "OnMouseUp" 事件:




添加以下代码到 "OnMouseUp" 事件中:

    Button btn;
    btn.DoClick();





然后再双击 "OnClick" 事件,并添加以下代码:

    OGE_Print("Say hello!\n");





点击 "Save file" 按钮来保存脚本文件:



把"Button"精灵拖放到场景中,并双击他的 "OnClick" 事件:








往 "OnClick" 事件中添加以下代码:

    OGE_CallBaseEvent();
    OGE_Print("Say goodbye!\n");





点击 "Save all files" 按钮来保存全部修改过的文件:







然后点击 "Run scene" 来运行测试一下:



如果一切正常的话,当你点击游戏中的按钮时,你可以在控制台中看到下图所示的输出内容:








好了,第五讲就到这里了。如果你对这一讲有任何问题,请到论坛上发帖。


谢谢大家,我们下次再见。