【Android小游戏】安卓小游戏开发(手把手教学系列三)
2015-10-23 22:00
405 查看
想起当年初学安卓时,Java还不懂,大一做类似这样的游戏的时候,居然不用线程
![](https://img-blog.csdn.net/20151023220256466?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
想想也是醉了,现在来填几年前的坑
![](https://img-blog.csdn.net/20151023220704116?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
开始:
就像之前两篇一样,要一个游戏人物,一个游戏运行Activity
1.游戏人物:
2.游戏Activity:
运行结果如下(没弄GIF图,但测试可行
![](https://img-blog.csdn.net/20151023220923628?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
)
想想也是醉了,现在来填几年前的坑
开始:
就像之前两篇一样,要一个游戏人物,一个游戏运行Activity
1.游戏人物:
package yyc.com.htmltextview.Plane; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.view.View; import yyc.com.htmltextview.R; /** * Created by Administrator on 2015/10/23. */ public class PlaneView extends View { public float currentX,currentY; Bitmap plane; public PlaneView(Context context){ super(context); plane= BitmapFactory.decodeResource(context.getResources(),R.drawable.doge);//飞机 setFocusable(true); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p=new Paint(); canvas.drawBitmap(plane,currentX,currentY,p); } }
2.游戏Activity:
package yyc.com.htmltextview.Plane; import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.util.Log; import android.view.Display; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import yyc.com.htmltextview.R; /** * Created by Administrator on 2015/10/23. */ public class GameView extends Activity { private int speed=10; float startx,starty; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); final PlaneView pl=new PlaneView(this); setContentView(pl); pl.setBackgroundResource(R.drawable.ba); WindowManager windowManager=getWindowManager(); Display display=windowManager.getDefaultDisplay(); DisplayMetrics metrics=new DisplayMetrics(); display.getMetrics(metrics); pl.currentX=metrics.widthPixels/2; pl.currentY=metrics.heightPixels-40; pl.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: startx = event.getX(); starty = event.getY(); break; case MotionEvent.ACTION_MOVE: int offset = (int) (event.getX() - startx) / 3; // Log.e("TAST", offset + "offset"); if (offset >50) { //右 pl.currentX+=speed; }else if(offset<-50){ pl.currentX-=speed; //左 Log.e("TAG", "offset<-50"); } float upoffset = event.getY() - starty; if (upoffset> 50) { //下 pl.currentY+=speed; Log.e("TAG", "upoffset> 50"); }else if(upoffset<-50){ //上 pl.currentY-=speed; Log.e("TAG", "upoffset<-50"); } // invalidate(); pl.invalidate(); default: break; } return true; } }); } }
运行结果如下(没弄GIF图,但测试可行
)
相关文章推荐
- 我是运营,我没有假期
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- VB实现的《QQ美女找茬游戏》作弊器实例
- C#实现洗牌游戏实例
- C#实现的算24点游戏算法实例分析
- C#实现简单的井字游戏实例
- C++编写简单的打靶游戏
- C++实现基于控制台界面的吃豆子游戏
- 纯javascript实现的小游戏《Flappy Pig》实例
- JavaScript实现俄罗斯方块游戏过程分析及源码分享
- JS小游戏之仙剑翻牌源码详解
- JS小游戏之宇宙战机源码详解
- Android基本游戏循环实例分析
- JavaScript游戏之优化篇
- js实现俄罗斯方块小游戏分享
- 用javascript做一个webgame连连看大家看下