Como fazer paredes?

7 respostas
Guilherme_Albuquerqu

Será que eu posso fazer uma matriz de coordenadas x e y,e criar retângulos circundantes às retas? O que posso fazer?

7 Respostas

ViniGodoy

Use tiles.

Nesse site, tem os tiles já separados, além de explicações detalhes sobre como o game original funcionava:
http://home.comcast.net/~jpittman2/pacman/pacmandossier.html

SirDominque

Guilherme Albuquerque:

Será que eu posso fazer uma matriz de coordenadas x e y,e criar retângulos circundantes às retas? O que posso fazer?

http://fivedots.coe.psu.ac.th/~ad/jg/code/index.html

Guilherme_Albuquerqu

ViniGodoy:
Use tiles.

Nesse site, tem os tiles já separados, além de explicações detalhes sobre como o game original funcionava:
http://home.comcast.net/~jpittman2/pacman/pacmandossier.html

Bom, ele não explica especificamente como fazer essa divisão em tiles

Além disso, estou fazendo uma aplicação J2SE (PC) e não tem essa classe nesse Java. Então , como eu poderia fazer isso?

SirDominque

Guilherme Albuquerque:
ViniGodoy:
Use tiles.

Nesse site, tem os tiles já separados, além de explicações detalhes sobre como o game original funcionava:
http://home.comcast.net/~jpittman2/pacman/pacmandossier.html

Bom, ele não explica especificamente como fazer essa divisão em tiles, como eu poderia fazer isso?

Então, esse livro é completo.Ainda estou no começo entao nao saberia responder.

Guilherme_Albuquerqu

Bom, não sei como explicar, mas é o seguinte:

Existem aplicativos por aí que fazem essa divisão, mas… tem um problema; exemplo: o Pacman, está em posição 2 de x e 2 de y (2, 2). e, sabendo que cada tile tem 8 px² (8 pixels de altura e largura) eu quero que o pac ande 11 tiles ou 88 px em x (horizontal) á direita e quando ele chegar lá ele deve parar. assim:

Mas em y ele só deve andar 5 tiles ou 40 px, ou seja, ele deve andar nesse caminho…

Até virar 90º à direita, desde (41 px y - 45 px y) com (88 px x):

Mas… só de 41 pixels de y com 88 pixels de x ou (88, 41); até 45 pixels de y com 88 pixels de x (88, 45);

Guilherme_Albuquerqu

Ou coisas nesse tipo…

Guilherme_Albuquerqu

Olá pessoal, estou quase terminando meu jogo 2D, que é um pong, igual a aquele antigo que era rodado em fliperama. Peço que tenham um pouco de paciência, já que sou iniciante e onde moro não há cursos de Java (2D).

O abacaxi é o seguinte: instanciei uma imagem, chamei-a de backg e chamo ImageIO para que ele a leia e lhe “dê” classe e recurso (acho que é isso !), num arquivo que está na pasta e se chama “backg.png”, que tem 700x450 px que é o tamanho do jogo mesmo.
Na linha 46 eu chamo o método drawImage(backg, 0, 0, null); para que ele desenhe a imagem.

Eis a classe:

package pong;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
import javax.swing.Timer;

@SuppressWarnings("serial")

public class Fundo extends JPanel implements ActionListener {
  
private Image backg;
private Paddleft pad = new Paddleft(); 
private Timer timer;
    
 public Fundo() throws IOException{
       
       setFocusable(true);
       addKeyListener(new Fundo.KeyboardAdapter());
    
        try {
			backg = ImageIO.read(getClass().getResource(
					"backg.png"));
		} catch (IOException e) {
			throw new RuntimeException(
					"A imagem de fundo não pode ser carregada!", e);
		}
        
    timer = new Timer(5, this);
    timer.start();
    
    }
 @Override
    public void paintComponent(Graphics g){

	Graphics2D g2d = (Graphics2D) g;        
       
        g2d.drawImage(backg, 0, 0, null);
        g2d.drawImage(pad.getImage(), pad.getX(), pad.getY(), this);
        g2d.setBackground(Color.WHITE);
        
        g.dispose();
}   

@Override
public void actionPerformed(ActionEvent e) {
    pad.move();
    repaint();	
	
}

private class KeyboardAdapter extends KeyAdapter{

	@Override
	public void keyPressed(KeyEvent e) {
		
		pad.keyPressed(e);
	}
	
}
}
Criado 7 de dezembro de 2012
Ultima resposta 12 de dez. de 2012
Respostas 7
Participantes 3