java swing移动小球
http://piratepad.net/pppptest代码在这里,已经可以移动小球了。我想每次手动移动到空白地方你的得分+10,相反,移动到已经去过的地方则-100。...
http://piratepad.net/pppptest
代码在这里,已经可以移动小球了。我想每次手动移动到空白地方 你的得分+10,相反,移动到已经去过的地方则-100。而且设置最高分。当所有地方走遍,出来新panel,问用户重玩一遍不 展开
代码在这里,已经可以移动小球了。我想每次手动移动到空白地方 你的得分+10,相反,移动到已经去过的地方则-100。而且设置最高分。当所有地方走遍,出来新panel,问用户重玩一遍不 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
2013-11-27
展开全部
关键的地方
ActionListener btnListener = new ActionListener(){
public void actionPerformed(ActionEvent e){
if(b1.equals(e.getSource())){
move(4);
}else if(b2.equals(e.getSource())){
move(1);
}else if(b3.equals(e.getSource())){
move(2);
}else if(b4.equals(e.getSource())){
move(3);
}
}
};
b1.addActionListener(btnListener);
b2.addActionListener(btnListener);
b3.addActionListener(btnListener);
b4.addActionListener(btnListener);
panneau.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if (e.getKeyCode()==KeyEvent.VK_LEFT){
move(1);
}else if (e.getKeyCode()==KeyEvent.VK_RIGHT){
move(2);
}else if (e.getKeyCode()==KeyEvent.VK_DOWN){
move(3);
}else if (e.getKeyCode()==KeyEvent.VK_UP){
move(4);
}
}
});
private void move(int xy_){
if(xy_==1){
if(x>=20){
x-=20;
}
}else if (xy_==2){
if(x<=460){
x+=20;
}
}else if (xy_==3){
if(y<=160){
y+=20;
}
}else if (xy_==4){
if(y>=20){
y-=20;
}
}
if(t[y/20][x/20]==0){
count+=20;
}else{
count-=100;
}
l2.setText("你的得分 :"+count);
t[y/20][x/20]=1;
panneau.repaint();
}
如果想提示重玩,就判断t是否全是1了。如果是,就重新计分、原分数计入历史。
ActionListener btnListener = new ActionListener(){
public void actionPerformed(ActionEvent e){
if(b1.equals(e.getSource())){
move(4);
}else if(b2.equals(e.getSource())){
move(1);
}else if(b3.equals(e.getSource())){
move(2);
}else if(b4.equals(e.getSource())){
move(3);
}
}
};
b1.addActionListener(btnListener);
b2.addActionListener(btnListener);
b3.addActionListener(btnListener);
b4.addActionListener(btnListener);
panneau.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if (e.getKeyCode()==KeyEvent.VK_LEFT){
move(1);
}else if (e.getKeyCode()==KeyEvent.VK_RIGHT){
move(2);
}else if (e.getKeyCode()==KeyEvent.VK_DOWN){
move(3);
}else if (e.getKeyCode()==KeyEvent.VK_UP){
move(4);
}
}
});
private void move(int xy_){
if(xy_==1){
if(x>=20){
x-=20;
}
}else if (xy_==2){
if(x<=460){
x+=20;
}
}else if (xy_==3){
if(y<=160){
y+=20;
}
}else if (xy_==4){
if(y>=20){
y-=20;
}
}
if(t[y/20][x/20]==0){
count+=20;
}else{
count-=100;
}
l2.setText("你的得分 :"+count);
t[y/20][x/20]=1;
panneau.repaint();
}
如果想提示重玩,就判断t是否全是1了。如果是,就重新计分、原分数计入历史。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询