博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第七天android:弹球1
阅读量:5093 次
发布时间:2019-06-13

本文共 3720 字,大约阅读时间需要 12 分钟。

第十集:弹球

1.画小球,和上集的水波一样

class GameView extends SurfaceView implements Callback, Runnable {        private Paint paint = null;        private Path path; // 画自定义图形        private SurfaceHolder sh = null;        public GameView(Context context) {            super(context);            paint = new Paint();            paint.setColor(Color.RED);            // 设置画笔类型            paint.setStyle(Style.STROKE);            path = new Path();            sh = this.getHolder();            // 注册一个监听,就是在View改变的时候执行是调用。            sh.addCallback(this);        }        @Override        public void surfaceDestroyed(SurfaceHolder holder) {            // 销毁的时候执行内容        }        @Override        public boolean onTouchEvent(MotionEvent event) {            switch (event.getAction()) {            case MotionEvent.ACTION_DOWN:                // 按下的瞬间                if (list.size() < 10) {                    list.add(new Ball(event.getX(), event.getY(), 5));                }                break;            case MotionEvent.ACTION_MOVE:                // 移动                break;            default:                break;            }            invalidate();            // 不把事件传递给父窗体            return true;        }        @Override        public void surfaceCreated(SurfaceHolder holder) {            // 创建时候执行            new Thread(this).start();        }        class Ball {            public Ball(float x, float y, int r) {                this.x = x;                this.y = y;                this.r = r;                paint = new Paint();                paint.setColor(Color.RED);                paint.setStyle(Style.FILL_AND_STROKE);// 填充和画边。                paint.setStrokeWidth(5);                speedx = new Random().nextInt(3);                speedy = new Random().nextInt(3);            }            float x = 0;            float y = 0;            int r = 0;            int speedx = 0;            int speedy = 0;            Paint paint;// 这个用来画球自己            public void move() {                x = x + speedx;                y = y + speedy;            }            public void drawCicle(Canvas canvas) {                canvas.drawCircle(x, y, r, paint);            }        }        List
list = new ArrayList
(); private void drawView() { Canvas canvas = sh.lockCanvas(); // 刷背景,原来的图像就擦出了。 canvas.drawColor(Color.BLACK); canvas.drawPath(path, paint); for (Ball b : list) { b.drawCicle(canvas); } sh.unlockCanvasAndPost(canvas); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // 修改的时候执行 } @Override protected void onDraw(final Canvas canvas) { super.onDraw(canvas); } @Override public void run() { while (true) { drawView(); for (Ball b : list) { b.move(); } try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }

 

2.全屏

在AndroidMainifest.xml 中的<application><activity 中

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"

3.让小球无规律拖动

  public void move() {                x = x + new Random().nextInt(6)-3;                y = y + new Random().nextInt(6)-3;   }

4.加入声音

在res下新建文件夹raw,将音频文件放入。放入a.mp3

private MediaPlayer mediaPlayer = null;mediaPlayer = MediaPlayer.create(context, R.raw.a);mediaPlayer.start();//sleep();mediaPlayer.stop();

 

第十集完

转载于:https://www.cnblogs.com/wanself/archive/2012/07/11/2587182.html

你可能感兴趣的文章
linux下通过phpize为php在不重新编译php情况下安装模块memcache
查看>>
POJ 3259 Wormholes
查看>>
关于公司满意度调查的一点建议
查看>>
考满分软件测试工程师(实习)面试&软达启航面试
查看>>
20130729
查看>>
Petrozavodsk Winter-2018. Carnegie Mellon U Contest
查看>>
nginx 启动报错 “/var/run/nginx/nginx.pid" failed” 解决方法
查看>>
20、自动装配-@Autowired&@Qualifier&@Primary
查看>>
BUG(0):用某位表示特定属性
查看>>
用户态处理arp、ndisc neighbour solication 报文
查看>>
解决Oracle 11gR2 空闲连接过多,导致连接数满的问题
查看>>
vue.js学习笔记1——安装及创建并运行vue实例
查看>>
maven项目的创建
查看>>
struts2自定义拦截器
查看>>
项目期复习:JS操作符,弹窗与调试,凝视,数据类型转换
查看>>
jQuery.extend()、jQuery.fn.extend()扩展方法具体解释
查看>>
基于阿里云的MQTT远程控制
查看>>
作业三
查看>>
osi七层模型
查看>>
Android RxJava
查看>>