KojimaIbuki1 / Project-UAS

Project UAS endless runner 2D
MIT License
0 stars 0 forks source link

Kooceng Oren #1

Open KojimaIbuki1 opened 2 years ago

KojimaIbuki1 commented 2 years ago
  1. membuat sprite square untuk player. Menambahkan fungsi jump di script playernya dan menambahkan velocity + gravity. public float gravity; public float Vector2 velocity; Menambahkan script “Input(GetKeyDown(KeyCode.Space))' agar bisa menggunakan Spasi untuk Jump dan menambahkan “Input.GetMouseButtonDown(0))" agar bisa menggunakan Left click di mouse untuk fungsi jump. Menentukan ground heightnya menggunakan "public float groundHeight = 10". Menambahkan jump velocity agar player bisa di udara lebih lama.

  2. Menambahkan speed kepada playernya agar dia bisa berjalan terus menerus tanpa henti (infinite) public float acceleration =10 `` public float maxAcceleration = 10` untuk mengatur akselesrasi dari playernya.

“if (IsGrounded) ( float velocityRatio = velocity.x / maxVelocity: acceleration - maxAcceleration “ (1 - velocityRatio): velocity.x >= acceleration “ Time.fixedDeltaTime: if(velocity.x » = maxVelocity) f velocity.x - maxXvVelocity)

Kode ini berfungsi agar Player bisa meningkatkan kecepatannya di Ground. “public float distance = 0' untuk melihat seberapa jauh player kita sudah berjalan.

  1. Menambahkan UI untuk score kita yaitu meter menggunakan text di canvas. Player player: untuk mendeklarasikan object dari script yang lain ke script yang akan kita pakai. Text distanceText, sama dengan sebelumnya. private void Awake() {player = GameObject.Find("Player").GetComponent<Player>(); distanceText = GameObject.Find("DistanceText").GetComponent<Text>(); tujuannya untuk menggunakan komponen Player dan Distance Text dari script yang sudah ada. void update() int distance = Mathf.FloorToInt(player.distance); distanceText.text = distance + " m"; untuk mengukur jarak yang ditempuh oleh Player.

  2. Menambahkan Parallax background fungsinya agar kita bisa membuat backgroundnya bergerak kiri ke kanan dan di looping jadi terlihat seakan-akan background tersebut tidak habis-habis (infinite). player = GameObject.Find("Player").GetComponent<Player>(); untuk menggunakan komponen player dari script yang sudah ada. void FixedUpdate() { float realVelocity = player.velocity.x / depth; Vector2 pos = transform.position; untuk menentukan seberapa cepat backgroundnya akan bergerak. Semakin dalam depthnya maka semakin kecil velocitynya. pos.x -= realVelocity * Time.fixedDeltaTime; transform.position = pos; menggerakkan objeknya ke ke arah yang berlawanan dari playernya agar terlihat player itu bergerak. if (pos.x <= -50) pos.x = 50; jika backgroundnya bergerak ke x -50 maka dia akan di spawn di x 50 jadi itu memberikan efek seakan" dia bergerak tanpa henti.

mirz1911 commented 2 years ago
  1. Menambahkan Ground letak player berjalan serta Obstacle untuk menghadang player, yang dimana ketika player terdeteksi menyentuh obstacle akan diperlambat. Ground akan spawn di depan player dan digerakan ke arah berlawanan dari karakter pos.x -= player.velocity.x * Time.fixedDeltaTime; kecepatan disesuaikan dengan velocity player. Untuk Obstacle akan di spawn dengan GameObject box = Instantiate(boxTemplate.gameObject); float y = goGround.groundHeight; float halfWidth = goCollidder.size.x / 2 - 1; float left = go.transform.position.x - halfWidth; float right = go.transform.position.x + halfWidth; float x = Random.Range(left, right); Vector2 boxPos = new Vector2(x, y); box.transform.position = boxPos; object box akan muncul di area sesuai dengan ukuran ground yg sudah ada.
mirz1911 commented 2 years ago
  1. Menambahkan UI, menu, dan game over condition. UI keluar setelah player dalam kondisi game over (mati) if(player.isDead) { results.SetActive(true); finalDistanceText.text = distance + " m"; } Game Over Screen tersebut digunakan untuk ketika kondisi game over ter trigger, maka panel Game Over Screen tersebut akan pop up ke layar. Kami juga menampilkan seberapa jauh jarak player yang sudah ditempuh dan tombol quit dan retry. if (player.isDead) { results.SetActive(true); finalDistanceText.text = distance + " m"; ini untuk menunjukkan seberapa jauh jarak player setelah game over condition di trigger. public void Quit() { SceneManager.LoadScene("Menu"); ketika menekan tombol Quit maka kita akan keluar dari game tersebut. public void Retry() { SceneManager.LoadScene("SampleScene"); ketika menekan tombol restart maka kita akan mengulang game tersebut dari awal. Kami juga menambahkan Menu screen untuk game Kooceng Oren ini. public void play() { unityEngine.SceneManagement.SceneManager.LoadScene("SampleScene"); di Menu screen tersebut akan ada tombol play, fungsi kode ini yaitu agar kita bisa menekan tombol play tersebut untuk memainkan gamenya. Ketika kita menekan tombol play tersebut, kita akan dipindahkan ke scene baru dimana game itu terletak.
mirz1911 commented 2 years ago
  1. Menambahkan mouse controller. if (Input.GetMouseButtonDown(0)) { isGrounded = false; velocity.y = jumpVelocity; isHoldingJump = true; holdJumpTimer = 0; } kode digunakan untuk mendapatkan input maose left, ketika di klik maka yg terjadi adalah kondisi yg sama ketika spasi( kontrol utama jump).
mirz1911 commented 2 years ago
  1. Menambahkan enemy. Enemy dibuat dengan mengembangkan skrip Obstacle menambahkan collider pada obyek serta menempatkan kode spawn pada skrip ground, kode yg ditambahkan pd obstacle skrip void OnTriggerEnter2D(Collider2D collision) { player = GameObject.Find("Player").GetComponent<Player>(); if (collision.name == "Player") { player.hitEnemy(); } } akan memanggil event playerhitenemy dimana kemudian player akan dinyatakan dead = true. Kode spawn yg digunakan int enemyNum = Random.Range(0, 2); for (int i = 0; i < enemyNum; i++) { GameObject enemy = Instantiate(enemyCat.gameObject); float y = goGround.groundHeight + 10; float halfWidth = goCollidder.size.x / 2 - 1; float left = go.transform.position.x - halfWidth; float right = go.transform.position.x + halfWidth; float x = Random.Range(left, right); Vector2 enemyPos = new Vector2(x, y); enemy.transform.position = enemyPos; }