狗狗历险记制作过程(第二天创建树木山石)

晚上写代码真是很清静,听着音乐,真是很有灵感,废话少说了,几天都没研究脚本了

wooyoogame里面的有很多游戏素材,这个对于我这样的屌丝游戏开发者真是一个福音

今天编写博客编写代码,写了一个小时了,准备睡觉了,给大家看个这一个小时的编程效果

按上下左右键可以移动狗狗,在线演示点这里



http://www.wooyoogame.com/resource/5703


http://www.wooyoogame.com/resource/5793


http://www.wooyoogame.com/resource/5682


我随便选了三颗树,只要在平台里面点击使用,就可以使用这些游戏素材了,真是太方便了

后面就是把这些素材运用到我的游戏当中了

创建一个新脚本CreateTrees.ais

tree1=LoadModelPack(":/Wooyoo/小米爱手机/树20.zip",1);
tree2=LoadModelPack(":/Wooyoo/小米爱手机/树111.zip",1);
tree3=LoadModelPack(":/Wooyoo/小米爱手机/树2.zip",0.5);
set(400,create({x:rand(-50,50),z:rand(-50,50),Ration:rand(360),Scale:{1,1,1}*rand(2),IsAutoClip:true}::tree1));
set(400,create({x:rand(-50,50),z:rand(-50,50),Ration:rand(360),Scale:{1,1,1}*rand(2),IsAutoClip:true}::tree2));
set(1000,create({x:rand(-50,50),z:rand(-50,50),Ration:rand(360),Scale:{1,1,1}*rand(2),IsAutoClip:true}::tree3));
</pre><img src="https://img-blog.csdn.net/20150302221405860" alt="" /><p></p><p>然后在我们的MoveDog.ais里面使用Include("CreateTrees.ais")就可以调用这个脚本了</p><p><span style="background-color: rgb(240, 240, 240);">clear();</span></p><pre name="code" class="objc">include("CreateTrees.ais");//引起创建树的脚本
LoadImage("floorImg",":/Samples/Images/floor.png");//读取平台内置图片资源
CreateMipmap("floorImg",16);//创建mipmap图片
//创建一个地面
Create({type:"box",width:100,height:0.01,length:100,texture:"floorImg",IsAutoTexcoord:true,SimplerState:"wrap"});
mesh=IncludeAisx(":/Wooyoo/window7/PUG.aisx");//读取wooyoo平台狗狗的模型资源
//狗狗动作支持有
//"RUN,STAND,STAND1,STAND2,STAND3,WALK,STAND4,ATTACKUNARMED,COMBATWOUND,DEATH,"

//创建一个固定视角的摄像头
SetCamera(
camera={
    position:{0,7,-7},
    target:{0,0,0},
    up:{0,0,1},
    AllowVRotation:false; //关闭鼠标横向旋转
    AllowHRotation:false; //关闭鼠标竖向旋转
    AllowZoom: false; //关闭鼠标中间缩放
});

// 设定狗狗的配置信息
myDog=
{
    Action:"stand";
    Rotation:0;
    X:0;
    Y:0;
    Z:0;
    //狗狗的x坐标变化则镜头改变(镜头跟踪狗狗)
    X:->
    {
        camera.position={owner.x,7,owner.z-7};
        camera.target={owner.x,0,owner.z};
    };
    //狗狗的z坐标变化则镜头改变(镜头跟踪狗狗)
    Z:->
    {
        camera.position={owner.x,7,owner.z-7};
        camera.target={owner.x,0,owner.z};
    };
    
    doing:"stand";//自定义属性,狗狗动作
    moveSpeed:1.5;//自定义属性,狗狗动作
    rotateAnim:0;//自定义属性,狗狗旋转角度目标
    lastRotateAnim:0;//自定义属性,狗狗上次一保存的旋转角度
    //旋转角度目标变化,则动态的去改变狗狗模型的显示角度
    rotateAnim:->
    {
        owner.rotateSin=sign(owner.lastRotateAnim-owner.rotateAnim);
        owner.rotateOff=abs(owner.lastRotateAnim-owner.rotateAnim);
        case(owner.rotateOff<=180,
        {
            owner.Rotation<:{owner.lastRotateAnim,owner.rotateAnim,300};
        },
        {
            owner.Rotation<:{owner.lastRotateAnim,
            owner.lastRotateAnim+owner.rotateSin*(owner.rotateOff-180),
            ,300};
        });
        owner.lastRotateAnim=owner.rotateAnim;
    };
    //每一帧更新的内置属性,按照doing属性的变化来控制狗狗的模型骨骼动画
    IsUpdated:=>
    {
        owner.finalMoveSpeed=Sys().UsedTime/1000*owner.MoveSpeed;
        case(owner.doing=="stand",
        {
            owner.Action="stand";
            
        },owner.doing=="GoUp",
        {
            owner.Action="walk";
            owner.rotateAnim=0;
            owner.Z+=owner.finalMoveSpeed;
        },owner.doing=="GoDown",
        {
            owner.Action="walk";
            owner.rotateAnim=180;
            owner.Z-=owner.finalMoveSpeed;
        },owner.doing=="GoLeft",
        {
            owner.Action="walk";
            owner.rotateAnim=90;
            owner.X+=owner.finalMoveSpeed;
        },owner.doing=="GoRight",
        {
            owner.Action="walk";
            owner.rotateAnim=270;
            owner.X-=owner.finalMoveSpeed;
        });
    };
}::mesh;
//创建一个狗狗实例
Create(myDog);

//定义按键事件信息
keyInfo=
{
    ID:0;//事件编号[内置属性]
    Key:"";//按键内容[内置属性]
    IsKeyDown:false;//按键按下事件[内置事件]
    IsKeyUp:false;//按键弹起事件[内置事件]

    //定义事件触发器,按下按键则运行表达式
    IsKeyDown:=>
    {
        // 按上下左右控制狗狗的动作
        case(owner.key=="UP",myDog.doing="GoUp",
            owner.key=="DOWN",myDog.doing="GoDown",
            owner.key=="LEFT",myDog.doing="GoLeft",
            owner.key=="RIGHT",myDog.doing="GoRight");
    };

    //定义事件触发器,弹起按键则运行表达式
    IsKeyUp:=>
    {
        myDog.frame=0;
        myDog.doing="stand";
    };
};

KeyReceive(keyInfo);//接受按键消息


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值