- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
这是我调整过的:?draw_sprite(spr_life_bar_foreground,0,x,120);?draw_sprite_part(spr_life_bar,0,0,96*(1-life/maxlife),114,96*(life/maxlife),0,120+96*(1-life/maxlife));
我通常用:?draw_sprite_ext();那个对对碰中的分数进度条和时间进度条都是这样画出来的。呵。
GM版山寨弹性贪吃蛇教程
首先,创建两个精灵,并将其大小设定为:16*16。这里,我就用了两个方块,一个红色的,一个绿色的。为了使它们看起来不一样而已。其实,这里用一个精灵也是完全可以的。?然后,开始创建对象。首先一个是玩家控制的对象,或者叫做:蛇头。能移动的一个东西。起个名字就叫:obj_play吧。该对象有四个事件。分别是:create、alarm0、step、outside?room。咱们依次分别慢慢地道来。
在create事件中加入以下代码:?old_x=0; //老的X坐标?old_y=0; //老的Y坐标?c_num=0; //吃到食物的数量?m_s=0; //移动状态标记?在这里只需要定义这些变量就OK了。?然后是step(步伐)事件,这里的主要作用是判断键盘输入,并给移动状态标记赋值,并启动时钟事件。代码如下所示:?if(keyboard_key=vk_left) //如果有左键按下?{?if(m_s!=3) //如果移动状态不为右?{?m_s=1; //移动状态为左?alarm[0]=1; //启动时钟?}?}?if(keyboard_key=vk_up)?{?if(m_s!=4)?{?m_s=2;?alarm[0]=1;?}?}?if(keyboard_key=vk_right)?{?if(m_s!=1)?{?m_s=3;?alarm[0]=1;?}?}?if(keyboard_key=vk_down)?{?if(m_s!=2)?{?m_s=4;?alarm[0]=1;?}?}?接下来是alarm0时钟事件。其作用是将当前坐标赋值给老坐标变量,并移动到新的位置。这里有以下代码:?old_x=x; //老坐标获取值?old_y=y;?switch?m_s //判断移动状态?{??case?1: //向左??{??x-=16;??break;??}??case?2: //向上??{??y-=16;??break;??}??case?3: //向右??{??x+=16;??break;??}??case?4: //向下??{??y+=16;??break;??}?}?alarm[0]=10; //间隔时间启动时钟?最后是超出边界事件:?这里没有用代码,拖入了一个display?message动作,输出:you?lose。拖入了一个restart?game动作。当对象超出边界时,显示信息,并重启游戏。?好!obj_play对象已经弄完了。?下面是需要吃的食物的对象,起个名字叫:obj_f。该对象有create、collision、step事件。?create事件作用如下:?follow=0; //定义跟随标记?old_x=0; //定义老坐标X?old_y=0; //定义老坐标Y?my_turn=0; //定义我的顺序标记?与obj_play的碰撞事件是改变吃到食物的数量,改变我的顺序标记,并根据“蛇头”的移动方向及碰撞情况,改变跟随标记的值,并且创建一个新的??对象的实例。代码如下:?if(follow=0) //如果没有跟随?{?obj_play.c_num+=1; //吃到食物数增加1?my_turn=obj_play.c_num; //我的顺序获取值?switch?obj_play.m_s //检测obj_play移动状态?{??case?1: //如果为向左??{??if(obj_play.xx+16) //如果横坐标小于当前食物横坐标+16??{??follow=1; //改变跟随标记??}??break;??}??case?2:??{??if(obj_play.yy+16)??{??follow=1;??}??break;??}??case?3:??{??if(obj_play.xx-16)??{??follow=1;??}??break;??}??case?4:??{??if(obj_play.yy-16)??{??follow=1;??}?
文档评论(0)