tweak: change input mini game

master
tiendat3699 2024-04-16 12:03:46 +07:00
parent 2127e328b3
commit 34e5dc9f2b
3 changed files with 9 additions and 11 deletions

View File

@ -1246,6 +1246,7 @@ MonoBehaviour:
GameTime: 60
_basket: {fileID: 1254852291}
_lerp: 10
_speed: 20
_spawnTime: 0.5
_bombChange: 0.2
_spawnArea:

View File

@ -18,6 +18,7 @@ namespace GadGame.Manager
public void UpdateScore(int value)
{
_score += value;
if (_score <= 0) _score = 0;
OnScoreUpdate?.Invoke(_score);
}

View File

@ -15,6 +15,7 @@ namespace GadGame.MiniGame
public int GameTime;
[SerializeField] private Transform _basket;
[SerializeField] private float _lerp;
[SerializeField] private float _speed;
[SerializeField] private float _spawnTime;
[SerializeField, Range(0,1)] private float _bombChange;
[SerializeField] private Rect _spawnArea;
@ -30,16 +31,14 @@ namespace GadGame.MiniGame
[SerializeField] private Pool<Bomb>[] _bombPools;
private GameManager _gameManager;
private Camera _camera;
private float _spawnTimer;
private void Start()
{
_gameManager = GameManager.Instance;
_gameManager.OnPause += Pause;
_gameManager.OnResume += Resume;
_gameManager.OnScoreUpdate += OnScoreUpdate;
_camera = Camera.main;
SetState<PlayingGameState>();
_time.text = GameTime.ToString();
}
@ -73,16 +72,13 @@ namespace GadGame.MiniGame
{
//640x480;
var inputData = DataReceiver.Instance.DataReceived.PosPoint;
var inputNormalize = new Vector2(inputData.x / 640, inputData.y / 480);
var input = new Vector2();
input.x = Mathf.Lerp(0, _canvas.pixelRect.width, inputNormalize.x);
input.y = -Mathf.Lerp(0, _canvas.pixelRect.height, inputNormalize.y);
if (input != Vector2.zero)
var inputNormalize = new Vector2(inputData.x / 640, -inputData.y / 480).normalized;
if (inputNormalize != Vector2.zero)
{
var mousePos = input;
var pos = _camera.ScreenToWorldPoint(mousePos);
var dirMove = inputNormalize;
var currentPosition = _basket.position;
pos.x *= -1;
var pos = currentPosition + (Vector3)dirMove * (_speed * Time.deltaTime);
pos.x = Mathf.Clamp(pos.x, -2.25f, 2.25f);
pos.y = currentPosition.y;
pos.z = 0;
_basket.position = Vector3.Lerp(currentPosition, pos, _lerp * Time.deltaTime);