• Java中View游戏开发框架


    java中游戏开发引擎View比较适合被动触发的游戏,不能使用于那种对战的游戏

    Game01Activity.java  这里是调用的activity

    package cn.sun.syspro;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Window;
    import android.view.WindowManager;
    
    public class Game01Activity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           // setContentView(R.layout.main);
            //隐藏定格
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
            this.getWindow()
            .setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(new Myview(this));
        }
    }
    

      Myview.java

    package cn.sun.syspro;
    
    import android.R.style;
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.view.KeyEvent;
    import android.view.MotionEvent;
    import android.view.View;
    
    public class Myview extends View{
    /**
     * 重写父类构造函数
     * @param context
     */
    	private int x = 200,y = 200;
    	public Myview(Context context) {
    		super(context);
    		setFocusable(true);
    		// TODO Auto-generated constructor stub
    	}
    	/**
    	 * 重写绘图函数
    	 */
    	@Override
    	protected void onDraw(Canvas canvas){
    		//创建一个画笔
    		Paint paint = new Paint();
    		//设置画笔的颜色
    		paint.setColor(Color.BLACK);
    		//绘制文本
    		canvas.drawRGB(250, 224, 240);
    		canvas.drawText("Hello Sun",this.x,this.y, paint);		
    		super.onDraw(canvas);
    	}
    	/**
    	 * 重写按下事件
    	 */
    	@Override
    	public boolean onKeyDown(int keyCode,KeyEvent event){
    		if(keyCode == event.KEYCODE_DPAD_UP){
    			this.y-=2;
    		}else if(keyCode == event.KEYCODE_DPAD_DOWN){
    			this.y+=2;
    		}else if(keyCode == event.KEYCODE_DPAD_LEFT){
    			this.x-=2;
    		}else if(keyCode == event.KEYCODE_DPAD_RIGHT){
    			this.x+=2;
    		}
    		invalidate();
    		return super.onKeyDown(keyCode, event);
    	}
    	/**
    	 * 重写按键弹起事件
    	 */
    	@Override
    	public boolean onKeyUp(int keyCode,KeyEvent event){
    		if(keyCode == event.KEYCODE_DPAD_UP){
    			this.y-=2;
    		}else if(keyCode == event.KEYCODE_DPAD_DOWN){
    			this.y+=2;
    		}else if(keyCode == event.KEYCODE_DPAD_LEFT){
    			this.x-=2;
    		}else if(keyCode == event.KEYCODE_DPAD_RIGHT){
    			this.x+=2;
    		}
    		invalidate();
    		return super.onKeyUp(keyCode, event);
    	}
    	/**
    	 * 重写触屏事件函数
    	 */
    	@Override
    	public boolean onTouchEvent(MotionEvent event){
    		int t_x = (int) event.getX();
    		int t_y = (int) event.getY();
    		if(event.getAction() == MotionEvent.ACTION_DOWN){
    			this.x = t_x;
    			this.y = t_y;
    		}else if(event.getAction() == MotionEvent.ACTION_MOVE){
    			this.x = t_x;
    			this.y = t_y;			
    		}else if(event.getAction() == MotionEvent.ACTION_UP){
    			this.x = t_x;
    			this.y = t_y;			
    		}
    		invalidate();
    		return super.onTouchEvent(event);
    	}
    
    }
    

      

  • 相关阅读:
    JavaScript完整总结
    vue引入iframe的父子页面的数据传递
    随笔开发中笔记
    关于表格(table)的操作
    es6--6.字符串相关
    ES6--5.数组4个新增方法
    ES6--4.解构赋值
    sublime 远程连接服务器编辑
    ajaxSubmit
    修改 debian 时区
  • 原文地址:https://www.cnblogs.com/sunxun/p/4637581.html
Copyright © 2020-2023  润新知