北京这边使用一卡通, 做公交用它,做地铁也要用它,我经常想刷卡这个动作,如果在我们游戏开发中如何实现呢?
是不是后面有一个庞大的数据库做支持呢,我一刷卡,然后就从数据库中取出我还剩下多少钱呢,等等,如果是这样想,至少在游戏开发的角度讲,这样思考是错误的
我是这样想的:
一卡通也是个对象,那么它身上挂一个脚本,名叫Card,这个类我是这样想的:
public class Card
{
public float money; //次变量代表卡中还剩下多少钱
public int code=-1; //记录你是从哪一站上车的
public void minus(float value)
{
money-=value; //扣钱
}
}
每一个刷卡机也是一个对象,那么其身上肯定有一个脚本,我们命名为CardMachine,这个脚本中肯定有一个OnTriggerEnter,用于获取与其产生碰撞的卡片,具体脚本我是这样想的:
public class CardMachine
{
public int platformCode ; //用于唯一标识此刷卡机所在的公交站或地铁站
void OnTirggerEnter(Collider other) //获取卡片
{
int mm= other.gameObject.getComponent<Card>().code;
if(mm==-1) //说明是进站
{
other.gameObject.getComponent<Card>().code=platformCode;
}
else //说明是出站
{
float RideCost = calculate(mm,platformCode); //清算一下本次乘车费用
other.gameObject.getComponent<Card>().minus(RideCost); //更新卡内余额
other.gameObject.getComponent<Card>().code=-1; //费用结算完后,一定要将卡片的code变量置为-1;
}
}
void calculate(int start,int end)
{
//计算一下本次消费
}
}
补充说明: 要注意运用面向对象的思想以及正确运用OnTriggerEnter
FR:徐海涛(Hunk Xu) QQ群:386476712