zoukankan      html  css  js  c++  java
  • 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);
    	}
    
    }
    

      

  • 相关阅读:
    DS博客作业02--栈和队列
    DS博客作业01--线性表
    c博客06-结构体&文件
    C博客作业05--指针
    C语言博客作业04--数组
    C语言博客作业03--函数
    JAVA面向对象设计大作业——QQ联系人系统
    DS博客作业05--查找
    DS博客作业04--图
    DS博客作业03--树
  • 原文地址:https://www.cnblogs.com/sunxun/p/4637581.html
Copyright © 2011-2022 走看看