Java内存游戏如何翻转单个卡?
当我点击一张卡片时,我试图翻转它们。当我点击所有卡片时,所有卡片同时翻转 这是我的密码。任何帮助都将不胜感激,并提前向您表示感谢Java内存游戏如何翻转单个卡?,java,Java,当我点击一张卡片时,我试图翻转它们。当我点击所有卡片时,所有卡片同时翻转 这是我的密码。任何帮助都将不胜感激,并提前向您表示感谢 package cards; import processing.core.PApplet; public class MemoryGame extends PApplet { static final int COLS=2; static final int RAWS=3; Card[] cards; public void setup() { si
package cards;
import processing.core.PApplet;
public class MemoryGame extends PApplet {
static final int COLS=2;
static final int RAWS=3;
Card[] cards;
public void setup() {
size(RAWS*Card.WIDTH, COLS*Card.HEIGHT); // card witdth 60*9+(10*9) for the gaps=630
cards = new Card[COLS*RAWS];
cards[0] = new Card(11, 0, 0);
cards[1] = new Card(3, Card.WIDTH, 0);
cards[2] = new Card(7, 2 * Card.WIDTH, 0);
cards[3] = new Card(3, 0, Card.HEIGHT);
cards[4] = new Card(7, Card.WIDTH, Card.HEIGHT);
cards[5] = new Card(11, 2 * Card.WIDTH, Card.HEIGHT);
}
public void draw() {
background(204);
for (int i = 0; i < 6; i++) {
cards[i].display(this);
}
}
public void mousePressed() {
for (int i = 0; i < 6; i++) {
cards[i].flip();
}
}
public static void main(String[] args) {
PApplet.main("cards.MemoryGame");
}
}
这是因为当你按下一张卡片时,你会在每张卡片上循环
public void mousePressed() {
for (int i = 0; i < 6; i++) {
cards[i].flip();
}
}
public void mousePressed(){
对于(int i=0;i<6;i++){
卡片[i].flip();
}
}
尝试定义您单击的卡,并仅对该卡使用翻转方法。这是因为当您按下一张卡时,您会在每张卡上循环
public void mousePressed() {
for (int i = 0; i < 6; i++) {
cards[i].flip();
}
}
public void mousePressed(){
对于(int i=0;i<6;i++){
卡片[i].flip();
}
}
尝试定义您单击的卡,并仅对该卡使用翻转方法。您在按住鼠标的
方法中循环浏览所有卡并翻转它们。你以为会发生什么
我想象你想检查用户点击的位置,然后翻转该位置的卡。你在按住鼠标的方法中循环浏览所有卡,然后翻转它们。你以为会发生什么
我想您应该检查用户单击的位置,然后翻转位于该位置的卡。当按下鼠标按钮时,您正在翻转所有卡。
您必须检查鼠标位置是否与卡相交,并按下鼠标,如果是,则翻转该卡。
生成方法mouseX()和mouseY(),它们为您提供鼠标坐标。
只需添加if(鼠标位置与卡相交):
public void mousePressed(){
对于(int i=0;i<6;i++){
如果(mouseX()>=cards[i].x&&mouseX()=cards[i].y&&mouseY()当按下鼠标按钮时,您正在翻转所有卡片。
您必须检查鼠标位置是否与卡相交,并按下鼠标,如果是,则翻转该卡。
生成方法mouseX()和mouseY(),它们为您提供鼠标坐标。
只需添加if(鼠标位置与卡相交):
public void mousePressed(){
对于(int i=0;i<6;i++){
如果(mouseX()>=cards[i].x&&mouseX()=cards[i].y&&mouseY()您需要在mousePressed()方法中获取鼠标事件,这样您就可以确定单击了哪张卡,以便翻转它。
尝试在MemoryGame类中实现java.awt.MouseListener接口。您需要在mousePressed()方法中获取鼠标事件,这样您就可以确定单击了哪张卡,以便翻转它。
尝试在MemoryGame类中实现java.awt.MouseListener接口。你太棒了。非常感谢。它工作得非常好。如果我的答案真的帮助了你,最好将其设置为可接受答案或有用答案。谢谢!你太棒了。非常感谢。它工作得非常好。如果我的答案真的帮助了你,这将是很好的设置为接受的答案或设置为有用的答案。谢谢!
public void mousePressed() {
for (int i = 0; i < 6; i++) {
if(mouseX() >= cards[i].x && mouseX() <= cards[i].x+cards[i].width && mouseY() >= cards[i].y && mouseY() <= cards[i].y+card[i].height) {
cards[i].flip();
}
}
}