• 大小: 16KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: Java
  • 标签: android  贪食蛇  

资源简介

最近自己开发了个简单的基于android的贪食蛇,自己觉得还不错,不过传到网上也赚不到什么钱,呵呵,就拿出来和大家交流交流了,这是主要的继承了View的游戏类

资源截图

代码片段和文件信息

/**
 * 游戏主类;
 * @author 胡飞
 * @since 2013年5月6日15:21:33;
 * @function 实现游戏的运行功能;
 */



package com.example.snakegame;

import java.util.ArrayList;
import java.util.Random;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;

@SuppressLint({ “ParserError“ “ParserError“ “ParserError“ “ParserError“ “ParserError“ “ParserError“ “ParserError“ })
public class gameView  extends View implements Runnable {
    //定义contex;
     private  Context mContext;
    //定义标志位来确定是否刷新界面;
   private  int STATE=1;
    //画笔;
        private Paint paint;
        //用一个矩形来存储食物的坐标;
        private PointSnake pointFood;
        //存储蛇身的数组;
        private ArrayList Snake=new ArrayList();
        //存储蛇的运动方向;
        private char decoration=‘R‘;
        //玩家想要使蛇运动的方向;  
        private char mayDecoration=‘R‘;
        //存储食物的个数;
        private int foodCount=0;
        private Thread thread;
        /*
         * 存储滑动屏幕的位置;
         */
        float x0=0.0f;
float y0=0.0f;
float x1=0.0f;
float y1=0.0f;
///////////////
        //构造函数;
      public gameView(Context context) {
super(context);
// TODO Auto-generated constructor stub
mContext=context;
    paint=new Paint();
    paint.setColor(Color.GREEN);
    pointFood=new PointSnake();
    //初始化蛇身;
initSnake();
    //启动线程;;;
   //new Thread(this).start();
thread=new Thread(this);
thread.start();
}
               
 

//显示;
@SuppressLint(“ParserError“)
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
   //画出地图;
     drawWall(canvaspaint);
     //画出得分;
     drawScore(canvas);
    //如果没有食物则产生食物;
    if(foodCount<=0)
        {
           createFood(canvaspaint);
           
        }
    //继续画食物;
    if(foodCount==1)
    { 
      paint.setColor(Color.YELLOW);
      canvas.drawRect(pointFood.x1 pointFood.y1 pointFood.x2 pointFood.y2 paint);
    }
    
    
    /*
     * 向右走;
     */
if(decoration==‘R‘)
{
/*
      * 判断是否吃到食物,下一个为食物,则吃掉食物,重新产生食物;
      */
    rightFood();
    //判断是否吃到自己;
    isRSelf();
      /////////
    isRWall();
    if(Snake.size()==1)
{
 
     Snake.get(0).x1+=10;
     Snake.get(0).x2+=10;
}
   if(Snake.size()>1)
    {
    //蛇身位置调整;
        moveIn();
      //蛇头右向前;
     rigtHeadMove();
    }
     ////////////
     /*
      * 画出蛇身; 
      */
 drawSnake(canvaspaint);
    

评论

共有 条评论