愤怒的小鸟选关卡界面制作

先回观几张大家熟悉的效果图:

这个界面大家非常熟悉,现在小弟就想做这个效果。
先讲下我的思路:
第一步:动态选择排版样式
由于这里有四种界面效果,每张界面上的按钮数量不同,也就是说有不同的四种不同的排班,所以我考虑到设计排班的问题如下:(说明:count关卡数)
15<count<=21时,采用第1张图片的排版3*7的样式
12<count<=15时,采用第2张图片的排版3*5的样式
6<count<=12时,采用第3张图片的排版2*6的样式
count<=6时,采用第4张图片的排版2*3的样式
第二步:动态创建自定义button
既然上面基本版样式已经选择好了,接下来就是动态添加button到网格布局中。
第三步:将布局添加Gallery和Button,然后就可以创建关卡界面GridView了。这个动态界面的创建根据存放背景图片的数组backImg[]来动态创建。

源代码下载:http://download.csdn.net/detail/aa4790139/4019204

效果如下:

这个效果还算不错,能满足需求。要想跟上面愤怒的小鸟选关界面,是有欠缺问题的:

1、Gallery的卷动轴效果为左右的两边的阴影(用红笔圈出来的效果),把这种去掉,改成上小鸟界面的三点显示效果:

2、自定义适配器继承BaseAdapter中getView方法中,将其中的ImageView改成Button,相应就没有反应了呢?这是为什么呢?

3、滑动区域只为最下按钮一排才有效,还有就是当滑到2/3的时候而此时我的手指有没有松开,却会自动选择显示大View的界面。

4、当滑到最左的时候,滑不动了。想弄成滑到最左端的时候还是可以滑动,只是左边没有显示,松手后有自动弹回来的效果。

小弟暂时没有解决,忘后面解决的朋友告诉我,也跟大家分享分享。谢谢!

虽说这不是我做的,但我家只有1M的网络,好不容易下下来,所以,分定2. 使用说明: 1,复制本程序到游戏目录里,执行本程序. 2,在左边的树形目录择你要解码的关卡,点"解码关卡"的按钮,这时候右边的编辑框会出现解码后的内容.| 3,点击"复制到的剪贴版"按钮,将右边的编辑框内容复制到剪贴版. 4,点击 "用火狐或者IE9执行关卡编辑器" 按钮,会启动浏览器连接到在线小鸟编辑器关卡. (要特别注意的是,这个在线编辑器关卡是HTML5格式,只有IE9 和火狐最新版支持,你要使用的话,必须上述 浏览器才能正常打开,不然浏览器就出现一个LOADING IMAGES,PLEASE WAIT.. 的红底白字字样) 5,在浏览器版的关卡代码框中,把刚才复制的代码黏贴进去. 6,按下浏览器页面上的render/revert 关卡编辑中就会出现当前关卡的内容. 7,任意择上面的物件到关卡编辑器中,修改你喜欢的内容. 关卡编辑器特性: a、按住Ctrl可中多个物品 b、按键J :连接两个物品。 c、按键R :取消物品连接。(连接可以使两个物体关联,比如炸药箱和气球) d、按键D :复制所物品。 e、中物品后按鼠标右键,旋转物品 8,完成编辑后,按下界面中的 save changes 将代码复制到剪贴版 9,回到编辑器的GUI界面,按下 "黏贴修改好的代码" ,会更新编辑框的内容,再按下记录关卡 10,按下记录关卡,会提示你是否保存当前关卡择是就完成了关卡编辑所有操作 -----游侠网转载-----
以下是一个简单的Java代码,实现了愤怒小鸟游戏的基本功能: ``` import java.awt.*; import java.awt.event.*; import javax.swing.*; public class AngryBirds extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; private JButton launchButton; private JPanel gamePanel; private JLabel scoreLabel; private int score = 0; public AngryBirds() { setTitle("Angry Birds"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(800, 600); // 创建游戏面板 gamePanel = new JPanel(); gamePanel.setBackground(Color.WHITE); gamePanel.setLayout(null); // 创建发射按钮 launchButton = new JButton("Launch"); launchButton.setBounds(350, 500, 100, 40); launchButton.addActionListener(this); gamePanel.add(launchButton); // 创建分数标签 scoreLabel = new JLabel("Score: " + score); scoreLabel.setBounds(10, 10, 100, 30); gamePanel.add(scoreLabel); // 添加游戏面板到窗口 getContentPane().add(gamePanel); setVisible(true); } public void actionPerformed(ActionEvent e) { // 点击发射按钮时,启动小鸟飞行动画,并更新分数 score += 10; scoreLabel.setText("Score: " + score); launchBird(); } private void launchBird() { // 在游戏面板上启动小鸟飞行动画 // 省略代码... } public static void main(String[] args) { new AngryBirds(); } } ``` 这是一个简单的实现,实际的愤怒小鸟游戏需要更多的功能和复杂的逻辑,例如小鸟的移动、猪的碰撞检测、不同的关卡等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值