zoukankan      html  css  js  c++  java
  • 是男人就下100层【第五层】——2048游戏从源代码到公布市场

    上一篇《是男人就下100层【第五层】——换肤版2048游戏》中阳光小强对2048游戏用自己的方式进行了实现,并分享了核心源码,这一篇阳光小强打算将该项目的全部源码公开并结合这个实例在这篇文章中介绍一下怎样加入广告和实现分享功能。

    终于执行效果例如以下(很多其它执行效果请看《是男人就下100层【第五层】——换肤版2048游戏》):


    一、怎样实现换肤

    换肤的思路事实上非常easy。在ActionBar中加入菜单。当用户选择某一个皮肤后就将当前的皮肤状态改动并保存到SharedPreference中,以便后面启动后直接读取皮肤,创建该皮肤的Bitmap对象并在onDraw中绘制。
    	private void changeSkin(int skin) {
    		Editor edit = sharedPreference.edit();
    		edit.putInt("skin", skin);
    		edit.commit();
    		my2048View.changeSkin(skin);
    	}
    	public void changeSkin(int skin){
    		this.skin = skin;
    		switch (skin) {
    		case 0:
    			for(int i=0; i<bitmaps.length; i++){
    				bitmaps[i] = null;
    			}
    			for(int i=0; i<bitmaps_skin3.length; i++){
    				bitmaps_skin3[i] = null;
    			}
    			break;
    		case 1:
    			for(int i=0; i<bitmaps_skin3.length; i++){
    				bitmaps_skin3[i] = null;
    			}
    			initBitmap();
    			break;
    		case 2:
    			for(int i=0; i<bitmaps.length; i++){
    				bitmaps[i] = null;
    			}
    			initBitmap();
    			break;
    		}
    		invalidate();
    	}

    二、怎样加入广告

    在加入广告之前有些朋友可能就会问了,什么广告平台比較好?这个问题的答案事实上我也不知道,在这之前阳光小强从来没有在app中加入过广告。这次仅仅是尝试,就先用了有米的广告,最后又换成了聚米的广告(个人认为聚米的广告收益稍高)。

    事实上各种平台的广告集成方式基本相似。以下就看看聚米的广告怎样集成吧:

    我第一次选择的官方统一PUSH包。集成后发现360非常容易检測出来,后来又换成了自己定义PUSH的方式(官方文档非常具体:http://www.adjumi.com/AppDevPlat/Page/SDKSm.aspx),我这里就不一步步的解释了。
    最后记得开启广告:

    接下来做的事情就非常easy了,隔一段时间看看自己的收益吧大笑

    三、怎样加入分享功能

    分享功能实现的方式大概有两种。一种是通过启动系统的分析组件(界面不好改动。不易控制)。还有一种是用第三方的分析组件(容易自己定义。界面美观,推荐)。

    第一种方法实现例如以下:
    			@Override
    			public void onClick(View arg0) {
    				/*my2048View.saveMaxScore();
    				Intent intent=new Intent(Intent.ACTION_SEND);    
                    intent.setType("image/*");    
                    intent.putExtra(Intent.EXTRA_SUBJECT, "LOL版2048"); 
                   // intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File("android:resource://com.example.my2048/"+R.raw.share_img)));
                    intent.putExtra(Intent.EXTRA_TEXT, "我的最高纪录是"+ sharedPreference.getInt("maxScore", 0) +"分,赶快来玩吧,LOL版2048好玩!有木有~~。进去看看:http://blog.csdn.net/dawanganban/article/details/37863693");            
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    
                    startActivity(Intent.createChooser(intent, getTitle()));    */
    				// 是否仅仅有已登录用户才干打开分享选择页
    				my2048View.saveMaxScore();
    		        mController.openShare(MainActivity.this, false);
    			}
    另外一种方式的实现有多种平台可选(这里选择友盟)
    首先注冊为友盟的开发人员,并获取到友盟的appkey
    友盟分享的帮助文档(http://dev.umeng.com/social/android/share/quick-integration),在实现分享之前须要做一些准备工作,去各个分享平台申请appkey

    有个分享的具体请參考友盟的API(这里吐槽一下。API文档写的太烂了~~)
    友盟的集成方式有三种,我选择的是官方推荐的另外一种方式。所以须要引入一个外部的project(用于分享的project),而且将这个project放到了与该project同级的文件夹。
    友盟社会化分享组件project(项目中用的Git下载地址:git@code.csdn.net:lxq_xsyu/social_sdk_library_project.git)
    这里混淆的时候须要注意一点路径问题:
    -libraryjars ../social_sdk_library_project/libs/SocialSDK_QQZone_2.jar

    四、完整源码下载

    上面仅仅是抛砖引玉。有关具体和更好的方法请參考该项目,我将项目的全部源码下载地址贴出(注:请使用Git工具下载,并下载上面的分享组件project使用如图方式加入)

    Git下载地址:git@code.csdn.net:lxq_xsyu/my2048.git
    最后假设你认为对你有帮助,别忘了给阳光小强投上一票,投票地址http://vote.blog.csdn.net/article/details?articleid=37863693

    假设有问题请在以下留言~~假设阳光小强看到会及时回复的微笑

  • 相关阅读:
    Springboot+resteasy定时任务
    MySql COUNT(),SUM()组合用法
    MySql按每日、每周、每月分组统计数据
    阿里云通过访问地址来缩小图片,减少流量消耗
    ExtJs6获取form里的数据
    postfix中recipient/client/sender/helo四者的区别<转载>
    用telnet命令,POP3接收邮件
    用telnet命令,SMTP发送邮件
    Linux 标准目录结构
    centos minimal Bind 主从服务器部署
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5176785.html
Copyright © 2011-2022 走看看