3D塔防游戏实现 2.1 创建炮塔(Feekood语言)
来源:互联网 发布:淘宝格天科技 编辑:程序博客网 时间:2024/04/30 16:55
(Feekood语言介绍与习)
http://www.wooyoogame.com/doc/index(学习)
http://www.wooyoogame.com(首页)
http://www.feekood.com/ (开发页面)
——————————
上一阶段实现的3D地图、2D地图、3D视角控制器。
下来我们一起来创建炮塔,分为两个阶段:
1.创建炮塔精灵按钮、3D模型。
2.管理建炮塔规则(不重叠、高地建设、在3D地图上创建炮塔)。
今天介绍创建炮塔精灵按钮、3D模型:
源码链接: http://pan.baidu.com/s/1dDlJXfj 密码: h2an
在上一阶段的文件夹的基础上新建文件夹“Turret”
1.创建炮塔精灵按钮:
….
脚本:“TurretSpriteBtn.ais”如下:
LoadImage("TurretAImg","Img/TurretA.png"); // 读取图片资源LoadImage("TurretA_hoverImg","Img/TurretA_hover.png"); // 读取图片资源TurretASpriteBtn={ type:"sprite"; // 精灵类型 texture:"TurretAImg"; // 纹理图片资源名 blend:"alpha"; // 设置为透明 x:120; // 显示坐标 y:35; // 显示坐标 width:60; // 显示宽度 height:60; // 显示高度 CenterX:50%; // 中心点坐标x(50%表示图中心) CenterY:50%; // 中心点坐标y(50%表示图中心) IsHitTest:true; //是否被点击 IsMouseDown:=> { //精灵被按下 owner.texture="TurretA_hoverImg"; //改变纹理为选择后的图 };};Create(TurretASpriteBtn); //创建按钮精灵
2.创建3D炮塔:
炮弹平移两大1时————————————-炮弹偏移量正常
……
脚本:“TurretMesh.ais”如下:
LoadImage("TurretImg",":/Wooyoo/tower/turret01.jpg"); //炮塔纹理//炮塔模型LoadModel("TurretA1model",":/Wooyoo/tower/flame_thrower_01.obj","obj");//炮弹模型BulletA=IncludeAisx(":/Wooyoo/window7/ROCKETMOUNT3.aisx");BulletA.action="WALK";//炮弹动画BulletA.Scale={0.2,0.2,0.2};//缩放炮弹模型//炮塔模型数据TurretBaseMesh= { type:"mesh"; //类型 mesh model:"TurretA1model"; //模型为炮塔A texture:"TurretImg"; //模型的纹理 SimplerState:"wrap"; Shader:"phong"; Scale:{0.6,0.6,0.6}; //缩放下模型大小 leftName:""; //存储左炮弹名称 rightName:""; //存储右炮弹名称 x:0; y:0; z:0; OldXZ:{}; //保存炮弹的初始XZ坐标 //isloaded为创建后执行一次的事件,这里为创建左右炮弹 isloaded:=>{ PX=1.25; //右炮弹X平移炮弹的 PX1=-1.25; //左炮弹X平移 PZ=1.3; //炮弹Z平移 //根据炮塔模型的旋转角度来计算左右两炮弹的位置 xx1=PX*cos(pi()*owner.rotation/180)+PZ*sin(pi()*owner.rotation/180); zz1=(-1*PX)*sin(pi()*owner.rotation/180)+PZ*cos(pi()*owner.rotation/180); xx2=PX1*cos(pi()*owner.rotation/180)+PZ*sin(pi()*owner.rotation/180); zz2=(-1*PX1)*sin(pi()*owner.rotation/180)+PZ*cos(pi()*owner.rotation/180); //创建左右两炮塔 owner.leftName=create({x:owner.x+xx1;y:owner.y+1;z:owner.z+zz1;Rotation:owner.Rotation;show:owner.show}::BulletA); owner.rightName=create({x:owner.x+xx2;y:owner.y+1;z:owner.z+zz2;Rotation:owner.Rotation;show:owner.show}::BulletA); //保存初始化的炮弹位置 owner.OldXZ={Lx:owner.x+xx1;Lz:owner.z+zz1;Rx:owner.x+xx2;Rz:owner.z+zz2}; }; //炮塔旋转度变化时刷新炮弹角度与位置 BreakRotation:false; BreakRotation:=>{ PX=1.25; //右炮弹X平移 PX1=-1.25; //左炮弹X平移 PZ=1.3; //炮弹Z平移 //根据炮塔模型的旋转角度来计算左右两炮弹的位置 xx1=PX*cos(pi()*owner.rotation/180)+PZ*sin(pi()*owner.rotation/180); zz1=(-1*PX)*sin(pi()*owner.rotation/180)+PZ*cos(pi()*owner.rotation/180); xx2=PX1*cos(pi()*owner.rotation/180)+PZ*sin(pi()*owner.rotation/180); zz2=(-1*PX1)*sin(pi()*owner.rotation/180)+PZ*cos(pi()*owner.rotation/180); //更新两炮弹的X.Y.Z及旋转度 Getdata(owner.leftName).x=owner.x+xx1; Getdata(owner.leftName).y=owner.y+1; Getdata(owner.leftName).z=owner.z+zz1; Getdata(owner.leftName).Rotation=owner.Rotation; Getdata(owner.rightName).x=owner.x+xx2; Getdata(owner.rightName).y=owner.y+1; Getdata(owner.rightName).z=owner.z+zz2; Getdata(owner.rightName).Rotation=owner.Rotation; //保存初始化的两炮弹位置 owner.OldXZ={Lx:owner.x+xx1;Lz:owner.z+zz1;Rx:owner.x+xx2;Rz:owner.z+zz2}; }; Rotation:0; //旋转度 ScopeRadius: 2; //模型的范围半径 ShowScope: true; //显示模型的范围半径 show:true; //显示 show:-> //控制左右炮弹的显示与隐藏 { Getdata(owner.leftName).show=owner.show; Getdata(owner.rightName).show=owner.show; }; //炮塔移动时炮弹也跟着移动 x:->{ Getdata(owner.leftName).x=owner.x; Getdata(owner.rightName).x=owner.x; }; z:->{ Getdata(owner.leftName).z=owner.z; Getdata(owner.rightName).z=owner.z; };};create(TurretBaseMesh);//创建炮塔// print(TurretMesh);
0 0
- 3D塔防游戏实现 2.1 创建炮塔(Feekood语言)
- 3D塔防游戏实现 5.1 3D炮塔能攻击了(Feekood语言)
- 3D塔防游戏实现 2.2 管理建炮塔规则(Feekood语言)
- 3D塔防游戏实现 1.1 3D地图(Feekood语言)
- 3D塔防游戏实现 1.2 3D地图视角控制工具(Feekood语言)
- 3D塔防游戏实现 4.1 怪物3D空间自动移动(Feekood语言)
- 3D塔防游戏实现 4.2 3D怪物连续刷新(Feekood语言)
- 3D塔防游戏实现 5.2 3D怪物死亡(Feekood语言)
- 3D塔防游戏实现(完) 5.3 游戏信息UI(Feekood语言)
- 3D塔防游戏实现 3 怪物门以及生命塔(Feekood语言)
- 3D塔防游戏实现 1.3 2D小地图控制3D地图视角(Feekood语言)
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(三)之初级炮塔
- unity3D 制作3D塔防游戏(一) 制作地图
- unity3D 制作3D塔防游戏(二) 制作敌人行走路径 无限循环
- 3 .如何使用cocos2d开发一个简单的iphone游戏:旋转炮塔(第二部分)
- 四、创建炮塔
- Cocos2D 2.1: 塔防游戏
- Feekood语言介绍
- Vim 编辑器 初学(1)
- 蓝桥杯 砝码称重 递归 解题报告
- USACO section3.1 Agri-Net题解&代码
- 通过串口收发短消息
- 看数据结构写代码(8)顺序栈的实现
- 3D塔防游戏实现 2.1 创建炮塔(Feekood语言)
- poj-2403-cup
- 2015-你该好好考虑以后了
- POJ 3666 Making the Grade(左偏树)
- socket连接和http连接的区别
- CodeForces #294 div.2 题解
- 如何成为一名黑客!
- TCP三次握手和四次挥手图解
- C++备忘-QT(4)