用java做拼图游戏,怎么把图片切割成不规则形状?

作者&投稿:郯雅 (若有异议请与网页底部的电邮联系)
Java制作的拼图游戏中如何将图片随机分割成不规则的形状?要源码哟亲~

图片事先分割好的,你只需要把他的顺序打乱就行了;这个我做过,留下你的邮箱;

//用基本图形拼呀
import java.awt.Graphics;
import javax.swing.*;
public class IrregulaShape extends JPanel{
@Override public void paint(Graphics g) { super.paint(g); g.drawRect(100, 50,100, 100); g.drawArc(100, 25, 50, 50, 0, 180); // g.fillRect(100, 50, 100, 100);// g.fillOval(100, 25, 50, 50); } public static void main(String[] args) { JFrame jFrame = new JFrame("不规则的!"); IrregulaShape j = new IrregulaShape(); jFrame.add(j); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.setSize(500,500); jFrame.setLocationRelativeTo(null); jFrame.setVisible(true);

}
}

以我现在的知识,我还不知道如何更简单的去做。
但如果以实现方式来讲,
一种是人工将图片这种形状

一种是 非常麻烦,需要程序进行大量计算。要对图片转换成 int 数值 有所了解
我想我只能提供你思路,因为具体实现是比较麻烦的
因为我不是讲语文的,不知道能不能说明白,比较意识流。。。

人工将图片的几种形状画出一种以指定颜色背景的半透明的图,,
比如方案为
■■■■□□■■■■□□■■■■
■■■□□■■■■■■□□■■■
■■■■□□■■■■□□■■■■
■■■□□■■■■■■□□■■■
■■□■□□■□□■□□■□■■
□□□□□□□□□□□□□□□□
□□■□□□□■■□□□□■□□
■■■■□□■■■■□□■■■■
■■■□□■■■■■■□□■■■
■■■■□□■■■■□□■■■■
■■■■□□■■■■□□■■■■

我想我画的试例图你明白了吧,是可以进行对接拼图的

一个比如说红色图片 4*4大小的,那么他转成int数据时就是
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0x后面的ff表示是不透明的
第二个ff及后面的4个0表示图片颜色前2位是红中间是绿最后是蓝 这一点你可以用photoshop去查看
比如我上面第一张图的数据,转成int 数据时,就应该是

A B C D
1 0xffff0000 0xffff0000 0xffff0000 0xffff0000
2 0xffff0000 0xffff0000 0xffff0000 0x00ffffff
3 0xffff0000 0xffff0000 0xffff0000 0xffff0000
4 0xffff0000 0xffff0000 0xffff0000 0x00ffffff
5 0xffff0000 0xffff0000 0x00ffffff 0xffff0000

其中 D2 D4 及C5的位置是透明的0x00表示透明
说到这,也就是说,你应该能通过你生成的那几个指定的图片获得这几个图片对应的数据模板
之后你将你的要拼图的图片,按你设计好的模板拼图方式,生成图片块 注意,因为你要的效果是两个图片对接的,所以在生成的时候,也要注意,是对接的

如果你做到这一步,(或说成,你能想明白到这一步,哪怕不知道怎么做,没关系)

你这时应该能得到每块图片,和每块图片对应的是哪种模板
将这块图片转成int 数组形式的 数据文件。
之后将这个数据文件与对应的模板数据文件进行对应,
当发现你的模板的数据值为0x00ffffff时,就说明这个位置的颜色应该是透明的,这时因为你的图片数据与模版数据ID是相对应的,直接找到图片数据ID,将他的值改为0x00ffffff就可以了。

到这一步,你应该可以实现将所有分割后的图片,在数据上转换成了你想要的样子。
这时,你只要通过一些函数将数据文件转换成图片格式就行了。

因为我做的是手机方面的,你用的可能是J2SE吧,API我不是很熟,不能提供具体的方法。

如果用图片的话是不是一个小图片一个按钮啊?我没做过这种东西,也不是很清楚,如果切图的话就得找美工了。

java做贪吃蛇啦,俄罗斯方块啦也行啊-

以前我们用java做过windows画图板,不是很容易,后来做了一半就停了-

这个非常麻烦要自己用曲线画弧度,计算好围成拼图形状,然后填充,再设为遮罩...过程是这样,详细的自己去算吧。

不能事先在PS或者CDR里先做好,再导入到JAVA里吗?


java中能独立完成拼图小游戏的代码算什么水平
初级或中级。在Java领域中,能独立完成拼图小游戏的代码,可以算作初级或中级水平。这需要开发者具备Java基础语法和面向对象编程的基本知识,以及对Java图形界面设计和事件处理的一定了解。Java是一种广泛使用的计算机编程语言,具有简单、面向对象、跨平台等特点,Java编程语言由Sun Microsystems于1995年推出,...

java做的拼图游戏怎么实现更换图片哦
编写拼图按钮的监听器类,该类为主类的内部类。在actionPerformed()方法中,首先获得空白按钮和被单击按钮的所在行和列,然后判断这两个按钮是否相邻,如果相邻则将被单击按钮显示的图片移动到空白按钮上,并令被单击按钮显示空白图片,以及将在类中声明的空白按钮对象设置为被单击的按钮对象 思路就这样,我...

java编写拼图游戏程序,帮我编下代码!
楼主说的是类似华容道的拼图吧 帮你写代码不太可能,给你我的思路吧 创建网格对象Grid(继承JButton可以响应单击事件)...这个对象主要有如下属性:1.private int X\/\/X坐标.2.private int Y\/\/Y坐标.3.private Image img;\/\/图片对象(如果这个属性为null则为空网格)有如下方法:1.public void reloadImg...

java拼图游戏不成功为什么
button 对象只有声明, 并没有赋值,默认是null .用一个null对象去调用方法,那么就会抛出异常.没有进行异常处理,程序就会崩溃 button.addActionListener(new ImgButtonAction());\/\/ 出错...因为button为null解决办法: button对象先赋值(不能为null)再使用 建议你写代码,添加必要的注释,对每个方法的说明,...

1200分跪求JAVA数字拼图游戏源代码!
\/\/ 华容道原理的拼图游戏。 利用轻组建的套用。import java.awt.BorderLayout;import java.awt.Button;import java.awt.Choice;import java.awt.Color;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Icon;import javax.swing.ImageIcon;import ...

我在做JAVA拼图游戏,但是不知道怎么把一张大图片分解成很多小张的!还有...
可以在内存中拆分图像,使用BufferedImage类的getSubimage()方法,如下:public ArrayList<BufferedImage> dividImage(BufferedImage image) { ArrayList<BufferedImage> subimage = new ArrayList<BufferedImage>(this.row * this.col);for (int i = 0; i < this.row; i++) { for (int j = 0; ...

最近制作了 一个java 拼图游戏 如图 现在想放入时间 来计算用了多久玩完...
如果只需要计算时间,可以在开始游戏时记录一下系统时间,游戏结束时再记录一下系统时间,然后两个时间计算一下差值,得出完成时间。如果需要显示一个读秒时间,最好开一条线程,线程每循环一次休眠一秒,循环执行时利用更新机制刷新读秒显示

找高手帮我翻译这个JAVA拼图游戏代码(希望能帮我解析每句中用到的JAVA...
this.setTitle("拼图小游戏-"); \/\/设置这个对象的题目叫。。。this.setLocation(300,200); \/\/设置它的初始位置 this.setSize(308,365); \/\/设置大小 this.setResizable(false); \/\/设置是否可以改变窗口的大小(否)this.setVisible(true); \/\/是否可以显示(是)this.setDefaultCloseOperation(3); \/...

诺基亚java单机游戏盘点:你玩过哪些?
诺基亚java单机游戏第二弹:贪吃蛇 贪吃蛇作为一款经典游戏,在诺基亚手机上也有着不错的表现。玩法简单,就是利用箭头控制蛇头吃食物,蛇身随之变长,不能碰到墙壁或身体,让人上瘾。不过对于善于挑战操作难度的玩家而言,贪吃蛇的高级难度也是绝对不容小觑的。诺基亚java单机游戏第三弹:拼图 拼图游戏是一种...

关于java拼图游戏的问题 高手进
就return,如果有空格,就传点击的这个"拼图部分"进去,删除当前单元格的"拼图部分",然后把所有"拼图部分"的编号拿出来匹配.这样做的话好像比较容易 PS:代码拿出来给别人看的时候要写注释,这个是很必须的习惯!!!楼上说的纯属胡说八道,你见过9个拼图部分中只要A块回到原来的位置就成功的游戏么?

灵石县18917031526: 用java做拼图游戏,怎么把图片切割成不规则形状 -
李蚂当归: 您好,这里是shixingyoumeng为您解答!如果您要要做不规则的形状,最佳的工具为钢笔工具 打开图片--复制一层--隐藏背景层--勾一个不规则的选区--将选区转换为路径--delete即可!钢笔工具可以精确的控制选区,可以随时更改,方便控制!如果想要更加精确,建议加 辅助线 ctrl+r 如果您还有其他疑问,请点击发起追问,我将为您继续解答!如果您满意我的回答,请点击我的回答下方的选为满意答案!

灵石县18917031526: 我在做JAVA拼图游戏,但是不知道怎么把一张大图片分解成很多小张的!还有怎么做拼图成功的处理!! -
李蚂当归: 可以在内存中拆分图像,使用BufferedImage类的getSubimage()方法,如下:public ArrayList dividImage(BufferedImage image) { ArrayList subimage = new ArrayList( this.row * this.col); for (int i = 0; ifor (int j = 0; jsubimage.add((i * this.col + j), ...

灵石县18917031526: Java拼图游戏图片移动时添加音效以及图片切割代码 -
李蚂当归: Java拼图游戏图片移动时添加音效以及图片切割:切割图片就使用bitmapFactory就能解决了,可以看看这个类,音效可以看看mediaplayer

灵石县18917031526: 下了一个Java手机拼图游戏想把它的图片换成自己的,该怎么做,急急急急急 -
李蚂当归: java手机游戏一般是jar格式的吧 你可以对其解压 然后找到它里面的默认的图片 然后找一张大小一样的,修改它的名字跟默认的一样,应该就可以了

灵石县18917031526: 如何用java实现切割一张图片 -
李蚂当归: BufferedImage类有一个getSubimage()方法,以下来自API public BufferedImage getSubimage(int x,int y,int w,int h) 返回由指定矩形区域定义的子图像.返回的 BufferedImage 与源图像共享相同的数据数组.参数:x - 指定矩形区域左上角的 X 坐标 y - 指定矩形区域左上角的 Y 坐标 w - 指定矩形区域的宽度 h - 指定矩形区域的高度 返回:BufferedImage,它是此 BufferedImage 的子图像.抛出:RasterFormatException - 如果指定区域不包含在此 BufferedImage 中

灵石县18917031526: 用java如何将一张图片切割成九块,然后保存在自己的系统盘里 -
李蚂当归: 用bufferImage类的SubImage方法,切割,然后用ImageIO的静态方法,write写出到文本.

灵石县18917031526: java程序设计—拼图游戏 -
李蚂当归: http://tag.csdn.net/Article/12981728-114f-40df-b120-a77c2b8a0a99.html 你去看看,肯定有收获

灵石县18917031526: java问题
李蚂当归: getContentPane().setLayout(null); 设置当前界面布局为空 那么就可以按照自己的意愿摆放控件

灵石县18917031526: 急求用JAVA编写的图形化界面拼图小游戏代码! -
李蚂当归: 个人见解,总体需要两个二维数组(一个存储正确图片排列 Array1 String[][],一个随机生成图片排列Array2 String[][]),一个一维数组来存储图片的名称Array3 String[],.(1)如何实现图片移动 使用带图片的按钮(button =new button(getImage(Array[2][...

灵石县18917031526: java 里如何实现打这样一张图载入后,上下左右控制人物行走呢? -
李蚂当归: 这个叫人物行走方位图吧,一般多用于制作RPG类游戏,比较常见的一种做法是,取坐标:你定义一个矩形,刚好框住一个人,这样就把一个人物动作取出来了,然后控制框的坐标移动,取下一个动作,直到一个动作循环完成!一楼的办法也可以,不过是切重新切图片,比较麻烦,载入的时候,也比较麻烦!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网