Skip to main content

Tutorial Pembuatan Game Pingpong Menggunakan Java Netbeans

Assalamualaikum Wr.Wb saya akan membuat game pimpong dengan menggunakan java netbeans.Saya menggunakan Netbeans IDE 8.2.Berikut langkah - langkah pembuatan game tersebut : 

1. Buka Aplikasi Netbeans IDE di Launchpad lalu klik Netbeans. 

2. Setelah Netbeans terbuka, membuat project baru dengan cara klik menu File > New Project atau bisa dengan tombol Shift+Command+N pada keyboard.

3. Pada Kotak dialog choise Project Anda pilih kategory Java dengan Tipe project Java Application. Setelah itu klik tombol Next, seperti gambar di bawah. 

4. Pada kotak dialog Name and Location, centang pada Create main Class, dan set as main project. Lalu memberikan Nama dengan Pimpong, setelah itu mengklik tombol finish.

5. Setelah itu pada project Pimpong yang ada di sidebar netbeans, klik Pimpong > sources Package > pimpong > Pimpong.java.
 
6. Kemudian mengetikkan Source program di dalam editor netbeans, Source programnya adalah :
 

package pingpong;


import java.awt.BorderLayout;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class PingPong extends JPanel implements KeyListener,

ActionListener, Runnable {
Font font=new Font("Verdana", Font.CENTER_BASELINE,14);
static boolean right = false;
static boolean left = false;
int ballx = 160;
int bally = 218;
int batx = 160;
int baty = 245;
int brickx = 70;
int bricky = 50;
int score=0;
Rectangle Ball = new Rectangle(ballx, bally, 6, 6);
Rectangle Bat = new Rectangle(batx, baty, 41, 6);
Rectangle[] Brick = new Rectangle[12];
Thread t;
public PingPong() {
addKeyListener(this);
setFocusable(true);
t = new Thread(this);
t.start();
}


public static void main(String[] args) {

JFrame frame = new JFrame();
PingPong game = new PingPong();
JButton button = new JButton("Restart");
frame.setSize(345, 320);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


frame.add(game);

frame.add(button, BorderLayout.SOUTH);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
button.addActionListener(game);


}


public void paint(Graphics g) {

g.setColor(Color.LIGHT_GRAY);
g.fillRect(0, 0, 350, 350);
g.setColor(Color.RED);
g.fillOval(Ball.x, Ball.y, Ball.width, Ball.height);
g.setColor(Color.BLACK);
g.fill3DRect(Bat.x, Bat.y, Bat.width, Bat.height, true);
g.setColor(Color.GRAY);
g.fillRect(0, 251, 450, 200);
g.setColor(Color.red);
g.drawRect(0, 0, 338, 250);
g.setFont(font);
g.setColor(Color.darkGray);
g.drawString("Score : "+score, 100, 12);
g.setColor(Color.black);
for (int i = 0; i < Brick.length; i++) {
if (Brick[i] != null) {
g.fill3DRect(Brick[i].x, Brick[i].y, Brick[i].width,
Brick[i].height, true);
}
}


if (ballFallDown == true || bricksOver == true) {

Font f = new Font("Verdana", Font.BOLD, 16);
g.setColor(Color.WHITE);
g.setFont(f);
g.drawString(status, 115, 130);
ballFallDown = false;
bricksOver = false;
}


}

int movex = -1;
int movey = -1;
boolean ballFallDown = false;
boolean bricksOver = false;
String str = "";
int count = 0;
String status;
public void run()


for (int i = 0; i < Brick.length; i++) {

Brick[i] = new Rectangle(brickx, bricky, 30, 10);
if (i == 5) {
brickx = 70;
bricky = 62;
}
if (i == 9) {
brickx = 100;
bricky = 74;
}
brickx += 31;
}


while (ballFallDown == false && bricksOver == false) {

// if(gameOver == true){return;}
for (int i = 0; i < Brick.length; i++) {
if (Brick[i] != null) {
if (Brick[i].intersects(Ball)) {
Brick[i] = null;
// movex = -movex;
movey = -movey;
count++;
score +=10;
//System.out.println(str);
}
}
}


if (count == Brick.length) { // check if ball hits all bricks

bricksOver = true;
status = "You Win !!!";
repaint();
}
repaint();
Ball.x += movex;
Ball.y += movey;


if (left == true) {


Bat.x -= 5;
right = false;
}
if (right == true) {
Bat.x += 5;
left = false;
}
if (Bat.x <= 4) {
Bat.x = 4;
} else if (Bat.x >= 298) {
Bat.x = 298;
}
if (Ball.intersects(Bat)) {
movey = -movey;
}
if (Ball.x <= 0 || Ball.x + Ball.height >= 335) {
movex = -movex;
}


if (Ball.y <= 0) {

movey = -movey;
}


if (Ball.y >= 250) {

ballFallDown = true;
status = "You Lose !! Please Restart The Game";
repaint();
}
try {
Thread.sleep(8);
} catch (Exception ex) {
}
}
}
@Override
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_LEFT) {
left = true;
}


if (keyCode == KeyEvent.VK_RIGHT) {

right = true;
}
}


@Override

public void keyReleased(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_LEFT) {
left = false;
}


if (keyCode == KeyEvent.VK_RIGHT) {

right = false;
}
}


@Override

public void keyTyped(KeyEvent arg0) {
}


@Override

public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if (str.equals("Restart")) {
//System.out.print("Selamat");
this.Ulang();


}

}


public void Ulang() {


requestFocus(true);

bally = 218;
baty = 245;
brickx = 70;
bricky = 50;
Ball = new Rectangle(ballx, bally, 6, 6);
Bat = new Rectangle(batx, baty, 41, 6);
Brick = new Rectangle[12];


movex = -1;

movey = -1;
ballFallDown = false;
bricksOver = false;
count = 0;
status = null;
for (int i = 0; i < Brick.length; i++) {
Brick[i] = new Rectangle(brickx, bricky, 31, 11);
if (i == 5) {
brickx = 70;
bricky = 62;
}
if (i == 9) {
brickx = 100;
bricky = 74;
}
brickx += 31;
}
repaint();
}
}


7. Setelah mengetik dan memeriksa hingga tidak terjadinya error, maka jalankan program dengan cara klik kanan pada pimpong.java lalu klik Run file, atau bisa dengan menekan shift + F6 pada keyboard.

8. lalu, setelah program berhasil di compile dan di run, maka akan muncul jendela game seperti pada gambar di bawah ini jika anda kalah maka akan muncul pesan seperti di gambar.



Game Pingpong


Selamat anda telah membuat sebuah game pingpong sederhana dengan netbeans anda. sekian, terimakasih.
Sumber :
http://www.bapaknaga.com/2015/07/membuat-game-pingpong-dengan-java-di.html

Comments

  1. kak, untuk belajar ngoding kayak gini gimna ya ?

    ReplyDelete
  2. wah akhirnya ad web yang bisa membantu saya dalam hal membuat wordpress, artikelnya menarik dan memanjakan mata untuk di baca

    perkenalkan nama saya Titannia yulanda NIM 1822500065 dari ISB Atma Luhur

    ReplyDelete

Post a Comment

Popular posts from this blog

BIODATA MAHASISWA

Npm             : 57413772 Nama            : Rioneda Eko Pratomo Kelas Lama   : 1IA24 Kelas Baru    : 2IA25 Motivasi Masuk Jurusan TI : 1.Mengikuti orang tua,karena kedua orang tua saya dari jurusan komputer. 2.Rasa ingin tahu tentang menjadi programmer. 3.Memperdalam pengetahuan tentang algoritma dan bahasa pemrograman. Perkembangan IT dan ILMU yang sudah didapatkan selama 2 semester :           Yang sudah saya dapatkan cukup banyak.untuk ditingkat 1 ini baik di semester 1 dan 2 itu saya mendapatkan cukup ilmu untuk memudahkan dalam membuat program karena selalu dilatih logikanya didalam matematika dasar dan matematika informatika.Di Matematika Informatika kami sering membuat tugas untuk membuat program yang berkaitan dengan matematika dengan penyelesaian menggunakan program.Program yang digunakan y...

SDLC model V-Model

P engembangan perangkat lunak adalah proses kompleks yang membutuhkan pendekatan yang terstruktur agar dapat mencapai keberhasilan dalam penciptaan produk yang berkualitas. Salah satu model SDLC (Software Development Life Cycle) yang terkenal adalah Model V-Model. Dalam artikel ini, kita akan menjelajahi secara komprehensif Model V-Model, termasuk prinsip-prinsipnya, fase-fase pengembangan, kelebihan, dan tantangan yang mungkin dihadapi. I. Pengantar Model V-Model Model V-Model adalah model pengembangan perangkat lunak yang mengembangkan konsep model air terjun dengan menekankan hubungan antara setiap fase pengembangan dan tahap pengujian yang sesuai. Model ini menciptakan bentuk "V" yang menggambarkan hubungan ini, menyoroti fase pengembangan dan pengujian yang saling terkait. II. Prinsip-Prinsip Model V-Model Hubungan Fase Pengembangan dan Pengujian: Setiap fase pengembangan memiliki fase pengujian yang sesuai. Ini menciptakan hubungan yang jelas antara ...

Panduan Lengkap Quillbot: Alat Parafrase dan Penulisan yang Mudah Dipahami

Quillbot adalah alat berbasis AI yang populer di kalangan penulis, pelajar, dan profesional untuk membantu meningkatkan kualitas tulisan dengan fitur parafrase, perbaikan tata bahasa, dan penulisan ulang teks. Alat ini dirancang untuk mempermudah penggunanya dalam menyusun kalimat, membuat teks lebih jelas, dan menyempurnakan bahasa. Fitur Utama: Parafrase: Alat ini dapat memparafrasekan kalimat dan paragraf dengan beberapa mode, seperti Fluency, Standard, dan Creative. Mode ini membantu pengguna menyesuaikan gaya tulisan dengan kebutuhan mereka. Tata Bahasa & Sintaks: Quillbot menawarkan koreksi tata bahasa otomatis, membantu pengguna mengidentifikasi kesalahan umum dalam penulisan. Kompresi Teks: Quillbot memiliki fitur yang memungkinkan pengguna untuk memadatkan informasi tanpa menghilangkan esensi utama, cocok untuk merangkum artikel atau tulisan panjang. Penulisan Ulang: Jika Anda memiliki teks yang perlu ditulis ulang dengan gaya yang berbeda, fitur ini sangat bermanfaat. Ko...