刚学习android开发几天,在做打老鼠时遇到的一些问题

床上等您 2012-10-15 11:44:50
语言是java,android2.2平台。

我用gridview生成了 n行m列的 imageview.

现在问题是,乍样让这些imageview变成另一种图片(即老鼠出来了,可以点击(可以点击就是添加监听器))
关键是,乍样让老鼠的出现,同时有3个(这里暂时最多同时有3个吧。)

我现在的做法:
设个time,隔半秒就跑一次,具体做的事情:
先遍历一下list(下面提到,就是保存老鼠出来的imageview id的列表),如果时间己经达到或超过老鼠现身的时间,则从list里去掉。
list里元素的结构

imageview的id,
出现开始时间戳

遍历完后,如果不够3个(即同时现身时的最大老鼠数),则随机生成并添加到list里,并对imageview生成老鼠图片。


大概思路是这样。不知这样会不会有问题?即同时生成的问题。

刚做软件类的东西,很多不懂(一直做web方面的)。

我下载了两个也是打老鼠游戏的,但看一看代码,灰常复杂。。。

比起我的豸像是几何级。
我的好像也就四五百行代码就ok了。(当然不考虑效果,样子之类的)。


顺便请教各位,有没有其它的思路去做呢??
...全文
165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
franzhong 2012-10-15
  • 打赏
  • 举报
回复
打老鼠没写过,但是宝石拼图类接触过
一般都用suferfaceView带双缓冲的
在我看来,打老鼠难度是递增的,哪有遍历完后,如果不够3个
这个说法,不管你打不打,过了时间,老鼠藏起来了,list为空,你可以把这两个重要参数提出来,一是出鼠间隔二是老鼠数量,生成系列2.0秒/1只,放在arraylist里,根据时间一条条往后赋值不就行了了,出鼠洞口也生成好,至少都是随机好的一个数组,这就是载入时候的loading做的事

源码写的大,经常见类继承来继承去,找不到头绪,那是对的,老外也都这么做,一方面分的清分的细
另一方面扩展性强,例如添加第二关打飞过来的猫,例如正打老鼠天上掉钱了,接钱等,这都是扩展,另外格线程操作让动画表现也很到位,更多的都忘了
licaiyuren 2012-10-15
  • 打赏
  • 举报
回复
游戏,一般还是surfaceView 吧。
追风筝的孩子 2012-10-15
  • 打赏
  • 举报
回复
才学几天就打老鼠了,不会做游戏,表示不懂
franzhong 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
1. 一般都用suferfaceView带双缓冲的
首先这个,我看了看,我暂时还用不上,我刚接触android开发,一步一步来。
2. 在我看来,打老鼠难度是递增的,哪有遍历完后,如果不够3个
按照我原来的做法,可能会有这个缺点:如果显示老鼠列表为空,则add三个,这个时候,就会造成三个老……
[/Quote]
比方说有横三竖三九个洞,
1111
1111
1111
1111
把他想成二维的数组,int x=random(4)/int y=random(4)//判断有重复的就重来,老鼠多的时候效率不高,那是可判断没老鼠的,但是肯定会有浪费的,后面再提下这事
myList.add(new Point(i,i));对于老鼠下去后你remove问题,看来有两种模式了,常见的是,同时出来二只,打与不打,两只消失,接着三只同时又出来模式,你这是出来一个,正要打,又出来一个这种模式,后面老鼠多速度快,有参差不齐感,如果是这样的话,就remove,如果是第一种就可以clear了,少了很多操作
再说出来动画啥的,你要是要绚的,就各自单线程刷动画效果(基本是贴图),被打有金星等,
你若是一张图片一下出来了,就一个就行了,专门负责这块,其他游戏开发也都是的,我也看了一些小游戏开发的书上面,不用引擎这块都这样处理
最后说随机数方面,这是所有语言都共有,我觉得,如果想不比较重不重复的话,我有几种方案你参考,我也没试过:一是能把数组搞的像vector(C)一样,取一条少一条方式,二是把所有可能存入一数组,然后打乱,就取前两条(sort),没搞过,其实现在你不用考虑这些,可以忽略
还有一种可行的方案是,你手动打好可能的值用于初始化,重复也无所谓,只间小改一点,不用担心用户闭着眼睛打完田鼠(RPG都是用地图编辑器来生成这类数组)(这块该有源码下载啊)
床上等您 2012-10-15
  • 打赏
  • 举报
回复
谢谢楼上的。

1. 一般都用suferfaceView带双缓冲的
首先这个,我看了看,我暂时还用不上,我刚接触android开发,一步一步来。


2. 在我看来,打老鼠难度是递增的,哪有遍历完后,如果不够3个
难度递增,是个需求,现阶段先把功能实现出来,以后会慢慢的增加这些细节。
按照我原来的做法,可能会有这个缺点:如果显示老鼠列表为空,则add三个,这个时候,就会造成三个老鼠同时出来,因为鼠出来时间一定,所以他们以后出来时也是一起的。这个不够人性化。但可以增加个随机数让鼠是否出来。

现在问题是:乍样让老鼠随机出来?并且最高出来的鼠数量有限制。
我再说说我的做法:
先遍历showlist(老鼠出来的列表),如果出来的时间达到,则把这个元素从list里remove。
然后再判断list数量是否到上限。没有,则增加鼠出来。。。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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