У меня есть код
import javax.swing.*;
import java.awt.*;
import javax.imageio.*;
import java.io.*;
import java.awt.event.*;
public class prog {
public static void main(String[] args) {
myFrame okno = new myFrame();
}
}
class myFrame extends JFrame
{
public myFrame()
{
myPanel np = new myPanel();
Container cont = getContentPane();
cont.add(np);
setBounds(0, 0, 800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
class myPanel extends JPanel
{
private int x= (int) Math.floor(Math.random()*800);
private int y = (int) Math.floor(Math.random()*600);
private int x1 = (int) Math.floor(Math.random()*800);
private int y1 = (int) Math.floor(Math.random()*600);
private int napr = 5;
private int napr1 = 5;
private Image img;
private Image fon;
private Image img1;
private class myKey implements KeyListener
{
public void keyPressed(KeyEvent e)
{
int key_ = e.getKeyCode();
if (key_==37) napr = 7;
if (key_==39) napr = 3;
if (key_==38) napr = 1;
if (key_==40) napr = 5;
if (key_==65) napr1 = 7;
if (key_==68) napr1 = 3;
if (key_==87) napr1 = 1;
if (key_==83) napr1 = 5;
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}
public myPanel()
{
addKeyListener(new myKey());
setFocusable(true);
try
{
img = ImageIO.read(new File("c:\\img\\planeta.png"));
fon = ImageIO.read(new File("c:\\img\\kosmos.png"));
img1 =ImageIO.read(new File("c:\\img\\planeta2.png"));
}
catch(Exception exp) {
System.out.println("Не удалось загрузить изображение!");
}
Timer nt = new Timer(0,new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (napr==0){
x--;
y--;
}
if (napr==1) y--;
if (napr==2) {
x++;
y--;
}
if (napr==3) x++;
if (napr==4)
{
x++;
y++;
}
if (napr==5) {
y++;
}
if (napr==6)
{
x--;
y++;
}
if (napr==7) {
x--;
}
if (y>500)
{
int g = (int)(Math.random()*3);
napr = g;
}
if(y<=0){
int g = (int)(Math.random()*7 + 4);
napr = g;
}
if(x>700){
int g = (int)(Math.random()*3);
if (g>0) napr=g+6;
else napr=0;
}
if(x<=0){
int g = (int)(Math.random()*3) + 2;
napr = g;
}
if (napr1==0){
x1--;
y1--;
}
if (napr1==1) y1--;
if (napr1==2) {
x1++;
y1--;
}
if (napr1==3) x1++;
if (napr1==4)
{
x1++;
y1++;
}
if (napr1==5) {
y1++;
}
if (napr1==6)
{
x1--;
y1++;
}
if (napr1==7) {
x1--;
}
if (y1>500)
{
int g1 = (int)(Math.random()*3);
napr1 = g1;
}
if(y1<=0){
int g1 = (int)(Math.random()*7 + 4);
napr1 = g1;
}
if(x1>700){
int g1 = (int)(Math.random()*3);
if (g1>0) napr1=g1+6;
else napr1=0;
}
if(x1<=0){
int g1 = (int)(Math.random()*3) + 2;
napr1 = g1;
}
if( ( Math.abs(x1-x) <=75)&&( Math.abs(y1-y)<=75) ){
if(napr==0){
napr=4;
napr1=0;
}
if(napr==1){
napr = 5;
napr1 = 1;
}
if(napr==2){
napr = 6;
napr1=2;
}
if(napr==3){
napr = 7;
napr1=3;
}if(napr==4){
napr = 0;
napr1 = 4;
}
if(napr==5){
napr = 1;
napr1=5;
}
if(napr==6){
napr = 2;
napr1=6;
}
if(napr==7){
napr = 3;
napr1=7;
}
if(napr1==0){
napr1=4;
napr=0;
}
if(napr1==1){
napr1 = 5;
napr=1;
}
if(napr1==2){
napr1 = 6;
napr=2;
}
if(napr1==3){
napr1 = 7;
napr=3;
}if(napr1==4){
napr1 = 0;
napr=4;
}
if(napr1==5){
napr1 = 1;
napr=5;
}
if(napr1==6){
napr1 = 2;
napr=6;
}
if(napr1==7){
napr1 = 3;
napr=7;
}
}
repaint();
}
});
nt.start();
}
public void paintComponent(Graphics gr)
{
super.paintComponent(gr);
gr.drawImage(fon,0,0,800,600,null);
gr.drawImage(img1,x1,y1,100,100 ,null);
gr.drawImage(img,x,y, 100, 100, null);
}
}
Есть вопрос. Как сделать так, чтобы при нажатии клавиш + или - менялась скорость (т.е например было не x-- а x-=2). Суть я уже понял. Надо в класс myKey добавить код клавиш плюс и минус при нажатии на которые менялся бы блок if. Как это реализовать?