狗狗历险记制作过程(第一天控制3d模型移动)

转http://blog.csdn.net/games_maker/article/details/43953879

心血来潮,准备写个小游戏来玩哈,

第一天花了大约20分钟,做了下面这个效果

访问网站可直接运行 http://www.feekood.com/?path=:/tiantian/KeyMove/MoveDog.ais

按上下左右可以控制狗狗移动(镜头跟随狗狗)

注册www.wooyoogame.com的账户,然后进http://www.wooyoogame.com/resource/5373使用狗狗的模型资源了

clear();
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,5,-5},
    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,5,owner.z-5};
        camera.target={owner.x,0,owner.z};
    };
    //狗狗的z坐标变化则镜头改变(镜头跟踪狗狗)
    Z:->
    {
        camera.position={owner.x,5,owner.z-5};
        camera.target={owner.x,0,owner.z};
    };

    doing:"stand";//自定义属性,狗狗动作
    moveSpeed:0;//自定义属性,狗狗动作
    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.moveSpeed=Sys().UsedTime/1000;
        case(owner.doing=="stand",
        {
            owner.Action="stand";

        },owner.doing=="GoUp",
        {
            owner.Action="walk";
            owner.rotateAnim=0;
            owner.Z+=owner.moveSpeed;
        },owner.doing=="GoDown",
        {
            owner.Action="walk";
            owner.rotateAnim=180;
            owner.Z-=owner.moveSpeed;
        },owner.doing=="GoLeft",
        {
            owner.Action="walk";
            owner.rotateAnim=90;
            owner.X+=owner.moveSpeed;
        },owner.doing=="GoRight",
        {
            owner.Action="walk";
            owner.rotateAnim=270;
            owner.X-=owner.moveSpeed;
        });
    };
}::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);//接受按键消息
时间: 2024-10-06 05:23:50

狗狗历险记制作过程(第一天控制3d模型移动)的相关文章

3ds Max建模,Blend设计,VS2008控制WPF的3D模型例子

原文:3ds Max建模,Blend设计,VS2008控制WPF的3D模型例子 3ds Max建模,Blend设计,VS2008控制WPF的3D模型例子   所用的软件 3ds Max 9.0,Microsoft Expression Blend,VS 2008 例子下载 例子:http://files.cnblogs.com/wxwinter/wxd_wpf_3d.rar 例子中的文件说明   应用场景 在以前作过的一个系统(MRP)中,需要 用工作流监视设备(工作坏境),并将设备(工作坏境)

HTML5 3D爱心动画及其制作过程

之前有看到过很多基于HTML5或者CSS3制作的爱心动画,不过基本上都是2D平面的,今天在国外的网站上看到一个基于HTML5 3D的爱心动画,对于HTML5爱好者来说,不免兴奋了一把.下面将分享一下这个3D爱心动画的实现过程,可以一起来看看. 当然你也可以先看一下DEMO演示 这么好看的HTML5爱心动画,我们当然要把源代码分享给大家,下面是小编整理的源代码,主要是HTML代码和CSS代码. HTML代码: <div class=’heart3d’> <div class=’rib1′&

[PCB制作] 1、记录一个简单的电路板的制作过程——四线二项步进电机驱动模块(L6219)

前言 现在,很多人手上都有一两个电子设备,但是却很少有人清楚其中比较关键的部分(PCB电路板)是如何制作出来的.我虽然懂点硬件,但是之前设计的简单系统都是自己在万能板上用导线自己焊接的(如下图左),复杂的都是模块拼接的(如下图右):      工作中原理图和PCB也有专门的工程师来制作,因此我对这一块了解比较少.而最近闲来无事,又因为手头上确实少一个四线二项步进电机驱动模块.起初是在淘宝上找了很久才找到一个适合的,结果实验了一下午还是不行:又考虑自己在万能板上焊接,可是发现该模块外围需要10个左

从零开始教你制作cocos2dx-3.0 版本FlappyBird(可上架版本)(包括添加广告等)完整制作过程

本文原创:转载请注明地址:http://blog.csdn.net/zp522123428/article/details/29357851 一.coco2dx-3.0环境搭建 这个网上很多参考教程也属于基础部分我就不再敷述,这里给大家提供csdn博客上的大家可以参考一下,我大概看了一下比较全面了: 参考地址:http://blog.csdn.net/aa4790139/article/details/8086635 二.coco2dx-3.0下创建项目 1.进入coco2dx-3.0的目录下,

“我的个人志”制作过程

我的个人志: 2015.12.17记 制作过程:暂分为四个部分:第一页: 第一页:(主页君,INDEX):内容:视频,图画,新闻热点第二页:(趣点屋,SHARE-life-): 第三页:(时光廊,PHOTO-wall):内容:个人生活照,历史小故事,意境,我欣赏,自己制作第四页:(绣我秀,ABOUT-me):内容:个人简介. 初步大概制定时间:2015.10.08,整理于10.09 网页内容css框架类似于W3C的样子 404页面效果: 学习和收集资料中,资料还太少了,整个结构内容板块还没有定下

linux引导过程和服务控制

引导过程和服务控制 要求: ? 设置Linux系统每次开机后自动进入字符模式界面. 步骤: 编辑/etc/inittab文件,将默认运行级别修改为3.如图所示: ? 使用ntsysv工具同时调整2.3.4.5运行级别中的服务状态,关闭下列服务:anacron.atd.avahi-daemon.Bluetooth.cups.firstboot.hidd.hplip.ip6tables.iptables.isdn.mcstrans.mdmonitor.nfslock.pcscd.portmap.re

linux的引导过程和服务控制

引导过程和服务控制 要求: ? 设置Linux系统每次开机后自动进入字符模式界面. 步骤: 编辑/etc/inittab文件,将默认运行级别修改为3.如图所示: ? 使用ntsysv工具同时调整2.3.4.5运行级别中的服务状态,关闭下列服务:anacron.atd.avahi-daemon.Bluetooth.cups.firstboot.hidd.hplip.ip6tables.iptables.isdn.mcstrans.mdmonitor.nfslock.pcscd.portmap.re

Linux系统管理09——引导过程与服务控制

Linux系统管理09--引导过程与服务控制 一.引导过程总览 1.init进程 ·由linux内核加载运行/sbin/init程序 ·是系统中的第一个进程,所有进程的父进程 ·PID(进程标记)号永远为1 2.Upstart启动方式 初始化配置分散存放,响应不同的启动事件 参数 说明 /etc/inittab 配置默认运行级别 /etc/sysconfig/init 控制tty终端的开启数量.终端颜色方案 /etc/init/rcS.conf 加载rc.sysinit脚本,完成系统初始化任务

峰盛包装:食品包装袋的制作过程

包装袋充斥在我们生活中的方方面面,而在各大超市中我们常常看到各种各样的食品包装袋,有人就会想这些漂亮的袋 子是怎么做出来的呢?下面就让汇盈包装为您介绍食品包装袋的制作过程! 其实,食品包装袋的制作过程分为5个过程: 1.食品包装袋设计:在公司接到客户的包装订单后,公司可以根据客户对袋子的要求设计一个符合产品特性.漂亮. 吸引消费者购买欲望的袋子版面图案,因此,当您要求汇盈设计袋子版面时,你可以浏览我们的“汇盈包装提供免费的 食品包装袋设计”. 2.制版:当确定好袋子的设计图稿后,就要根据图稿的一