小球和瓶子的游戏逻辑如何实现
来源:8-4 UIHall的制作

精慕门7500262
2021-07-07
如何控制小球在各个瓶子间移动?
写回答
1回答
-
王海波
2021-07-09
你好同学,
被点击的瓶子会派发事件
BottleSelected
之后会根据当前的状态来选择是浮起小球还是落下小球
浮起小球:
可查看BottleSelected的MakeFloat方法
GameModel.Instance.FloatObject = bottleModel; BallModel ballModel = GameModel.Instance.FloatObject.BallModels.Peek(); //将小球放到瓶子的DropPoint位置 ballModel.BallGo.transform.position = bottleModel.DropPoint.transform.position; Rigidbody2D rigidbody2D = ballModel.BallGo.GetComponent<Rigidbody2D>(); rigidbody2D.gravityScale = 0;
落下小球请查看BallRelease.cs内的代码
BallRelease.Execute的这一段
if (releaseEvent.BottleModel.CanPush(releaseEvent.BallModel)) { BallModel bm = GameModel.Instance.FloatObject.BallModels.Pop(); releaseEvent.BottleModel.BallModels.Push(bm); //根据释放的瓶子的DropPoint来设置小球的位置 releaseEvent.BallModel.BallGo.transform.position = releaseEvent.BottleModel.DropPoint.transform.position; rigidBody2D.gravityScale = Constants.BallGravityScale; GameModel.Instance.FloatObject = null; if (releaseEvent.BottleModel.IsSameColor() && releaseEvent.BottleModel.BallModels.Count == Constants.MaxBallCount) { EventDispatcher.Instance.Invoke(Define.Event.BottleComplete); } }
00
相似问题
小球怎么设置显示在瓶子内部
回答 1
老师有没有游戏运行成功的最终视频
回答 1