当前位置: 首页 > news >正文

天津企业做网站多少钱知名企业公司

天津企业做网站多少钱,知名企业公司,南阳最新通知今天,南昌格网科技为什么80%的码农都做不了架构师#xff1f; 本文章属于原创性文章#xff0c;珍惜他人劳动成果#xff0c;转载请注明出处#xff1a;http://www.pm-road.com/index.php/2014/11/06/161/ 前言#xff1a;最 近闲来无事#xff0c;而且也是因为刚接触安卓不… 为什么80%的码农都做不了架构师    本文章属于原创性文章珍惜他人劳动成果转载请注明出处http://www.pm-road.com/index.php/2014/11/06/161/   前言最 近闲来无事而且也是因为刚接触安卓不久所以萌生了以后在开发web 项目的过程中同样开发安卓手游因前一段时间项目需要独立完成了一款功能型手机app 该App比较简单全是按钮操作也就是Activity之间的相互传值与过渡所以对安卓的基本知识有了一定了解在我的印象当中感觉安卓手游是比 较困难的但是有困难就要克服所以有了开发游戏的念头。   接着上一篇文章把实体类和线程实体类创建之后我们把代码和安卓的xml进行整合一下目前涉及的只有一个MainActivity.java和一个MySurfaceView类layout 中的xml 目前只一个activity_main.xml 文件   按照安卓开发流程先把MainActivity.java中的代码补充一下首先在这个activity中应该有你控制的飞机实体类还有 MySurfaceView这个类考虑到可能需要屏幕的高度和宽度所以还应该有两个属性一个宽度一个高度以下是代码但是此activity 继承了一个BaseActivity(该类没有做一些具体操作只是在创建activity的时候把屏幕全屏化)   package com.pm_road.fireair.base;import android.app.Activity; import android.os.Bundle; import android.view.Window; import android.view.WindowManager.LayoutParams;/**** ClassName: BaseActivity* Description: 基类* author lipeng* date 2014-11-4 上午10:46:01**/ public class BaseActivity extends Activity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 将游戏界面设置为全屏requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN,LayoutParams.FLAG_FULLSCREEN);}}   以下是主界面代码       package com.pm_road.fireair;import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.view.ViewGroup.LayoutParams; import android.widget.ImageButton;import com.pm_road.fireair.base.BaseActivity; import com.pm_road.fireair.bean.YourPlane; import com.pm_road.fireair.common.CommonUtil; import com.pm_road.fireair.view.MySurfaceView;/**** ClassName: MainActivity* Description: 空中大战进口页面* author lipeng* date 2014-11-4 上午10:42:51**/ public class MainActivity extends BaseActivity {// private WelcomeView welcomeView;// 欢迎页面//这里要解释一下原因这里定义了一个飞机图片和一个飞机实体类目的是把飞机的图片和实体类进行了分离在界面上移动飞机的时候//只是移动 了该图片并未移动飞机只是在移动图片的过程中会把飞机图片的xY坐标赋值给飞机实体类这里的飞机实体类是不可见///的只是和图片进行绑定 获取坐标而已// 飞机图片private ImageButton yourPlanImg;// 控制的飞机实体private YourPlane yourPlane;private MySurfaceView surfaceView;// 上下文private Context context;private int windowHeight;private int windowWidth;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);context this;setContentView(R.layout.activity_main);/** 初始化页面 */initView();/** 初始化实体类 */initBean();/** 增加事件 */initListener();/** 初始化子视图类 */initSubView();}/*** 初始化子视图*/private void initSubView() {this.addContentView(surfaceView, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));Log.i(CommonUtil.TAG, “初始化子视图”);}/*** 初始化实体类*/private void initBean() {yourPlane new YourPlane();yourPlane.setLife(CommonUtil.YOUR_PLAN_LIFE);yourPlane.setShot(true);/** 将飞机的位置设置和图标相同 */setPlanPosition(yourPlanImg);// 初始化surfaceViewsurfaceView new MySurfaceView(context);// 将其置顶surfaceView.setZOrderOnTop(true);// 控制的飞机surfaceView.setYourPlane(yourPlane);surfaceView.setYourPlaneImg(yourPlanImg);Log.i(CommonUtil.TAG, “初始化实体类”);}/*** 设置飞机的位置** param view*/private void setPlanPosition(View view) {yourPlane.setX(view.getX());yourPlane.setY(view.getY());Log.i(CommonUtil.TAG, “控制的飞机坐标X:” view.getX() “;Y:” view.getY());}/*** 初始化绑定事件*/private void initListener() {// 飞机绑定事件yourPlanImg.setOnTouchListener(new YourPlaneTouch());Log.i(CommonUtil.TAG, “控制的飞机绑定移动事件”);}/*** 初始化View*/private void initView() {// 初始化飞机图片这里涉及一个飞机图片这个图片随便在网上找一个类似的小飞机就可以这里我就不上传了。yourPlanImg (ImageButton) findViewById(R.id.yourplane);// 得到屏幕高度windowHeight getResources().getDisplayMetrics().heightPixels;windowWidth getResources().getDisplayMetrics().widthPixels;Log.i(CommonUtil.TAG, “初始化view”);}Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {//退出按钮if ((keyCode KeyEvent.KEYCODE_BACK)) {Dialog alert new AlertDialog.Builder(context).setTitle(R.string.exit).setMessage(R.string.sureexit).setPositiveButton(R.string.sure,new ExitListener()).setNeutralButton(R.string.cancel, null).create();// 点击周边不关闭提示框alert.setCanceledOnTouchOutside(false);alert.show();}return super.onKeyDown(keyCode, event);}class ExitListener implements OnClickListener{Overridepublic void onClick(DialogInterface dialog, int which) {//退出程序之前将飞机停止射击yourPlane.setShot(false);finish();}}/**** ClassName: YourPlaneTouch* Description: 飞机绑定事件* author liPeng* date 2014-11-5 上午11:23:25**/class YourPlaneTouch implements OnTouchListener {int lastX, lastY;Overridepublic boolean onTouch(View v, MotionEvent event) {int eventAction event.getAction();switch (eventAction) {case MotionEvent.ACTION_DOWN:lastX (int) event.getRawX();lastY (int) event.getRawY();break;case MotionEvent.ACTION_MOVE:int dx (int) event.getRawX() – lastX;int dy (int) event.getRawY() – lastY;int left v.getLeft() dx;int top v.getTop() dy;int right v.getRight() dx;int bottom v.getBottom() dy; //在这里进行判断是防止飞机在托动过程中超出屏幕的范围if (left 0) {left 0;right left v.getWidth();}if (right windowWidth) {right windowWidth;left right – v.getWidth();}if (top 0) {top 0;bottom top v.getHeight();}if (bottom windowHeight) {bottom windowHeight;top bottom – v.getHeight();}v.layout(left, top, right, bottom);lastX (int) event.getRawX();lastY (int) event.getRawY();/** 将飞机的位置设置和图标相同 */setPlanPosition(v);v.postInvalidate();break;case MotionEvent.ACTION_UP:break;}return false;}}}   以下是surfaceView 的代码该代码做了一个桥梁的作用用来搭建xml 和线程之间的功能 。 package com.pm_road.fireair.view;import android.content.Context; import android.graphics.PixelFormat; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceHolder.Callback; import android.view.SurfaceView; import android.widget.ImageButton;import com.pm_road.fireair.bean.YourPlane; import com.pm_road.fireair.common.CommonUtil; import com.pm_road.fireair.thread.PlaneRunnable;public class MySurfaceView extends SurfaceView implements Callback {// 上下文private Context context;// 控制的飞机private YourPlane yourPlane;private ImageButton yourPlaneImg;// 飞机Runnableprivate PlaneRunnable planeRunnable;// 飞机线程private Thread shotThread;private SurfaceHolder holder;public MySurfaceView(Context context) {super(context);this.context context;holder getHolder();holder.addCallback(this);// 设置透明度holder.setFormat(PixelFormat.TRANSLUCENT);}/*** 执行线程*/private void threadRun() {// 控制飞机线程planeRunnable new PlaneRunnable(context,holder);//将控制的飞机绑定到该线程中planeRunnable.setPlane(yourPlane);planeRunnable.setPlaneImg(yourPlaneImg);shotThread new Thread(planeRunnable);//控制的飞机 开始射击shotThread.start();Log.i(CommonUtil.VIEW_TAG, “控制的飞机射击”);}Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {}Overridepublic void surfaceCreated(SurfaceHolder holder) {/** 启动线程 */threadRun();}Overridepublic void surfaceDestroyed(SurfaceHolder holder) {if (shotThread ! null shotThread.isAlive()) {try {// 当绘图线程结束后自动销毁shotThread.join();Log.i(CommonUtil.VIEW_TAG, “射击线程destroy”);} catch (InterruptedException e) {e.printStackTrace();}}}public YourPlane getYourPlane() {return yourPlane;}public void setYourPlane(YourPlane yourPlane) {this.yourPlane yourPlane;}public ImageButton getYourPlaneImg() {return yourPlaneImg;}public void setYourPlaneImg(ImageButton yourPlaneImg) {this.yourPlaneImg yourPlaneImg;}}在activity中涉及了一个Util工具类代码如下主要用来定义一些常量package com.pm_road.fireair.common;public class CommonUtil {/** 飞机生命 */public static final int YOUR_PLAN_LIFE 5;/** 敌机生命 */public static final int ENEMY_PLAN_LIFE 5;public static final String TAG “com.pm_road.fireair.mainActivity”;public static final String VIEW_TAG “com.pm_road.fireair.view”;public static final String THREAD_TAG “com.pm_road.fireair.thread”;public static final String BULLET “o”;}   完成以上代码之后大概的工作也就差不多了可以使用真机或ADT运行一下   接下来我们就是写敌机和敌机发射子弹了 《飞机大战》安卓游戏开发源码(四)   在这里我的运行效果如下   本文章属于原创性文章珍惜他人劳动成果转载请注明出处http://www.pm-road.com/index.php/2014/11/06/161/   飞机大战源码 转载于:https://my.oschina.net/pmroad/blog/357078
http://www.pierceye.com/news/870876/

相关文章:

  • 甘肃省住房和城乡建设部网站首页专门网页制作工具有
  • 网站用vps做dns做网站的叫什么职位
  • 网站开发业务流程图网站商城与网站区别吗
  • 用新浪微博做网站百度找不到 网站
  • 哪个网站做照片书最好seo投放是什么意思
  • 书店网站开发目的和意义深圳网建公司
  • 餐饮网站方案wordpress 微论坛主题
  • 上海建筑网站设计多用户商城数据库设计
  • 网站做301将重定向到新域名深圳seo优化外包公司
  • 做视频导航网站有哪些天津西青区离哪个火车站近
  • 福州网站建设技术支持公司培训课程有哪些
  • 保定网站制作域名注册商查询
  • 医院网站建设公司价格低天津建设工程信息网 塘沽一中
  • 建设机械网站案例建国外网站需要多少钱
  • 比特币简易网站开发电商网站大全
  • 秀屿区建设局网站巨量广告投放平台
  • 合肥网站设计哪家公司好北京国贸网站建设公司
  • 帮人做网站怎么收费制作链接的app的软件有哪些
  • 商贸行业网站建设公司yoast wordpress seo
  • 上小学网站建设WordPress底部添加运行时间
  • 学校网站信息化建设工作心得网络营销现状分析
  • 藁城专业网站建设班级同学录网站建设
  • 北京手机网站开发公司wordpress用户列表
  • 上海 企业网站制成都营销型网站建设熊掌号
  • 无锡网站优化哪家好北京注册公司地址可以是住宅吗
  • 中国十大热门网站深圳哪做网站
  • 木渎网站建设聚美优品网站建设情况
  • 企业形象网站用什么语言开发网站优化要做哪些工作
  • 中国建设银行官网站电话号码wordpress关键词排名
  • 南通网站建设机构博物馆网站建设的根本意义