国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android開發(fā)之經(jīng)典游戲貪吃蛇

2019-12-12 05:50:50
字體:
供稿:網(wǎng)友

前言

這款游戲?qū)崿F(xiàn)的思路和源碼參考了Google自帶的Snake的例子,其中修改了一些個人認(rèn)為還不夠完善的地方,加入了一些新的功能,比如屏幕上的方向操作盤,暫停按鈕,開始按鈕,退出按鈕。另外,為了稍微增加些用戶體驗,除了游戲的主界面,本人自己新增了5個界面,分別是登陸界面,菜單界面,背景音樂設(shè)置界面,難度設(shè)置界面,還有個關(guān)于游戲的介紹界面。個人覺得在新手階段,參考現(xiàn)成的思路和實現(xiàn)方式是難以避免的。重要的是我們需要有自己的理解,讀懂代碼之后,需要思考代碼背后的實現(xiàn)邏輯,形成自己的思維。這樣在下次開發(fā)工作時,就不用參考別人自己也能涌現(xiàn)出解決的思路。

我覺得經(jīng)過自己的構(gòu)思和實踐,做出一個可操作有界面的小作品還是挺有成就感的,在探索和思考的過程中時間過的很快。好了,下面切入正題,我考慮了下講述的順序,決定就以進(jìn)入軟件后的界面順序來把。

由于篇幅的關(guān)系,布局的XML文件就不發(fā)了,而且我把導(dǎo)包的語句也省略了,反正像AS,eclipse這些工具都是可以智能導(dǎo)包的。

那么,首先是登陸界面,找了些網(wǎng)上的資源當(dāng)背景。布局還是比較簡單的。

下圖中,上圖為效果圖,下圖為邏輯實現(xiàn)的流程圖。

[java] view plain copy// MainActivity.java package con.example.wang.game; public class MainActivity extends Activity implements OnClickListener{   Button button;   EditText edit1,edit2;   CheckBox checkbox;   ProgressBar bar;   SharedPreferences pref;   SharedPreferences.Editor editor;   @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     button=(Button) findViewById(R.id.login_button);     edit1=(EditText) findViewById(R.id.input1);     edit2=(EditText) findViewById(R.id.input2);     checkbox=(CheckBox) findViewById(R.id.remember_button);     bar=(ProgressBar) findViewById(R.id.progress);     pref= PreferenceManager.getDefaultSharedPreferences(this);     boolean isRemember=pref.getBoolean("rem",false);   //獲取代表是否保存密碼的變量值,這里初值設(shè)為false      if(isRemember) {       //如果記住密碼,則將賬號和密碼自動填充到文本框中       String account=pref.getString("account","");       String password=pref.getString("password","");       edit1.setText(account);       edit2.setText(password);       checkbox.setChecked(true);     }     button.setOnClickListener(this);   }   @Override   public void onClick(View v){     new Thread(new Runnable(){   //開啟線程運行進(jìn)度條,減少主線程的壓力,這里不用子線程也影響不大       @Override       public void run() {         for (int i = 0; i < 25; i++) {           int progress = bar.getProgress();           progress = progress + 10;           bar.setProgress(progress);         }       }     }).start();      String account=edit1.getText().toString();     String password=edit2.getText().toString();     if(account.equals("admin") && password.equals("123456")) {       editor = pref.edit();  //這個方法用于向SharedPreferences文件中寫數(shù)據(jù)       if(checkbox.isChecked()) {         editor.putBoolean("rem",true);         editor.putString("account",account);         editor.putString("password",password);       }       else {         editor.clear();       }       editor.commit();  //這個方法必須要有,不然數(shù)據(jù)不會被保存。生效后,就可以從該文件中讀取數(shù)據(jù)。       Intent intent=new Intent(MainActivity.this,SecondActivity.class);       startActivity(intent);     }     else{  //如果用戶名或密碼不正確,這里會彈出一個提示框       Toast.makeText(MainActivity.this,"賬號或用戶名錯誤",Toast.LENGTH_SHORT).show();     }   } } 

這個邏輯還算比較簡單,實現(xiàn)了記住密碼的功能,這里的數(shù)據(jù)存儲使用的是SharedPreferences。點擊登陸后,會進(jìn)入一個菜單界面,這里設(shè)置幾個四個按鈕,分別做好監(jiān)聽就可以了,然后用Intent在活動間跳轉(zhuǎn)就好了。

效果圖也分享一下。

[java] view plain copy// SecondActivity.java package com.example.wang.game; public class SecondActivity extends Activity implements OnClickListener{    ImageButton button1,button2,button3,button4;   @Override   protected void onCreate(Bundle savedInstanceState){     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_second);     button1=(ImageButton) findViewById(R.id.button_start);     button2=(ImageButton) findViewById(R.id.button_difficulty);     button3=(ImageButton) findViewById(R.id.button_music);     button4=(ImageButton) findViewById(R.id.button_about);     button4.setOnClickListener(this);     button3.setOnClickListener(this);     button2.setOnClickListener(this);     button1.setOnClickListener(this);   }   @Override   public void onClick(View v){     switch(v.getId()) {    //看下Intent的用法,還是挺方便的,這里用的都是顯式的方法       case R.id.button_about:         Intent intent1 = new Intent(SecondActivity.this, AboutActivity.class);         startActivity(intent1);         break;       case R.id.button_music:         Intent intent2 = new Intent(SecondActivity.this, MusicActivity.class);         startActivity(intent2);         break;       case R.id.button_difficulty:         Intent intent3 = new Intent(SecondActivity.this, DifficultyActivity.class);         startActivity(intent3);         break;       case R.id.button_start:         Intent intent4 = new Intent(SecondActivity.this, GameActivity.class);         startActivity(intent4);         break;       default:         break;     }   } } 

下面先講難度設(shè)置界面吧,這個和背景音樂開關(guān)其實差不多,所以以此為例,背景音樂開關(guān)界面就不

主站蜘蛛池模板: 平潭县| 云阳县| 庆云县| 博野县| 杨浦区| 安陆市| 柘荣县| 余庆县| 灵山县| 法库县| 安阳县| 绵阳市| 凤凰县| 花垣县| 卓资县| 锦州市| 盐津县| 南充市| 乐清市| 微博| 柳江县| 辉南县| 石狮市| 封开县| 昭通市| 繁峙县| 新蔡县| 禹州市| 勐海县| 康马县| 凭祥市| 泰来县| 临泉县| 舒兰市| 武隆县| 读书| 固原市| 新晃| 红原县| 资兴市| 石渠县|