语言是java,android2.2平台。我用gridview生成了 n行m列的 imageview.现在问题是,乍样让这些imageview变成另一种图片(即老鼠出来了,可以点击(可以点击就是添加监听器))
关键是,乍样让老鼠的出现,同时有3个(这里暂时最多同时有3个吧。)我现在的做法:
设个time,隔半秒就跑一次,具体做的事情:
先遍历一下list(下面提到,就是保存老鼠出来的imageview id的列表),如果时间己经达到或超过老鼠现身的时间,则从list里去掉。
list里元素的结构

imageview的id,
出现开始时间戳

遍历完后,如果不够3个(即同时现身时的最大老鼠数),则随机生成并添加到list里,并对imageview生成老鼠图片。
大概思路是这样。不知这样会不会有问题?即同时生成的问题。刚做软件类的东西,很多不懂(一直做web方面的)。我下载了两个也是打老鼠游戏的,但看一看代码,灰常复杂比起我的豸像是几何级。
我的好像也就四五百行代码就ok了。(当然不考虑效果,样子之类的)。
顺便请教各位,有没有其它的思路去做呢??

解决方案 »

  1.   

    打老鼠没写过,但是宝石拼图类接触过
    一般都用suferfaceView带双缓冲的
    在我看来,打老鼠难度是递增的,哪有遍历完后,如果不够3个
    这个说法,不管你打不打,过了时间,老鼠藏起来了,list为空,你可以把这两个重要参数提出来,一是出鼠间隔二是老鼠数量,生成系列2.0秒/1只,放在arraylist里,根据时间一条条往后赋值不就行了了,出鼠洞口也生成好,至少都是随机好的一个数组,这就是载入时候的loading做的事源码写的大,经常见类继承来继承去,找不到头绪,那是对的,老外也都这么做,一方面分的清分的细
    另一方面扩展性强,例如添加第二关打飞过来的猫,例如正打老鼠天上掉钱了,接钱等,这都是扩展,另外格线程操作让动画表现也很到位,更多的都忘了
      

  2.   

    谢谢楼上的。1. 一般都用suferfaceView带双缓冲的
    首先这个,我看了看,我暂时还用不上,我刚接触android开发,一步一步来。
    2. 在我看来,打老鼠难度是递增的,哪有遍历完后,如果不够3个
    难度递增,是个需求,现阶段先把功能实现出来,以后会慢慢的增加这些细节。
    按照我原来的做法,可能会有这个缺点:如果显示老鼠列表为空,则add三个,这个时候,就会造成三个老鼠同时出来,因为鼠出来时间一定,所以他们以后出来时也是一起的。这个不够人性化。但可以增加个随机数让鼠是否出来。现在问题是:乍样让老鼠随机出来?并且最高出来的鼠数量有限制。
    我再说说我的做法:
    先遍历showlist(老鼠出来的列表),如果出来的时间达到,则把这个元素从list里remove。
    然后再判断list数量是否到上限。没有,则增加鼠出来。
      

  3.   

    比方说有横三竖三九个洞,
    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都是用地图编辑器来生成这类数组)(这块该有源码下载啊)
      

  4.   

    游戏,一般还是surfaceView 吧。