Rumah >Java >javaTutorial >Bagaimana untuk Mencapai Pergerakan Objek Berperingkat di Jawa: Menggunakan Pemasa dan Kelewatan untuk Kesan Ninja Buah?
Objek Bergerak dan Pemasa
Dalam konteks ini, anda mahu objek muncul secara rawak dari bahagian bawah skrin, naik ke ketinggian tertentu , dan kemudian turun semula dengan cara yang serupa dengan permainan Fruit Ninja. Walau bagaimanapun, anda menghadapi masalah di mana semua objek bermula pada masa yang sama kerana kekurangan kelewatan berperingkat.
Penyelesaian:
Untuk mengatasi masalah ini, anda boleh memperkenalkan kelewatan khusus untuk setiap objek. Di bawah ialah penjelasan tentang pendekatan yang mungkin menggunakan kelas Shape dengan ActionListener melakukan pergerakan berdasarkan pembilang kelewatan yang semakin berkurangan.
1. Kelas Bentuk dengan Lengah dan Logik Pergerakan:
<code class="java">class Shape { private int randomDelayedStart; private boolean draw = false; private boolean down = false; private int y = D_HEIGHT; // Initial position at the bottom of the screen public void decreaseDelay() { if (randomDelayedStart <= 0) { draw = true; } else { randomDelayedStart -= 1; } } public void move() { if (draw) { if (y <= 50) { down = true; } if (down) { y += INCREMENT; } else { y -= INCREMENT; } } } }</code>
2. Permulaan Rawak untuk Setiap Bentuk:
Apabila mencipta setiap objek Bentuk, anda boleh menetapkan nilai tunda secara rawak:
<code class="java">for (int i = 0; i < 20; i++) { int randXLoc = random.nextInt(D_WIDTH); int randomDelayedStart = random.nextInt(100); Shape shape = new Shape(randXLoc, randomDelayedStart); list.add(shape); }</code>
3. ActionListener untuk Mencetuskan Pergerakan Bentuk:
Dalam satu Pemasa, ActionListener boleh melelakan semua bentuk, mengurangkan pembilang kelewatan mereka dan menggunakan kaedah pergerakan mereka :
<code class="java">ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEvent e) { for (Shape s : shapes) { s.decreaseDelay(); s.move(); repaint(); } } };</code>
4. Memulakan Pemasa:
Selepas memulakan semua bentuk, mulakan pemasa untuk memulakan pergerakan berterusan:
<code class="java">timer.start();</code>
Pendekatan ini membenarkan kelewatan dan pergerakan bebas untuk setiap bentuk, memastikan bahawa mereka muncul dan bergerak secara berperingkat, menyerupai tingkah laku yang diingini dalam Fruit Ninja.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pergerakan Objek Berperingkat di Jawa: Menggunakan Pemasa dan Kelewatan untuk Kesan Ninja Buah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!