公交或地铁上刷卡机的unity实现思路

北京这边使用一卡通, 做公交用它,做地铁也要用它,我经常想刷卡这个动作,如果在我们游戏开发中如何实现呢?
是不是后面有一个庞大的数据库做支持呢,我一刷卡,然后就从数据库中取出我还剩下多少钱呢,等等,如果是这样想,至少在游戏开发的角度讲,这样思考是错误的


我是这样想的:
一卡通也是个对象,那么它身上挂一个脚本,名叫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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值