游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4275|回复: 0

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

[复制链接]

3

主题

5

帖子

3214

积分

论坛元老

Rank: 8Rank: 8

积分
3214
发表于 2015-2-26 19:26:46 | 显示全部楼层 |阅读模式
本帖最后由 games_maker 于 2015-2-26 19:31 编辑

编程语言是feekood语言
心血来潮,准备写个小游戏来玩哈,
第一天花了大约20分钟,做了下面这个效果
按上下左右可以控制狗狗移动(镜头跟随狗狗)



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

  1. clear();
  2. LoadImage("floorImg",":/Samples/Images/floor.png");//读取平台内置图片资源
  3. CreateMipmap("floorImg",16);//创建mipmap图片
  4. Create({type:"box",width:100,height:0.01,length:100,texture:"floorImg",IsAutoTexcoord:true,SimplerState:"wrap"});//创建一个地面
  5. mesh=IncludeAisx(":/Wooyoo/window7/PUG.aisx");//读取wooyoo平台狗狗的模型资源
  6. //狗狗动作支持有
  7. //"RUN,STAND,STAND1,STAND2,STAND3,WALK,STAND4,ATTACKUNARMED,COMBATWOUND,DEATH,"


  8. //创建一个固定视角的摄像头
  9. SetCamera(
  10. camera={
  11.     position:{0,5,-5},
  12.     target:{0,0,0},
  13.     up:{0,0,1},
  14.     AllowVRotation:false; //关闭鼠标横向旋转
  15.     AllowHRotation:false; //关闭鼠标竖向旋转
  16.     AllowZoom: false; //关闭鼠标中间缩放
  17. });


  18. // 设定狗狗的配置信息
  19. myDog=
  20. {
  21.     Action:"stand";
  22.     Rotation:0;
  23.     X:0;
  24.     Y:0;
  25.     Z:0;
  26.     //狗狗的x坐标变化则镜头改变(镜头跟踪狗狗)
  27.     X:->
  28.     {
  29.         camera.position={owner.x,5,owner.z-5};
  30.         camera.target={owner.x,0,owner.z};
  31.     };
  32.     //狗狗的z坐标变化则镜头改变(镜头跟踪狗狗)
  33.     Z:->
  34.     {
  35.         camera.position={owner.x,5,owner.z-5};
  36.         camera.target={owner.x,0,owner.z};
  37.     };

  38.     doing:"stand";//自定义属性,狗狗动作
  39.     moveSpeed:0;//自定义属性,狗狗动作
  40.     rotateAnim:0;//自定义属性,狗狗旋转角度目标
  41.     lastRotateAnim:0;//自定义属性,狗狗上次一保存的旋转角度
  42.     //旋转角度目标变化,则动态的去改变狗狗模型的显示角度
  43.     rotateAnim:->
  44.     {
  45.         owner.rotateSin=sign(owner.lastRotateAnim-owner.rotateAnim);
  46.         owner.rotateOff=abs(owner.lastRotateAnim-owner.rotateAnim);
  47.         case(owner.rotateOff<=180,
  48.         {
  49.             owner.Rotation<:{owner.lastRotateAnim,owner.rotateAnim,300};
  50.         },
  51.         {
  52.             owner.Rotation<:{owner.lastRotateAnim,
  53.             owner.lastRotateAnim+owner.rotateSin*(owner.rotateOff-180),
  54.             ,300};
  55.         });
  56.         owner.lastRotateAnim=owner.rotateAnim;
  57.     };
  58.     //每一帧更新的内置属性,按照doing属性的变化来控制狗狗的模型骨骼动画
  59.     IsUpdated:=>
  60.     {
  61.         owner.moveSpeed=Sys().UsedTime/1000;
  62.         case(owner.doing=="stand",
  63.         {
  64.             owner.Action="stand";

  65.         },owner.doing=="GoUp",
  66.         {
  67.             owner.Action="walk";
  68.             owner.rotateAnim=0;
  69.             owner.Z+=owner.moveSpeed;
  70.         },owner.doing=="GoDown",
  71.         {
  72.             owner.Action="walk";
  73.             owner.rotateAnim=180;
  74.             owner.Z-=owner.moveSpeed;
  75.         },owner.doing=="GoLeft",
  76.         {
  77.             owner.Action="walk";
  78.             owner.rotateAnim=90;
  79.             owner.X+=owner.moveSpeed;
  80.         },owner.doing=="GoRight",
  81.         {
  82.             owner.Action="walk";
  83.             owner.rotateAnim=270;
  84.             owner.X-=owner.moveSpeed;
  85.         });
  86.     };
  87. }::mesh;
  88. //创建一个狗狗实例
  89. Create(myDog);


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


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


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


  113. KeyReceive(keyInfo);//接受按键消息
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 19:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表