当前位置: 移动技术网 > IT编程>移动开发>Android > Android实现微信摇骰子游戏

Android实现微信摇骰子游戏

2019年07月24日  | 移动技术网IT编程  | 我要评论

沢田珠里,阳谷十八碗,人民币加入sdr时间

过年怎么可以不玩红包娱乐一下呢,微信里的摇骰子大小和石头剪刀布就是不错的游戏方式。

使用java的random函数很容易实现,以骰子为例:

1.骰子摇动的动画,使用animation-list帧动画实现
2.生成1~6的随机数,1 + new random().nextint(6)

以下是代码实现,文末提供图片资源下载:

package com.zms.dicedemo; 
 
import java.util.random; 
 
import android.app.activity; 
import android.graphics.drawable.drawable; 
import android.os.bundle; 
import android.os.handler; 
import android.os.message; 
import android.view.view; 
import android.widget.button; 
import android.widget.imageview; 
import android.widget.toast; 
 
public class mainactivity extends activity { 
 
 private imageview imagedice; 
 private button btngo; 
 
 @override 
 protected void oncreate(bundle savedinstancestate) { 
  super.oncreate(savedinstancestate); 
  setcontentview(r.layout.activity_main); 
 
  initiallayout(); 
 } 
 
 private void initiallayout() { 
  imagedice = (imageview) findviewbyid(r.id.imagedice); 
 
  btngo = (button) findviewbyid(r.id.btngo); 
  btngo.setonclicklistener(new myonclicklistener()); 
 
 } 
 
 class myonclicklistener implements view.onclicklistener { 
 
  @override 
  public void onclick(view v) { 
   switch (v.getid()) { 
   case r.id.btngo: 
    imagedice.setimagedrawable(getresources().getdrawable( 
      r.drawable.anim_dice)); 
    new thread(new dicethread()).start(); 
    break; 
 
   default: 
    break; 
   } 
 
  } 
 } 
 
 public class dicethread implements runnable { 
 
  @override 
  public void run() { 
   try { 
    thread.sleep(2000); 
   } catch (interruptedexception e) { 
    e.printstacktrace(); 
   } 
 
   message messagedice = new message(); 
   messagedice.what = 1; 
   dicehandler.sendmessage(messagedice); 
 
  } 
 
 } 
 
 private void resetdiceimage() { 
  int randomint = 1 + new random().nextint(6); // 1~6 
  toast.maketext(mainactivity.this, getchinesebynumber(randomint), 
    toast.length_short).show(); 
  imagedice.setimagedrawable(getresources().getdrawable( 
    getresources().getidentifier("dice_" + randomint, "drawable", 
      getpackagename()))); 
 } 
 
 private string getchinesebynumber(int number) { 
  switch (number) { 
  case 1: 
   return "一点小"; 
 
  case 2: 
   return "二点小"; 
 
  case 3: 
   return "三点小"; 
 
  case 4: 
   return "四点大"; 
 
  case 5: 
   return "五点大"; 
 
  case 6: 
   return "六点大"; 
 
  default: 
   return ""; 
  } 
 } 
 
 final handler dicehandler = new handler() { 
 
  public void handlemessage(android.os.message msg) { 
   switch (msg.what) { 
   case 1: 
    resetdiceimage(); 
    break; 
 
   default: 
    break; 
   } 
  } 
 
 }; 
} 

random生成的虽然是伪随机数,但是在娱乐对安全性要求不高,还是可以使用的。

实现方式比较简单,以下是工程下载链接:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网