11 KiB
创建一个游戏项目
打开Lakeshore,点击菜单“文件”、“新建项目”,输入游戏名称和游戏尺寸,点击确定。新创建的游戏项目会自动创建一个场景和对应的事件表。如下图所示:
导入图片素材
在“项目”面板中右击“图片”文件夹,点击“添加图片素材”,在弹出的文件选择对话框中选择需要导入的图片。如下图所示:
在“项目”面板中点击导入的图片可以直接预览图片内容和尺寸。如下图所示:
向场景中添加精灵
选择“项目”中图片文件夹下的一张背景资源,将它拖动到场景中,就创建了一个精灵,在右侧属性栏中设置其名称为“滚屏背景”,并设置其它属性,如下图所示:
添加行为
点击属性栏最下面行为列表中的“添加行为”按纽,弹出“行为列表”属性框,并双击选择“滚屏行为”,即可将“滚屏行为”绑定到”滚屏背景“上,如下图所示:
绑定滚屏行为后,我们在行为列表中设置其滚屏方向为向下,如下图所示:
通常情况下,为了达到无缝滚屏,需要弄两张前后或者上下能够无缝连接的图片,这里的素材很特殊,上下达到了无缝连接,这里我们按住”Ctrl“键,鼠标拖动”滚屏背景“复制一份”滚屏背景“,设置其复制的”滚屏背景“基本属性,如下图所示:
认真对比上面两张图,你会发现,第一张图中的”滚屏背景“y坐标为-768,正好第一张”滚屏背景“连接起来,另外,复制之后,原图与复制的图名称一样,且如果原图添加了滚屏行为,那么,复制后的图也会添加上滚屏行为。
点击 Lakeshore 菜单栏“文件”-“运行”就可以在默认的浏览器中预览(这里以chrome为例测试),预览中你会发现背景已经能够实现无缝滚屏了,如下图所示:
添加红色战机
按住“项目”面板中图片文件夹下的红色战机,将它拖拽到场景中,选择“红色战机”精灵,可以直接拖拽精灵上的控制点来调整精灵的位置和旋转角度。在右侧属性栏中给精灵命名为“红色战机”,如下图所示:
添加行为
选中当前“红色战机”,在属性栏的最下方“行为列表”中点击“添加行为”。这里我们双击“拖拽行为”即可将“拖拽行为”绑定到此战机上。添加了拖拽行为后,此战机即可在手机上进行拖拽运动了,如下图所示:
然后,点击 Lakeshore 菜单栏“文件”-“运行”预览,用鼠标按住“红色战机”拖拽即可测试。如下图所示:
添加子弹
按照添加红色战机的操作步骤,选择一个子弹素材,拖拽到舞台。在基础属性栏中取名为”红色战机子弹“。按照“添加行为”操作给这个精灵添加“子弹行为”和“出边界销毁行为”,并在“行为列表”设置子弹行为参数中”设置角度“为”否“,其它默认。如下图所示:
添加事件
为了能够让”红色战机“发射子弹,因此,我们需要通过事件来将其进行关联起来,双击”“项目”栏中的事件表“MainSceneEventSheet”,在事件表中创建“红色战机发射子弹事件”,如下图所示:
添加条件
为了能够让“红色战机”能够持续的发射子弹,那么,我们需要添加相应的条件,比如0.1秒发射1颗子弹,选择“红色战机发射子弹事件”,点击面板右侧条件栏下的“添加条件”,在弹出的条件目标面板中选择“System”,如下图所示:
然后在“条件列表”选择“每多少秒执行一次”,如下图所示:
在弹出的属性设置面板中设定时间间隔为0.1,即1秒钟发射10颗子弹,如下图所示:
添加动作
注意这个时间单位为秒,设置好条件之后,就需要设置其动作,这里的动作为在“红色战机”所在的位置创建子弹,点击面板右侧条件栏下的“添加动作”,在弹出的动作目标面板中选择“红色战机”,如下图所示:
双击“红色战机”后,弹出“动作列表”,在动作列表中选择“制造”,如下图所示:
双击“制造”动作,在弹出的制造属性面板中选择“红色战机子弹”,并设置其垂直偏移值为-80,注意,这里的“水平偏移”与“垂直偏移”是相对坐标,即相对于红色战机的坐标,单位为像素,如下图所示:
点击 Lakeshore 菜单栏“文件”-“运行”进行预览,即可以看到红色战机连续发射子弹。如下图所示:
图26显示子弹是横向发射,这是因为我们没有设置子弹发射的角度,我们需要添加设置角度的动作,点击“添加动作”,弹出动作目标选择对话框,选择“红色战机子弹”,如下图所示:
双击“红色战机子弹”,弹出动作列表对话框,在动作列表中选择“设置角度”,如下图所示:
双击“设置角度”,弹出设置角度属性面板,修改角度为-90度,即方向朝上,如下图所示:
点击 Lakeshore 菜单栏“文件”-“运行”进行预览,即可以看到子弹已经按照正确的方向朝上发射了。如下图所示:
添加敌机与敌机子弹
按照“红色战机”与“红色战机子弹”操作方法,我们分别添加“敌人战机”和“敌人战机子弹”并给它们设定“子弹”行为和“出边界销毁”行为(注意:”出边界销毁“行为有助于提升游戏性能,避免内存泄露)。并设置“敌人战机”行为列表中“设置角度”为“是”,角度为90度,使其朝下,同样,设置“敌人战机子弹”行为列表中“设置角度”为是,角度为90度。即“敌人战机”与“敌人战机子弹”运动方向朝下,如下图所示:
同样为了让敌人能发射敌人子弹,在MainSceneEventSheet中添加事件“敌人战机发射敌人子弹事件”,并给事件添加条件“0.2秒1次”,动作“发射敌人战机子弹”,如下图所示:
点击 Lakeshore 菜单栏“文件”-“运行”进行预览,即可以看到如下图所示:
为了让“敌人战机”可以被我方的“红色战机子弹”打到,并产生伤害计算,那么,我们需要给“敌人战机”与“红色战机子弹”分别设置“参与碰撞”为是,选择“敌人战机”,在面板右侧的其它属性栏中设置参与碰撞为“是”,同样,对“红色战机子弹”也一样,如下图所示:
为了给“敌人战机”赋予生命,我们给“敌人战机”添加自定义属性hp,选择“敌人战机”,在属性栏“自定义属性”处点击“添加属性”,弹出自定义属性对话框,设置属性名称为:hp,值类型为:number,值为10,即“敌人战机”初始具有10点血。如下图所示:
为了让“红色战机子弹”碰撞到“敌人战机”时“敌人战机”减血,即每碰撞一次”敌人战机”的hp减1,那么,我们需要创建新的事件“红色战机子弹碰到敌人战机时减血事件”,并添加条件,如下图所示:
双击“红色战机子弹”,在弹出的条件列表中选择“碰撞”,如下图所示:
双击“碰撞”,在弹出的碰撞属性对话框中选择“敌人战机”,如下图所示:
此时,我们添加动作,让敌人战机hp减1,如下图所示:
双击“减法运算”,在弹出的“减法运算”属性框选择自定义属性hp,并设置值为1,如下图所示:
到目前为止,“红色战机子弹”如果碰到“敌人战机”将会减血,但是为了能够在实际效果中预览,我们还需要添加事件“敌人战机血量小于等于零后销毁事件”,并添加条件:如果“敌人战机”hp小于等于0,如下图所示:
双击“比较实例变量”,在弹出的属性对话框中,设置实例变量为hp,运算符为小于或等于,值为0,如下图所示:
并添加动作“销毁”,先选择“敌人战机”,如下图所示:
双击“红色战机”,选择动作“销毁”,如下图所示:
此时,“敌人战机”当血量hp小于或等于0时销毁,如下图所示:
预览我们发现,“红色战机子弹”会穿透“敌人战机”,此时,我们需要给“红色战机子弹”添加一个碰到“敌人战机”销毁的动作,选择“红色战机子弹碰到敌人战机时减血事件”这个事件,点击“添加动作”,在动作目标面板中双击选择“红色战机子弹”,并添加“销毁”动作,预览效果,发现“红色战机子弹”打“敌人战机”时不会穿透了,如下图所示:
一般情况下,战机类游戏都会有许多源源不断的敌人,因此,我们这里需要创建一个源源不断的敌人事件,事件名为:在场景中每2秒钟创建1个敌人事件,如上面所讲方式添加条件:每2秒钟执行一次,然后添加动作,点击“添加动作”,双击选择“System”,并选择“创建对象”,如下图所示:
双击“创建对象”,在弹出的创建对象属性面板中选择对象类型为“敌人战机”,在水平坐标中输入Math.random()*500,垂直坐标中输入Math.random()*200表达式,代表创建的敌人战机位置在水平坐标0~500,垂直坐标0~200之间,如下图所示:
预览,发现每隔2秒创建一个“敌人战机”,如下图所示:
至此,游戏Demo完毕,但为了游戏性能与内存,我们需要给“红色战机子弹”、“敌人子弹”、“敌人战机”都添加“出边界销毁行为”。
最后,将我们做完的游戏发布即可,选择“文件”-“发布”即可发布我们的游戏,会弹出对话框提示我们要将我们的发布的游戏保存的路径,如下图所示: