【菜鸟的成长之路】android游戏开发学习历程——记录每天的学习内容之【第一天】

来源:互联网 发布:cell重用后 数据乱了 编辑:程序博客网 时间:2024/04/29 01:35

     日记!对!这就是日记。

           我是一个编程菜鸟,写这些东西的目的,只是给自己在枯燥的学习之余,找一种回味与复习的方式。开始准备买本日记本来写,后来觉得还是写到这地方吧,一来方便,提笔现在真的就忘字了。再者如果有跟我一样开始的菜鸟,或者在我后面开始学习的菜鸟搞不好也还能给他们一些学习上的帮助,(哈哈,现在这样说未免太早了)。既然这样今天开始,如果每天12点之后在线的话我坚持更新,我想用这种方式来鞭笞自己的学习。

         今天刚接触游戏编程,上网找了很久!发现android的游戏开发方面的书籍资料真的太少了,看了许多地方只找到一本叫《android游戏开发宝典2.0》的书,今天就看了这本书
之前几个礼拜我看了网上的android应用开发的视频教程,对android的ActivityServiceBroadcastReceiverContentProvider,SQLite基本了解了,这本书前几章的内容也就讲的这些,关键是我觉得看完真的还是对游戏开发一头雾水,而且后面就直接开始实例讲解了难道了解了上面的这些就可以进行游戏开发了?

             游戏编程其实就是不停的或者在需要的时候更新游戏界面,这是我今天有收获的一句话,要刷新界面于是就需要一个可以画图的视图,android有view 和surfaceView来实现,继承它来实现绘制界面。view和surfaceView的区别说法是避免ui线程的阻塞,给游戏照成卡的状况。(surfaceView可以在新起的线程中绘图而View必须在UI的主线程中更新画面)

1 被动更新画面的。比如棋类,用view就行了。它主要是依赖玩家的操作来跟新画面。

2 主动更新。比如一个人在一直跑动。这就需要一个单独的线程不停的重绘人的状态,避免阻塞主线程。需要surfaceView来控制。


            下面讲下我今天看到得最基本的绘图,在view 和 surfaceView上画一些几何图形,

        android的绘制需要画布(canvas),和画笔(paint),使用时需要得到它们。

        1、继承view类的,要求实现它的ondraw(Canvas Canvas)方法,游戏画面在此绘制,绘制之前需要得到paint画笔,Paint paint = new Paint();可以给画笔设置一些属性,空心、实心,颜色,透明度啊等等。(我去翻了下帮助文档,需要用可以看看)。然后就是canvas上画图了,比如画一个矩形,canvas.drawRect(x,y,x1,y1);,帮助文档里面的方法都试了下,画了一些图形。

        2、继承surfaceView,开始我看这个比较麻烦,继承surfaceView并且还需要实现callback接口,对绘制的画布的操作需要通过surfaceholder来实现,surfaceholder通过getHolder获得,得到surfaceholder后需要给它添加addcallback回调函数。surfaceView没有实现ondraw(Canvas Canvas)方法,自己定义绘制方法draw(),下面就是surfaceview在线程中画几何图形,可以让类再实现runnable接口。在线程中调用draw()方法。

首先需要得到画布和画笔,

画笔paint = new paint();同view。

画布canvas = surfaceholder.lockCanvas();//得到画布并锁定画布,

然后开始画图形,比如画一个矩形,canvas.drawRect(x,y,x1,y1).

绘制后必须解锁画布并提交画布才能显示

surfaceholder.unlockCanvasAndPost(canvas);

 

 

以上便是今晚几个小时的学习,资料匮乏,自学真心有点难,又是第一次把这半斤八两的学习内容写下来,估计表达的有很多不准确、而且意思不到位。
3点了睡觉。


原创粉丝点击