C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: java ゲームプログラミング 一人卓球


(過去ログ 114 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■67206 / inTopicNo.1)  java ゲームプログラミング 一人卓球
  
□投稿者/ たぬき (1回)-(2013/07/16(Tue) 05:37:35)

分類:[Java] 

こんにちは、学校の課題なんですがよろしくお願いします。

下記のプログラムを
パドルをキーボードだけでなく、マウスでも操作できるように改良しなさい。
スコアを表示する(1階跳ね返したら1点増える)
今は白で統一されている壁、ボール、パドルの色をそれぞれ変える
3回ミスしたらゲームオーバーと表示させる
というように改良したいのですが、どうもうまくいきません
回答よろしくおねがいします


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.BorderLayout;
import java.awt.Color;

class myPanel extends JPanel implements ActionListener, KeyListener {
int x = 30, y = 20;
int dx = 1, dy = 1, d = 30;
int padY = 55;
int pd = 0;
Timer pTimer;
final int width, hight;

public myPanel(int w, int h) {
width = w;
hight = h;
setBackground(Color.black);
pTimer = new Timer(100, this);
addKeyListener(this);
}

public void start() {
pTimer.start();
}

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.white);
g.fillRect(30, 0, width, 5);
g.fillRect(width-5, 0, 5, hight);
g.fillRect(30, hight-5, width, 5);

g.fillOval(x , y , 10, 10);

g.fillRect(20, padY, 8, 30);
}

@Override
public void actionPerformed(ActionEvent e) {
padY += pd;
if (padY < 0) {
padY = 0;
} else if (padY > hight - 30) {
padY = hight - 30;
}

x += 10 * dx;
y += 5 * dy;

// 壁の当たり判定
if (x > width - 15) {
dx *= -1;
x = width - 15;
}
if (y < 5) {
dy *= -1;
y = 5;
} else if (y > hight - 15) {
dy *= -1;
y = hight - 15;
}

// パドルの当たり判定
if (x < 30) {
if ((y >= padY) && (y <= padY+30)) {
dx *= -1;
x = 30;
}
}
repaint();
}

@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
pd = -10;
break;
case KeyEvent.VK_DOWN:
pd = 10;
break;
}
}

@Override
public void keyReleased(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
case KeyEvent.VK_DOWN:
pd = 0;
}
}

@Override
public void keyTyped(KeyEvent e) { }

@Override
public boolean isFocusable() {
return true;
}
}

class TinyPong extends JFrame {
public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(new BorderLayout());
f.setSize(300, 200);
f.setTitle("Tiny Pong");
f.setResizable(false);
Container contentPane = f.getContentPane();
myPanel p = new myPanel(300, 150);

contentPane.add(p, "Center");
p.start();

f.setVisible(true);
}
}
引用返信 編集キー/
■67207 / inTopicNo.2)  Re[1]: java ゲームプログラミング 一人卓球
□投稿者/ ジュテ (1回)-(2013/07/16(Tue) 06:09:49)
何がうまくいかないのですか?
うまくいかないことについてアドバイスを求めるのであればいいのですが、
課題の丸投げなんて、誰も相手をしませんよ。
引用返信 編集キー/
■67208 / inTopicNo.3)  Re[2]: java ゲームプログラミング 一人卓球
□投稿者/ たぬき (3回)-(2013/07/16(Tue) 08:49:08)
2013/07/16(Tue) 08:49:42 編集(投稿者)

をしませんよ。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -