zoukankan      html  css  js  c++  java
  • 游戏框架View以及简单的运用

    View类常需要实现的抽象函数

        

    public class MyView extends View {
        public MyView(Context context) {
            super(context);
        }
        
        /**
         * 该方法在该View实例化的时候自动就调用了
         */
        @Override
        public void onDraw(Canvas canvas) {
            super.onDraw(canvas);
        }
        
        /**
         * 按键按下的事件
         */
        @Override
        public boolean onKeyDown(int KeyCode,KeyEvent event) {
            return true;
        }
        /**
         * 按键按上的事件
         */
        @Override
        public boolean onKeyUp(int KeyCode,KeyEvent event) {
            return true;
        }
        
        /**
         * 触摸事件
         */
        @Override
        public boolean onTouchEvent(MotionEvent event){
            return true;
        }
    }

    下面 用上面提到的方法进行绘制图片并让它动起来

    public class MyView extends View {
        Paint paint;
        float x, y; // x,y坐标
        float srceenW,srceenH; //手机屏幕的宽高
        public MyView(Context context,float srceenW,float srceenH) {
            super(context);
            paint = new Paint(); 
            paint.setStyle(Style.STROKE); //设置画笔的样式
            paint.setAntiAlias(true); 
            this.srceenH=srceenH;
            this.srceenW=srceenW;
        }
    
        /**
         * 该方法在该View实例化的时候自动就调用了 默认只执行一次
         */
        @Override
        public void onDraw(Canvas canvas) {
            canvas.drawColor(Color.WHITE); //设置背景
            paint.setColor(Color.BLACK); //画笔的颜色
            canvas.drawText("Play Game", x, y, paint); //绘制 字幕
            super.onDraw(canvas);
        }
    
        /**
         * 按键按下的事件
         */
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            return super.onKeyDown(keyCode, event);
        }
    
        /**
         * 按键按上的事件
         */
        @Override
        public boolean onKeyUp(int keyCode, KeyEvent event) {
            return super.onKeyUp(keyCode, event);
        }
    
        /**
         * 触摸事件
         */
        @Override
        public boolean onTouchEvent(MotionEvent event) {//将画的图移动到手触摸的位置
            x= event.getX();  //重新设置字幕的绘制位置
            y= event.getY();
            invalidate(); //重绘  再次调用onDraw方法
            return super.onTouchEvent(event);
        }
    }

    最后在Activity里面调用

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //设置手机全盘
            this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            //获取手机屏幕宽高
            Display display=getWindowManager().getDefaultDisplay();
            setContentView(new MyView(this, display.getWidth(), display.getHeight()));
        }

    这样我们调用手机屏幕的位置,“Play Game”字就会在什么位置显示

  • 相关阅读:
    chrome扩展及应用开发 李喆pdf完整版
    Chrome插件(扩展)开发资料
    Fiddler下载地址
    如果没有 Android 世界会是什么样子?
    一张图告诉你:Android系统哪代强?
    Android开发的16条小经验总结
    Android上实现MVP模式的途径
    Android事件总线还能怎么玩?
    Android性能优化典范(二)
    安卓listView实现下拉刷新上拉加载滑动仿QQ的删除功能
  • 原文地址:https://www.cnblogs.com/cindyOne/p/2990793.html
Copyright © 2011-2022 走看看