Some things

This commit is contained in:
Gerard Gascón 2023-08-19 23:55:03 +02:00
parent 6ba30e430e
commit e4cc23e7f0
119 changed files with 70085 additions and 682 deletions

View file

@ -0,0 +1,16 @@
using UnityEngine;
namespace Level2 {
public class Bullet2 : MonoBehaviour {
[SerializeField] float speed;
public void AddForce(int direction) {
Rigidbody2D rb = GetComponent<Rigidbody2D>();
rb.velocity = Vector2.right * direction * speed;
}
void OnCollisionEnter2D(Collision2D other) {
Destroy(gameObject);
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 04770de73ff9b8341ba79de1bc002363
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,48 @@
using UnityEngine;
namespace Level2 {
public class Enemy2 : MonoBehaviour {
[SerializeField] float speed;
[SerializeField] LayerMask groundLayer;
[SerializeField] Transform sprite;
[Header("Flipping Pivots")]
[SerializeField] Transform flippingPivotLeft;
[SerializeField] Transform flippingPivotRight;
int _facingDirection = 1;
Rigidbody2D _rb;
// Start is called before the first frame update
void Awake() {
_rb = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void FixedUpdate() {
if (_facingDirection > 0) {
if (Physics2D.OverlapBox(flippingPivotRight.position, flippingPivotRight.localScale, 0, groundLayer)) {
_facingDirection = -1;
sprite.localScale = new Vector3(-1, 1, 1);
}
}else {
if (Physics2D.OverlapBox(flippingPivotLeft.position, flippingPivotLeft.localScale, 0, groundLayer)) {
_facingDirection = 1;
sprite.localScale = Vector3.one;
}
}
_rb.velocity = new Vector2(speed * _facingDirection, _rb.velocity.y);
}
void OnDrawGizmos() {
if(!flippingPivotLeft || !flippingPivotRight) return;
Gizmos.color = Color.red;
Gizmos.DrawWireCube(flippingPivotLeft.position, flippingPivotLeft.localScale);
Gizmos.DrawWireCube(flippingPivotRight.position, flippingPivotRight.localScale);
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2da43d11698bc524ba6cfd8084a24c8c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,22 @@
using Level1;
using UnityEngine;
namespace Level2 {
public class EnemyWeakPoint2 : MonoBehaviour {
Enemy2 _enemy;
void Awake() {
_enemy = GetComponentInParent<Enemy2>();
}
void OnTriggerEnter2D(Collider2D other) {
if (!other.CompareTag("Player")) return;
PlayerMovement2 player = other.GetComponent<PlayerMovement2>();
player.Rb.velocity = new Vector2(player.Rb.velocity.x, player.deathForce);
player.Animator.SetTrigger(PlayerMovement2.Jump1);
Destroy(_enemy.gameObject);
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: fa654fa0bf77d95459b9fa7b1058f043
timeCreated: 1691603524

View file

@ -0,0 +1,90 @@
using UnityEngine;
using UnityEngine.InputSystem;
namespace Level2 {
public class PlayerMovement2 : PlayerStats {
[Header("Shooting")]
[SerializeField] Bullet2 bullet;
[SerializeField] Transform shootingPos;
[Header("Physics")]
[SerializeField] LayerMask groundMask;
[SerializeField] Vector2 feetSize;
float _horizontalInput;
float _xVelocity;
float _accelerationVelocity;
bool _grounded;
int _facingDirection = 1;
PlayerInput _playerInput;
[Header("Animations")]
[SerializeField] Animator animator;
public Animator Animator => animator;
public static readonly int Jump1 = Animator.StringToHash("Jump");
static readonly int XVelocity = Animator.StringToHash("xVelocity");
static readonly int YVelocity = Animator.StringToHash("yVelocity");
static readonly int Grounded = Animator.StringToHash("Grounded");
void Awake() {
_playerInput = new PlayerInput();
_playerInput.Gameplay.Horizontal.started += HorizontalHandler;
_playerInput.Gameplay.Horizontal.performed += HorizontalHandler;
_playerInput.Gameplay.Horizontal.canceled += HorizontalHandler;
_playerInput.Gameplay.Jump.performed += Jump;
_playerInput.Gameplay.Fire.performed += Fire;
}
void Jump(InputAction.CallbackContext obj) {
if (!_grounded) return;
Rb.velocity = new Vector2(Rb.velocity.x, jumpForce);
animator.SetTrigger(Jump1);
}
void Fire(InputAction.CallbackContext obj) {
Bullet2 bullet2 = Instantiate(bullet, shootingPos.position, Quaternion.identity);
bullet2.AddForce(_facingDirection);
}
void HorizontalHandler(InputAction.CallbackContext obj) {
_horizontalInput = obj.ReadValue<float>();
_facingDirection = _horizontalInput > 0 ? 1 : _horizontalInput < 0 ? -1 : _facingDirection;
transform.localScale = new Vector3(_facingDirection, 1, 1);
}
void OnEnable() {
_playerInput.Enable();
}
void OnDisable() {
_playerInput.Disable();
}
// Update is called once per frame
void Update() {
animator.SetFloat(XVelocity, Mathf.Abs(_horizontalInput * speed));
animator.SetFloat(YVelocity, Rb.velocity.y);
animator.SetBool(Grounded, _grounded);
}
void FixedUpdate() {
_grounded = Physics2D.OverlapBox(transform.position, feetSize, 0, groundMask);
_xVelocity = Rb.velocity.x;
_xVelocity = Mathf.SmoothDamp(_xVelocity, _horizontalInput * speed, ref _accelerationVelocity,
acceleration);;
Rb.velocity = new Vector2(_xVelocity, Rb.velocity.y);
}
void OnDrawGizmos() {
Gizmos.color = Color.red;
Gizmos.DrawWireCube(transform.position, feetSize);
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4b0574dd714a6f04598d2c12813ce5fd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: