Pessoal, eu to seguindo um tutorial de criação de jogos em java de um chapa (em inglês), e na 4ª aula dele ele cria um " private Rectangle platform = new Rectangle(0, 540, 800,20); " + quando eu vou criar aqui da um erro dizendo "illegal modifier for parameter; only final is permitted ".
através dos videos não conecegui perceber nenhuma diferença do meu código, pro código dele, alguém ai sabe me dizer oque fazer pro erro sair ?
só pra evitar que alguma alma caridosa que queira ajudar tenha q ver os videos vou por o código aqui… (erros na “classe 4”)
resumindo a funcionalidade do código, até onde está feito ele cria uma janela preta, com uma bolinha que eu posso mexer usando o teclado, ha nesta janela uma retângulo que vai servir de piso para a bolinha, e eh nesse retângulo que deu erro, pois o carinha do vídeo ia implementar física básica nele, dai aconteceu o erro…
classe principal:
package Um;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Alpha extends JPanel implements KeyListener{
private Player player;
private int x=5,y=5;
public Alpha (){
setSize(new Dimension(800,600));
//setBackground(Color.BLACK);ele tiro esta linha n sei pq
setPreferredSize(new Dimension(800,600));
setFocusable(true);//quando eu coloquei essa bosta a bolinha que n andava andou
addKeyListener(this);
player = new Player(200,200);
}
@Override
public void update (Graphics g){
paint(g);
}
public void paint (Graphics g){
g.setColor(Color.BLACK);
g.fillRect(0, 0, getWidth(), getHeight());
//repaint();
player.draw(g);
//g.setColor(Color.WHITE);
//g.fillRect(0, 540, 810, 20);
g.dispose();//oculta os obj de uma janela sem fechar ela, e tudo estará lá, basta chamar dinovo
repaint();//
//g.setColor(Color.WHITE);
//g.fillOval(x, y, 20, 20);
//g.drawString("este eh um texto", 20, 20);
}
@Override
public void keyPressed(KeyEvent e) {
int c = e.getKeyCode();
if(c == KeyEvent.VK_W){
player.setYD(-1);
//y-=5;
}
if(c == KeyEvent.VK_S){
player.setYD(1);
//y+=5;
}
if(c == KeyEvent.VK_A){
player.setXD(-1);
//x-=5;
}
if(c == KeyEvent.VK_D){
player.setXD(1);
//x+=5;
}
}
@Override
public void keyReleased(KeyEvent e) {
player.setXD(0);
player.setYD(0);
}
@Override
public void keyTyped(KeyEvent e) {
}
public static void main(String[] args) {
//Thread1 loop = new Thread1();
//Thread thread = new Thread(loop);
//thread.start();
Alpha game = new Alpha();
JFrame f = new JFrame();
f.setTitle("SolidPaint v1.0");
f.setSize(new Dimension(800,600));
f.add(game);
f.pack();//acho que isso aqui eh um container
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);//acho que aqui faz a tela aparecer no meio da tela
f.setVisible(true);
}
}
classe 2:
package Um;
import java.awt.Graphics;
public abstract class Entity {
protected int x, y, w, h;
protected boolean removed = false;
public Entity(int x, int y){
this.x = x;
this.y = y;
}
public void draw (Graphics g){
}
public int getX(){return x;}
public int getY(){return y;}
public int getW(){return w;}
public int getH(){return h;}
}
classe 3:
package Um;
import java.awt.Color;
import java.awt.Graphics;
public class Player extends Entity {
private int xd, yd;
public Player(int x, int y) {
super(x, y);
w= 16; h = 16;
}
public void draw(Graphics g){
move();
g.setColor(Color.orange);
g.fillOval(x, y, w, h);
}
private void move(){
x += xd;
y += yd;
}
public void setXD(int value){
xd = value;
}
public void setYD(int value){
yd = value;
}
}
classe 4: #######COM O ERRO#######
package Um;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
public class Stage {
public Stage(){
private Rectangle platform = new Rectangle(0, 540, 800,20);//erro aqui nesta linha na palavras "plataform"
}
public void draw (Graphics g){
g.setColor(Color.white);
g.fillRect(platform.x, platform.y, platform.width, platform.height); //erro aqui nesta linha nas palavras "plataform"
}
}
Obrigado antecipadamente a quem poder me ajudar…