Android挂机小游戏1

来源:互联网 发布:日常喝的红酒推荐 知乎 编辑:程序博客网 时间:2024/04/30 20:45

准备开个新坑,做一个普通的类似丧尸女友那种挂机小游戏。

在打开AS时候遇到了第一个问题,xml无法可视化预览。
其实是相当基础的问题,但是就是没有找到。幸好有万能的百度。
问题主要来自style中的默认设置。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

修改为

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

即可解决。怀疑是系统未能读取到之前的style。有空深入研究一下。

新建了项目之后,第一部便是捋一遍项目的逻辑。虽然项目很简单,这一步还是有必要的
结构1

结构2

项目预计主要包含两个Activity页面。
第一个Main页面,即是进入活动后的第一个页面,包含三个按钮。既然存在重新开始的按键,说明这个项目需要用到一定的数据存储。至于用什么存储形式准备稍后考虑。
第二个页面,Home页面,就是游戏的主页面。
因为是挂机游戏,所以没有什么太复杂的操作。游戏人物主要的动作也只是在页面中随机漂浮。这里应该要写一个碰撞挪动的算法,算法应该比较简单。
此外点击食物后应该会出现几个动作的切换喂食姿势,在喂食时需要暂停动作。

活动预计包含三个碎片。
第一个碎片即是游戏人物的活动页面,除了之上提到的角色漂浮,另外包含了进度条。每一个食物投下去,影响到进度条的进度,也同时影响到角色的形象。这是一个需要存储的主要参数。
另外对话应该根据进度条的读数的不同阶段,来随机筛选出不同的部分对话,在搭建项目时应该考虑到这方面,来对数据进行一个存储。最好做成能随时插拔插入新阶段的结构。

第二个碎片即是外出碎片,这个碎片不需要包含太多东西,主要内容只有一个主页面和几个随机漂浮的角色形象,需要绑定一个点击响应。点击,图片消失,并且食物的数量+1。
第三个碎片,图鉴则是主要对不同阶段的对话和图片进行保存即可。

在大致对项目有具体构思之后,开始主页面的搭建。

暂时先不考虑任何美工布局,先做出来具体功能。一个简简单单的页面,三个TextView。跳转进HomeActivity。
MainActivity

考虑到应该是非常轻量级的数据量,于是决定用SharedPreference存储。
接着写了一个基础的SP工具类,最简单的存储取出方法应该不用说。又跑去查了一下平常只是一直用着的Context.MODE_PRIVATE几个究竟有什么区别。

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入

        tvContinueGame.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                initData();                startActivity(MainActivity.this , HomeActivity.class);            }        });    }    //初始化数据    private void initData(){        GlobalData.MAIN_LEVEL = SharedPreferencesUtil                .getInt(getApplicationContext() , GlobalData.SP_NAME , GlobalData.MAIN_LEVEL_NAME);        GlobalData.MAIN_LEVEL_CHILD = SharedPreferencesUtil                .getInt(getApplicationContext() , GlobalData.SP_NAME , GlobalData.MAIN_LEVEL_CHILD_NAME);    }

主要代码基本就是这一段。在点击继续游戏的时候进行一个数据的读取。
今天时间到了,明晚继续。