连连看里的连线如何实现?

jgcheng85 2008-03-15 08:22:07
1、连连看里的连线是怎么实现的?...还有那种波浪的连线,爆炸效果...
2、我用JButton[][] bt = new JButton[8][8] 的二维按钮数组;
想用
for(int x = 0; x < bt.length; x++){
for(int y = 0; j < bt.length; y++){
bt[x][y].addMouseListener(new MouseAdepter(){
public void mousePressed(MouseEvent e){
GetInfo(x,y,bt[x][y]);//这个方法是用来记录按钮的信息的public 方法

}
});
}
}

结果只有最后一个按钮bt[8][8]被监听了,其他的都没有反应,,,难道只有逐个的加监听吗???


谢谢了!!。。。分不多。。。大弟大妹大哥大姐大叔阿姨请见谅。。。
...全文
832 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
jgcheng85 2008-05-15
  • 打赏
  • 举报
回复
jgcheng85@126.com
iTopBoy 2008-05-15
  • 打赏
  • 举报
回复
问题还解决了,我把我写的发给你!
你注意查收阿!
jgcheng85 2008-03-29
  • 打赏
  • 举报
回复
我要的是实现里面画线的方法啊,其他功能都实现了
xunfengkuohai 2008-03-18
  • 打赏
  • 举报
回复
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package jndi;
import java.awt.FlowLayout;
import javax.swing.*;
/**
*
* @author silence
*/
public class Link {
private JFrame indexFrame = new JFrame("good");
public JButton [][]myButton = new JButton[8][8];
public void enter()
{
indexFrame.setSize(500,500);
indexFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
indexFrame.setLayout(new FlowLayout());
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
myButton[i][j] = new JButton(""+i+j);
indexFrame.add(myButton[i][j]);

}
}
indexFrame.setVisible(true);
}
public static void main(String []args)
{
Link link = new Link();
link.enter();
}
}
jackjun119 2008-03-18
  • 打赏
  • 举报
回复
给你个地址,讲用JAVA做连连看开发过程的http://hi.baidu.com/yunke/blog/item/4504e9ed67a4114c79f055a6.html
要说清楚具体怎么画线很费事的,定好了算法,再考虑各种情况实现,可以说连线算是这个程序的一个重要部分(或许是最重要~)。
nihuajie05 2008-03-17
  • 打赏
  • 举报
回复
想个MM做个的...后来分了...就一直没去做...
怨念啊
xmu_才盛 2008-03-17
  • 打赏
  • 举报
回复
我也有这个问题,不过使用c++写的,那时只写了方框,没有写连线

我觉得可以再算法中实现

有直接连
一个折点连
两个折点连

既然能判断了,那就在这里进行连线就好了

例如 声明 变量 flag =false;

然后判断是那种连法:直接连不行就判断一个折点的 ,再不行就判断两个折点
总有一个行吧?(除非不能连) 如果某种算法连通了,flag =true;

然后呵呵 ,用数组记录连接路径 ,必定都是矩阵嘛很好记录的
然后…… 化线就可以了吧,

当时是这么想的,但是没有继续做下去。
Inhibitory 2008-03-17
  • 打赏
  • 举报
回复
连线做成一个单独的类, 其中有一个属性就是生命周期, 这个在粒子系统中很常见,
画线时, 线在一个线程中, 在线程中随着时间而减少线的生命, 当生命为0时, 再做一个特效的动画就可以了(就是几张图片, 一张接着一张的画, 画完后线程结束).

线中还有几个属性, 描述线上的几个点, 用来画连线的.
jgcheng85 2008-03-16
  • 打赏
  • 举报
回复
还有那个监听问题...能不能帮忙解决下...一个个加监听太麻烦了
jgcheng85 2008-03-16
  • 打赏
  • 举报
回复
谢谢...那些点之间是怎么画线啊??我好象有点明白了......等我解决了问题 利马给你们分..呵呵...谢谢你们的意见
jgcheng85 2008-03-16
  • 打赏
  • 举报
回复
谢谢你的回答...我只是不知道,坐标都是可以找到的,就是不知道怎么给它画出来,而且是画出来后一段时间后消失(这个估计是用TIMER实现的)关键就是画的问题--用什么方法实现
网络咖啡 2008-03-16
  • 打赏
  • 举报
回复
画线需要你的所有的东西都在一个Panel上的,调用paint绘制所有的界面吧
jgcheng85 2008-03-16
  • 打赏
  • 举报
回复
行了...监听问题自己解决了,可是画线还是没一点头绪啊...仁兄们给点意见啊...只要是意见...都有分啊..不够我加分啊
jackjun119 2008-03-15
  • 打赏
  • 举报
回复
添加事情监听的那段代码本身应该没有问题;
连连看的连线可以在连线事件中根据点的坐标关系实现:比如三条线消去时,情况就是(x1,y1),(x1,y2),(x2,y2),(x2,y3),第一个和最后一个点是button的坐标,中间点是允许的轨迹,如果ture,就删除button并在坐标上给出爆炸效果。这样应该包含了两条线和一条线的情况,因为y1,y2和y3,x1,和x2可以相等。把其他消去情况考虑周全应该可以实现
网络咖啡 2008-03-15
  • 打赏
  • 举报
回复
其实连连看实现的方式就那么几种:
1、直连:横连或竖连
2、拐一个弯
3、拐2个弯

穷举即可
jgcheng85 2008-03-15
  • 打赏
  • 举报
回复
哦..那个是发贴弄错的..呵呵..不好意思
jackjun119 2008-03-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jgcheng85 的回复:]
补充:开始说局部变量x,y不能在那个内部类里出现,然后我就把它搞成了全局变量。。结果是
for(x = 0; x < bt.length; x++){
for(y = 0; j < bt.length; y++){
bt[x][y].addMouseListener(new MouseAdepter(){
public void mousePressed(MouseEvent e){
GetInfo(x,y,bt[x][y]);//这个方法是用来记录按钮的信息的public 方法


[/Quote]

你的for(y=0;j<bt.length;y++)里面的j是什么玩意?是本来就打错还是发贴时弄错了。。。
jgcheng85 2008-03-15
  • 打赏
  • 举报
回复
是只有bt[7][7]被监听了
jgcheng85 2008-03-15
  • 打赏
  • 举报
回复
补充:开始说局部变量x,y不能在那个内部类里出现,然后我就把它搞成了全局变量。。结果是
for(x = 0; x < bt.length; x++){
for(y = 0; j < bt.length; y++){
bt[x][y].addMouseListener(new MouseAdepter(){
public void mousePressed(MouseEvent e){
GetInfo(x,y,bt[x][y]);//这个方法是用来记录按钮的信息的public 方法

}
});
}
}

结果只有最后一个按钮bt[8][8]被监听了,其他的都没有反应,,,难道只有逐个的加监听吗???
jgcheng85 2008-03-15
  • 打赏
  • 举报
回复
我用的是JB2006,JAVA SWING

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧