unity 卡牌聚拢算法

前言

笔者在做项目时遇到了一个要聚拢手牌,像三国杀里的手牌聚拢的效果
大概效果图:

代码

public Dictionary<int, int> level_index ;//全部牌数据,卡牌id-卡牌阶级
//objects是需要洗的牌数
public void Xipai(GameObject[] objects)
{ float readonly position1=-2.28f;
float readonly position2=-3.5f;
float readonly allLength=4.9f;
//float readonly rotation=1f; //旋转间隔系数
int temp;
int counta = objects.Length;
foreach(GameObject t in kapai)
{
if(!objects.Contains(t)){
t.SetActive(false);
}
}
for(int i=0;i<counta;i++)
{
temp = i + 1;
if (!objects[i].activeSelf) objects[i].SetActive(true);
//距离聚拢
//4.9 -0.19
objects[i].transform.position = new Vector3(position2 + allLength / (counta + 1f) * (temp - 1f) + (temp - 1f) * 1f, position1, 0f);
//旋转成扇形
float t = (counta % 2f == 1f ? 1f : 0f);//奇偶判断器
float t1 = counta - t;//奇变偶
float t2 = t1 / 2;//取中间值
if (t == 1f && temp == t2 + 1)
{
objects[i].transform.localEulerAngles = new Vector3(0f, 0f, 0f);
}
else
{
objects[i].transform.localEulerAngles = new Vector3(0f, 0f, (temp <= t2 ? 90f : 0f) - 180f / (counta + 1f) * (temp - (temp > t2 ? t2 + t : 0f)) + (temp <= t2 ? -1f : 1f) * (level_index.Count - counta) * temp * rotation);
}
}
}

unity 卡牌聚拢算法的更多相关文章

  1. 「Unity卡牌自走棋」项目NABCD分析

    项目 内容 这个作业属于哪个课程 2021学年春季软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-初次邂逅,需求分析 在这个课程的目标是 锻炼在大规模开发中的团队协作能力 这个作业在哪个具体方 ...

  2. 算法习题---5-3卡牌游戏(UVa10935)

    一:题目 给定n张卡片,按照1-n的顺序编号,然后拿出一张卡片扔掉,拿出一张卡片放到最后,重复该操作直到只剩1张卡片. 求扔掉的卡片序列和最后剩的卡片的编号. (一)样例输入 7 //卡牌编号从1到7 ...

  3. Unity3D_(游戏)卡牌04_游戏界面

        启动屏界面.主菜单界面.选关界面.游戏界面 卡牌01_启动屏界面 传送门 卡牌02_主菜单界面 传送门 卡牌03_选关界面 传送门 卡牌04_游戏界面    传送门 选关界面效果 (源代码在文 ...

  4. BZOJ 4205: 卡牌配对

    4205: 卡牌配对 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 173  Solved: 76[Submit][Status][Discuss] ...

  5. BZOJ4205卡牌配对——最大流+建图优化

    题目描述 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且两张卡牌类别不 ...

  6. 在WebGL场景中管理多个卡牌对象的实验

    这篇文章讨论如何在基于Babylon.js的WebGL场景中,实现多个简单卡牌类对象的显示.选择.分组.排序,同时建立一套实用的3D场景代码框架.由于作者美工能力有限,所以示例场景视觉效果可能欠佳,本 ...

  7. 【BZOJ4205】卡牌配对

    Description 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且 ...

  8. TCG卡牌游戏研究:《炉石战记:魔兽英雄传》所做的改变

    转自:http://www.gameres.com/665306.html TCG演进史 说到卡牌游戏,大家会联想到什么呢? 是历史悠久的扑克牌.风靡全球的<MTG 魔法风云会>与< ...

  9. 【BZOJ4205】卡牌配对 最大流

    [BZOJ4205]卡牌配对 Description 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值 ...

随机推荐

  1. ES6新特性之箭头函数与function的区别

    写法不同 // function的写法 function fn(a, b){ return a+b; } // 箭头函数的写法 let foo = (a, b) =>{ return a + b ...

  2. IDM 6.37.8 绿色特别版 (4月4日更新)

    Internet Download Manager,全球最流行的下载工具.Internet Download Manager (简称IDM) Windows 平台功能强大的多线程下载工具,国外非常受欢 ...

  3. JQuery获取父,子,兄弟节点

    jQuery.parent(expr) // 查找父节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent ...

  4. es6 数组新增方法

    1.Array.from(): 这个函数的作用是将类似数组的对象转化为数组,比如DOM对象 let arrayLike = {      "0":"TangSir&quo ...

  5. es6 Object对象扩展新方法

    ES6给Object拓展了许多新的方法,如: keys(obj):获取对象的所有key形成的数组     var obj = { foo: 'bar', baz: 42 };  Object.keys ...

  6. #2020征文-开发板#SYS_RUN()和MODULE_INIT()之间的那些事

    接触鸿蒙设备开发有一段时间了,也是时候好好挖一挖鸿蒙设备程序的启动流程了. 破冰问题:鸿蒙设备程序从哪里开始运行的? 相信大家都已经非常清楚了,鸿蒙设备程序需要指定入口函数,具体表现在代码层面就是通过 ...

  7. Springboot websocket学习Demo

    使用的是springboot2.1.4版本 <parent> <groupId>org.springframework.boot</groupId> <art ...

  8. Docker安装rocketmq踩坑指南

    Docker 网络 Docker容器运行的时候有host.bridge.none三种网络可供配置. 默认是bridge,即桥接网络,以桥接模式连接到宿主机:host是宿主网络,即与宿主机共用网络:no ...

  9. Nginx安装配置教程

    转自https://www.cnblogs.com/zhouxinfei/p/7862285.html nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是 ...

  10. STL—— 容器(vector)的数据插入之 insert()

    vector 容器可以使用 vectorName.insert() 方法插入元素,vectorName.insert() 函数一共有4种重载方法: 第一种 insert() 用法:在指定地址插入单个元 ...