********休闲娱乐灵活球球小游戏********

==========================================我是分割线======================================
游戏制作思路:

Created with Raphaël 2.1.2欢迎界面欢迎动画界面主界面结束界面yes

游戏内效果图-欢迎界面:

StartMainActivity,java 欢迎界面代码:

package com.example.feixian;import java.util.Timer;
import java.util.TimerTask;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.app.Activity;
import android.content.Intent;public class StartMainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {requestWindowFeature(Window.FEATURE_NO_TITLE);super.onCreate(savedInstanceState);setContentView(R.layout.activity_start_main);//设置游戏全屏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);TimerTask task=new TimerTask() {@Overridepublic void run() {Intent intent=new Intent(StartMainActivity.this, VedioMainActivity.class);startActivity(intent);finish();}};Timer timer=new Timer();timer.schedule(task, 3000); }

游戏内效果图-欢迎动画界面1:

游戏内效果图-欢迎动画界面2:

VedioMainActivity.java欢迎动画界面代码:

package com.example.feixian;import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.VideoView;public class VedioMainActivity extends Activity {private VideoView video_log;@Overrideprotected void onCreate(Bundle savedInstanceState) {requestWindowFeature(Window.FEATURE_NO_TITLE);super.onCreate(savedInstanceState);setContentView(R.layout.activity_vedio_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);video_log = (VideoView) findViewById(R.id.video_log);//设置路径Uri uri=Uri.parse("android.resource://com.example.feixian/"+R.raw.video_log);video_log.setVideoURI(uri);video_log.requestFocus();video_log.start();//播完自动进入主页面video_log.setOnCompletionListener(new OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer arg0) {Intent intent=new Intent(VedioMainActivity.this, MainActivity.class);startActivity(intent);finish();}});}}

游戏内效果图-游戏界面:

MainActivity.java主界面(游戏界面)代码:

package com.example.feixian;import java.io.IOException;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;public class MainActivity extends Activity {private int zmkuang;int zmGao;float qiu_size = 16;// 球得大小float qiu_sudu = 3;// 球的速度float qiu_shang = 90;// 球上升的帧数float qiuX;float qiuY;// 柱子得变量float zhu_gao;float zhu_gao_2;float zhu_kuan = 40;float zhu_kuan_2 = 40;float zhuX;float zhuY;float zhuX_2;float zhuY_2;float zhu_sudu;int num ;boolean jieshu = false;// 判断游戏是否结束@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);// 使游戏全屏运行getWindow().setFlags(   WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);// 让游戏横屏// 获取窗口管理器mygameView = new MygameView(this);setContentView(mygameView);// 获取窗口的一个管理器WindowManager manager = getWindowManager();Display display = manager.getDefaultDisplay();DisplayMetrics displayMetrics = new DisplayMetrics();display.getMetrics(displayMetrics);// 获取一个屏幕的宽和高zmkuang = displayMetrics.widthPixels;zmGao = displayMetrics.heightPixels;play();}// 写一个游戏开始的方法public void play() {jieshu = false;// 设置两根柱子的初始位置zhuX = zmkuang - zhu_kuan;zhuY = 0;zhuX_2 = zmkuang - zhu_kuan;zhuY_2 = zmGao;zhu_gao = zmGao / 2 - 200;zhu_gao_2 = zmGao - zhu_gao - 200;zhu_sudu = 5;View.OnTouchListener shoushi=new View.OnTouchListener() {@Overridepublic boolean onTouch(View arg0, MotionEvent arg1) {switch(arg1.getAction()){case MotionEvent.ACTION_DOWN://手指点击qiuY=qiuY-qiu_shang;handler.sendEmptyMessage(0*123);break;}return true;}};//写一个手势识别mygameView.setOnTouchListener(shoushi);qiu_sudu = 3.5f;qiu_shang = 90;num = 0;// 球的初始位置qiuX = 50;qiuY = zmGao / 2;handler.sendEmptyMessage(0*123);// 写一个定时器Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {// 设置小球跟柱子的坐标qiuY = qiuY + qiu_sudu;zhuX = zhuX - zhu_sudu;zhuX_2 = zhuX_2 - zhu_sudu;//如果柱子碰到屏幕边缘if(zhuX<=0){zhuX = zmkuang - zhu_kuan;zhuX_2 = zmkuang - zhu_kuan;}//判断小球是否碰到屏幕边缘if(qiuY>=zmGao){jieshu=true;}if(qiuX>=zhuX){if(qiuY<zhu_gao||qiuY>zhu_gao_2 ){jieshu=true;}//随机柱子的高Random random=new Random();int height = random.nextInt(250)+100;// 设置球穿过两根柱子后位置zhuX = zmkuang - zhu_kuan;zhuY = 0;zhuX_2 = zmkuang - zhu_kuan;zhuY_2 = zmGao;zhu_gao = zmGao / 2 - height;zhu_gao_2 = zmGao - zhu_gao - height;zhu_sudu = 5;if(jieshu==false){//写一个过柱子时声音的方法  muck();num++;}}if(jieshu==false){handler.sendEmptyMessage(0*123);}}}, 0, 15);}// handler消息机制Handler handler = new Handler() {public void handleMessage(Message msg) {super.handleMessage(msg);if (msg.what == 0*123) {mygameView.invalidate();}}};private MygameView mygameView;private MediaPlayer mp3;// 写一个画板class MygameView extends View {// 写一个画笔的对象Paint paint = new Paint();public MygameView(Context context) {super(context);// TODO Auto-generated constructor stub}protected void onDraw(Canvas canvas) {super.onDraw(canvas);//插入背景图片canvas.drawRGB(0,0,0);// 画笔的默认样式paint.setStyle(Paint.Style.FILL);// 设置抗拒齿paint.setAntiAlias(true);if (jieshu) {// 执行游戏结束得效果Intent intent=new Intent(MainActivity.this, TwoActivity.class); intent.putExtra("sum", String.valueOf(num));startActivity(intent);finish();} else {// 执行游戏进行时的效果// 设置球的颜色paint.setColor(Color.rgb(251, 178, 23));paint.setTextSize(60);// 设置画笔的大小// 画一个圆的小球canvas.drawCircle(qiuX, qiuY, qiu_size, paint);paint.setColor(Color.rgb(244, 96, 108));paint.setTextSize(60);// 开始写字canvas.drawText(num+"", zmkuang / 2 - 10, 60, paint);// 绘制上柱子paint.setColor(Color.rgb(80, 80, 200));canvas.drawRect(zhuX, zhuY, zhuX + zhu_kuan, zhuY + zhu_gao,paint);// 绘制下柱子canvas.drawRect(zhuX_2, zhuY_2 - zhu_gao_2,zhuX_2 + zhu_kuan_2, zhuY_2 + zhu_gao_2, paint);}}}//写一个背景音乐public void muck(){MediaPlayer mediaplayer;mediaplayer=new MediaPlayer();mediaplayer.setLooping(true);mp3 = MediaPlayer.create(this, R.drawable.music);try {mp3.prepare();} catch (IllegalStateException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}mp3.start();mp3.setOnCompletionListener(new OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer arg0) {// TODO Auto-generated method stub}});}}

游戏内效果图-游戏结束界面:

TwoActivity.java游戏结束界面代码:

package com.example.feixian;import java.util.ArrayList;
import java.util.Collections;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;public class TwoActivity extends Activity {private String sum_value;private ArrayList<String> score;private int tab=1; protected void onCreate(Bundle savedInstanceState) {requestWindowFeature(Window.FEATURE_NO_TITLE);super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 使游戏全屏运行getWindow().setFlags(   WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//写一个集合score = new ArrayList<String>();//对集合中的元素进行排序Collections.sort(score);//获得控件TextView end_TextView = (TextView) findViewById(R.id.end_TextView);TextView sum_TextView = (TextView) findViewById(R.id.sum_TextView);Button start_btn1 = (Button) findViewById(R.id.start_btn1);Button upload_btn2 = (Button) findViewById(R.id.upload_btn2);Button check_btn3 = (Button) findViewById(R.id.check_btn3);sum_value = getIntent().getStringExtra("sum");end_TextView.setText("Game Over");sum_TextView.setText("你的成绩为:"+sum_value);//写重新开始的单击事件start_btn1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Intent intent=new Intent(TwoActivity.this, MainActivity.class);startActivity(intent);  }});//写上传成绩的单击事件upload_btn2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {if(tab==1){score.add(sum_value);Toast.makeText(TwoActivity.this, "上传成功!", 1).show();tab++;}else{Toast.makeText(TwoActivity.this, "您已经上传!", 1).show();}   }});//写查看榜单的单击事件check_btn3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {StringBuffer buffer=new StringBuffer();for (int i = 0; i < score.size(); i++) {buffer.append(score.get(i)+"\n");}Toast.makeText(TwoActivity.this, "排行为:"+"\n"+buffer, 1).show();}});     }
}

喜欢的话可以进入我的GitHub里有这个游戏的项目文件,不喜勿喷,第一次写博客。

点我进入灵活的球球GitHub项目链接。

版权声明:非商用自由转载-保持署名-注明出处
署名(TM):TopGradeModel

最新最酷Android手机游戏灵活的球球代码相关推荐

  1. 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法

    前言 相信这样一个问题,大家都不会陌生, "有什么的方法可以使Android的程序APK不用安装,而能够直接启动". 发现最后的结局都是不能实现这个美好的愿望,而腾讯Android ...

  2. 好玩的手机android游戏,好玩的android手机游戏2018_热门android游戏排行榜

    ?很多安卓用户都在找好玩的android手机游戏,指尖端的操作,让你的游戏更好玩,接下来一起来看看好玩的android手机游戏2018.热门android游戏排行榜前十,必不可错过喔! 2018好玩的 ...

  3. 疯狂足球——Android手机游戏开发(实习报告)

    实习是每一个大学毕业生必须拥有的一段经历,上学期暑期开始之前,我们系集体经历了一次短短的20几天的实习.为节约经费,实习的地点定为学校机房内,从某公司里请来了几个指导老师带领我们开发一个手机游戏-&q ...

  4. android+游戏推荐+2014,2014年10佳iOS和Android手机游戏排行榜单 经典耐玩值得推荐

    过去的几年里每年都会有一些经典的手机游戏,手机配置的逐步提升,让开发者能够开发更多有趣好玩的游戏出来.当然,也有一部分是电脑移植过来的,不过要在手机/平板上获得优秀的体验和好评,并不是一件容易的事情. ...

  5. Android手机游戏浅析

    视频课:https://edu.csdn.net/course/play/7621 1. 游戏对于电脑发展的影响.很多青少年因为有电脑游戏而了解电脑的,正如很多人因为想看家庭电影,而了解VCD一样.人 ...

  6. android设置屏幕高度和宽度设置,Android手机的屏幕宽高度和代码设置控件的宽高度...

    1.Android手机的屏幕宽高度 WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); int w ...

  7. 无线智能插座Android手机客户端软件主控制MainActivity代码实现

    该无线智能插座Android手机客户端软件主控制MainActivity在文件中的位置如下图所示,MainActivity是Android手机客户端软件实现用户注册.登录.智能控制插座等功能的代码实现 ...

  8. 酷派android最新版本,酷云手机版下载

    软件标签: 酷云酷派 功能介绍 1.手机端和云端数据同步 联系人.日程.记事本.书签.短信.通话记录.图片......一键备份至云端! 2.多层加密,安全无忧 荣获国家信息产业部"最安全云存 ...

  9. 蓝牙键盘 android手机游戏,使用BluetoothHidDevice将安卓手机同时模拟成鼠标和键盘...

    一直以来就有一种想法,就是自己写一个APP将安卓手机模拟成鼠标/键盘,应急的时候可以用来代替鼠标/键盘.之前也在国内外的网站上找了各种方案,但是这些方案不是很好,直到谷歌发布的API28后终于有了很好 ...

最新文章

  1. Redis 为什么默认 16 个数据库?
  2. c语言错误2015,C语言2015(回答).doc
  3. 使用MySQL Workbench远程管理工具进行远程管理Mysql的错误及解决办法
  4. 单片机学习--3D动画演示单片机工作原理
  5. 安装ubuntu20.04(安装vim、gcc、VMtools、中文输入法、汉化、修改IP地址)
  6. Django---模版层
  7. docker项目部署 php_docker部署php的web项目
  8. scanner python_Python之Scanner编写
  9. .Net MVC中SelectList绑定默认值失效的解决办法
  10. ADB投屏_智能安全帽出厂配置调测工具最优之选:投屏神器Qtscrcpy
  11. linux如何删除非空文件夹_linux删除文件夹命令
  12. 苹果个人账号转公司账号
  13. 2018年小米校招笔试题
  14. 如何用Photoshop制作渐变图形
  15. Xmanager 5远程连接CentOS7图形化界面
  16. 文件系统(内存上的 + 磁盘上的)
  17. [c语言]0xC0000005访问冲突
  18. 2019我获得的些许成绩,能不能弥补这一年光阴的流逝?盘点2019我的得失
  19. 基于Mysql 的SQL应用---2021(ZSD版)
  20. 洗车店开发小程序都有哪些功能

热门文章

  1. Ubuntu 联网 eht0没有问题
  2. 条码编码方式-----Code 39与code 128条形码的区别
  3. C语言如何实现任意数相乘
  4. IE打不开网页但QQ能上但的解决方案
  5. 分布式存储的架构以及存在的问题和解决办法1
  6. 完全用 Linux 工作
  7. javascript学习笔记 - import存在重复引用js问题么(附详细import说明)
  8. ASP编程十大技巧(基础)
  9. android studio怎么使用sharesdk,Android Studio中ShareSDK分享的使用.
  10. windows server 2012 本地用户与组账户的创建与管理