cari
RumahPeranti teknologiindustri ITMembina klon pong dalam perpaduan: UI dan permainan

Tutorial ini meningkatkan klon pong asas yang dibina dalam perpaduan, menambah estetika pong klasik, mekanik permainan yang lebih baik, dan UI bergaya retro. Mari kita menaik taraf permainan pong kita!

Bahagian 2: REVAMP REVAMP & GAMEPLAY TENGAH

tutorial ini dibina pada klon pong sebelumnya. Muat turun projek dari GitHub atau Lengkapkan Bahagian 1 sebelum meneruskan. Demo kerja dan permainan yang lebih baik juga disediakan.

Penambahbaikan utama:

  • Gaya klasik: import sprite hitam dan putih, menyesuaikan piksel per unit (hingga 64) untuk visual retro yang sahih. Tukar latar belakang kamera utama menjadi hitam, dan kemas kini dayung dan bola sprite dengan sewajarnya. Buat pembahagi pusat menggunakan pelbagai sprite putih berskala.
  • Perlanggaran yang dipertingkatkan: Memperbaiki pengendalian perlanggaran bola untuk mengira sudut kesan pada paddles, menjadikan melantun lebih realistik. Ini melibatkan pengemaskinian kaedah BallController skrip OnCollisionEnter2D untuk menggunakan fungsi launchAngle. Ingatlah untuk menandakan pemain dan musuh dengan tepat.
  • Pergerakan musuh yang lebih baik: Pergerakan dayung musuh yang lancar menggunakan pengiraan berasaskan masa, meningkatkan respons dan cabaran. Ubah suai skrip EnemyController untuk menggunakan InvokeRepeating("Move", .02F, .02F), menyesuaikan kelajuan dan masa untuk kelancaran optimum. Tambah batas untuk mengelakkan dayung AI dari skrin luar. Skrip BoundsController harus menetapkan semula kedudukan dayung musuh selepas bola dimusnahkan.
  • menu jeda retro: Buat menu jeda menggunakan font piksel tersuai (seperti Silkscreen). Sertakan butang "Reset" dan "Main Menu" dengan fungsi yang sesuai. Skrip UIManager menguruskan berhenti dan menyambung semula, bersama -sama dengan menunjukkan/bersembunyi elemen menu jeda. Pastikan untuk menandakan elemen menu jeda dengan "ShowonPause".
  • Menu Utama Dinamik: Reka bentuk menu utama dengan permainan simulasi AI di latar belakang. Duplikat adegan permainan utama, keluarkan unsur -unsur yang tidak perlu, dan tambahkan tajuk dan butang "Main". Gunakan skrip AutoPlayer dan AutoEnemy (serupa dengan musuh AI tetapi dengan penyesuaian untuk kelajuan dan masa) untuk mengawal paddles AI di menu utama.
  • sistem pemarkahan: Melaksanakan sistem pemarkahan yang menjejaki skor pemain dan AI, memaparkannya pada UI (menggunakan skrip PointCounter), dan mengakhiri permainan apabila had skor (mis., 7 mata ) dicapai, memaparkan permainan melalui skrin. Skrip GameOver memaparkan pemenang. Ingatlah untuk menandakan permainan di atas elemen dengan "Showonfinish".

Building a Pong Clone in Unity: UI and Gameplay

Coretan kod:

(BallController.cs - OnCollisionEnter2D & Launchangle)

void OnCollisionEnter2D(Collision2D col) {
    if (col.gameObject.tag == "Enemy") {
        float y = launchAngle(transform.position, col.transform.position, col.collider.bounds.size.y);
        Vector2 d = new Vector2(1, y).normalized;
        rig2D.velocity = d * speed * 1.5F;
    }
    if (col.gameObject.tag == "Player") {
        float y = launchAngle(transform.position, col.transform.position, col.collider.bounds.size.y);
        Vector2 d = new Vector2(-1, y).normalized;
        rig2D.velocity = d * speed * 1.5F;
    }
}

float launchAngle(Vector2 ball, Vector2 paddle, float paddleHeight) {
    return (ball.y - paddle.y) / paddleHeight;
}

(enemycontroller.cs - move)

void Move() {
    if (ball == null) {
        ball = GameObject.FindGameObjectWithTag("Ball").transform;
    }
    ballRig2D = ball.GetComponent<Rigidbody2D>();
    if (ballRig2D.velocity.x > 0) {
        if (ball.position.y > this.transform.position.y + .5F) {
            transform.Translate(Vector3.up * speed * Time.deltaTime);
        } else if (ball.position.y < this.transform.position.y - .5F) {
            transform.Translate(Vector3.down * speed * Time.deltaTime);
        }
    }
    // ... bounds checking ...
}

(uimanager.cs - separa)

// ... other methods ...

public void showFinished() {
    foreach (GameObject g in finishObjects) {
        g.SetActive(true);
    }
}

// ... other methods ...

(pointcounter.cs)

void Update () {
    text.text = rightBound.GetComponent<BoundController>().enemyScore + "\t\t" +
                leftBound.GetComponent<BoundController>().playerScore;
}

(gameover.cs)

void Update () {
    if(uiManager.playerWon){
        text.text = "GAME OVER!\nPLAYER WON!";
    } else if(uiManager.enemyWon){
        text.text = "GAME OVER!\nENEMY WON!";
    }
}

ingat untuk menyesuaikan nilai-nilai seperti kelajuan dan masa dalam skrip AI untuk menyempurnakan kesukaran permainan. Klon pong yang dipertingkatkan ini memberikan pengalaman permainan retro yang lebih lengkap dan menarik. Pautan GitHub (tidak disediakan dalam input) akan mengandungi fail projek penuh.

Atas ialah kandungan terperinci Membina klon pong dalam perpaduan: UI dan permainan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
CNCF Arm64 Pilot: Impak dan WawasanCNCF Arm64 Pilot: Impak dan WawasanApr 15, 2025 am 08:27 AM

Program perintis ini, kerjasama antara CNCF (Yayasan Pengkomputeran Native Cloud), pengkomputeran ampere, equinix metal, dan digerakkan, menyelaraskan ARM64 CI/CD untuk projek GitHub CNCF. Inisiatif ini menangani kebimbangan keselamatan dan prestasi lim

Membina pengimbas kelemahan rangkaian dengan pergiMembina pengimbas kelemahan rangkaian dengan pergiApr 01, 2025 am 08:27 AM

Pengimbas kelemahan rangkaian berasaskan GO ini dengan cekap mengenal pasti kelemahan keselamatan yang berpotensi. Ia memanfaatkan ciri konkurensi Go untuk kelajuan dan termasuk pengesanan perkhidmatan dan pemadanan kelemahan. Mari kita meneroka keupayaan dan etika

Top 10 alat pemeriksa backlink terbaik terbaik pada tahun 2025Top 10 alat pemeriksa backlink terbaik terbaik pada tahun 2025Mar 21, 2025 am 08:28 AM

Pembinaan laman web hanyalah langkah pertama: kepentingan SEO dan backlinks Membina laman web hanyalah langkah pertama untuk mengubahnya menjadi aset pemasaran yang berharga. Anda perlu melakukan pengoptimuman SEO untuk meningkatkan keterlihatan laman web anda di enjin carian dan menarik pelanggan yang berpotensi. Backlinks adalah kunci untuk meningkatkan kedudukan laman web anda, dan ia menunjukkan Google dan enjin carian lain kuasa dan kredibiliti laman web anda. Tidak semua pautan balik bermanfaat: mengenal pasti dan mengelakkan pautan yang berbahaya Tidak semua pautan balik bermanfaat. Pautan yang berbahaya boleh membahayakan kedudukan anda. Pemeriksaan backlink percuma yang sangat baik memantau sumber pautan ke laman web anda dan mengingatkan anda tentang pautan yang berbahaya. Di samping itu, anda juga boleh menganalisis strategi pautan pesaing anda dan belajar dari mereka. Alat Pemeriksaan Backlink Percuma: Pegawai Perisikan SEO anda

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),