Java에서 솔리테어 게임을 만드는 방법에 관해서 몇 가지 질문이 있습니다.Java Solitaire 게임을 만드는 방법에 관한 팁
스윙에서 카드를 다루는 가장 좋은 방법은 무엇입니까? 어떻게 그들을 드래그 할 수 있으며 올바른 위치에 스냅하는 가장 좋은 방법은 무엇입니까?
Java에서 솔리테어 게임을 만드는 방법에 관해서 몇 가지 질문이 있습니다.Java Solitaire 게임을 만드는 방법에 관한 팁
스윙에서 카드를 다루는 가장 좋은 방법은 무엇입니까? 어떻게 그들을 드래그 할 수 있으며 올바른 위치에 스냅하는 가장 좋은 방법은 무엇입니까?
올바른 위치에 스냅하는 가장 좋은 방법은 무엇입니까?
Overlap Layout이 도움이 될 수 있습니다.
서버 내려왔다. 그래서 나는 그것을 조사 할 수 없다 ... – jonas
여러 이미지를 드래그하는 가장 좋은 방법은 무엇입니까? 나는 Java2D를 사용하여 JPanel에 두 개의 이미지를 그려 왔지만 그 중 하나만 드래그 할 수 있습니다. 내 소스 코드를 첨부하겠습니다. 내 솔루션의 문제는 하나의 요소를 조작하는 중이 라하더라도 전체 창을 다시 칠할 필요가 있다는 것입니다. 카드의 이미지 대신 이미지를 처리 할 수 있습니까? 따라서 카드 한 장을 움직이면 이미지 대신 객체의 시각적 표현을 움직입니다 (지금처럼).
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.image.BufferedImage;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Java2d_MainPanel extends JPanel{
private static BufferedImage img = new logic.GetBufferedImage().getImage();
private JButton knapp = new JButton("Nytt bilde");
private JButton knapp2 = new JButton("Nytt bilde2");
private static BufferedImage img2 = new logic.GetBufferedImage().getImage2();
//coordinates for image 1
private int x1 = 0;
private int y1 = 0;
//coordinates for image 2
private int x2 = 50;
private int y2 = 50;
public Java2d_MainPanel(){
add(knapp);
add(knapp2);
knapp.addActionListener(new ButtonHandler());
knapp2.addActionListener(new ButtonHandler2());
addMouseMotionListener(new MouseMotionHandler());
}
public void newImage(ActionEvent e){
if(e.getSource().equals(knapp)){
img = new logic.GetBufferedImage().getImage();
repaint();
}
else if(e.getSource().equals(knapp2)){
img2 = new logic.GetBufferedImage().getImage2();
repaint();
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
newPaint(g2d);
}
public void newPaint(Graphics2D g2d){
g2d.drawImage(img, x1, y1, null);
g2d.drawImage(img2, x2, y2,null);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Rabbits");
frame.add(new Java2d_MainPanel());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 640);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
class MouseMotionHandler extends MouseMotionAdapter {
@Override
public void mouseDragged(MouseEvent e) {
x1 = e.getX()-(img.getWidth()/2);
y1 = e.getY()-(img.getHeight()/2);
repaint();
}
}
class ButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
newImage(e);
}
}
class ButtonHandler2 implements ActionListener{
public void actionPerformed(ActionEvent e) {
newImage(e);
}
}
}
팁 - 카드를 제대로 사용하면 다른 사람이 이미 당신을 위해 이것을 구현했습니다 :-) –
스택에서 카드를 가져옵니다. CardLayout, omg how great =) – jonas
Java로 솔리테어 게임을 만드는 가장 좋은 방법은 모든 것을 만들려고 시도하는 것이 아닙니다. 그네. 반대로 가능한 한 적은 스윙을 사용하십시오. 하나의 JFrame, ImageIcon이 BufferedImage 인 JLabel입니다. 자바 게임 프로그래머는 일반적으로 ** 사용하지 않습니다 ** 스윙 : Java 3D 게임에 대해 알고 있습니다. Java 모바일 게임에 대해 알고 있습니다. Java 2D 게임에 대해 알고 있습니다 ... 그러나 Java Swing 게임에 대해서는 알지 못합니다.) – SyntaxT3rr0r