2、游戏积分抽奖这是需要游戏小程序先参与一个小游戏,获得一定积分,获得闯过一定关卡之后才能获取抽奖机会的抽奖小程序。相比直接白捡的抽奖次数来说,自己“挣”来的机会,会让参与者更加珍惜,在之后的抽奖和获奖的过程中,带来的刺激和兴奋感也会更高。3、大屏现场抽奖大屏抽奖小程序 也是运用比较广泛的一种,现场客户先根据微信扫一扫报名大屏抽奖活动,进行在线抽奖,后边依据扫二维码现场参与用户的头像图片,开展头像图片滚动进行在线抽奖。
我用多线程写的,你可以参考下。
系统界面图如下:(注:重置功能为清除已经中奖号码,回归1-100都可以中奖状态。)
代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent()
}
System.Threading.Thread g_Thread = null
List<int> g_list = new List<int>()
int g_Num = 0
delegate void g_delegate()
/// <summary>
/// 开始
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
if(g_list.Count==100)
{
MessageBox.Show("所有数字已使用,请重置!")
return
}
button3.Enabled = true
Random r = new Random()
g_delegate dele= ChangeTxt
g_Thread = new System.Threading.Thread(() =>
{
while(this.IsDisposed==false)
{
g_Num = r.Next(1, 100)
if(g_list.Contains(g_Num))
{
g_Num = 1
}
while(g_list.Contains(g_Num))
{
g_Num++
}
this.Invoke(dele)
System.Threading.Thread.Sleep(50)
}
})
g_Thread.Start()
}
void ChangeTxt()
{
label2.Text = g_Num.ToString()
}
/// <summary>
/// 停止
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
//if(g_Thread.ThreadState==System.Threading.ThreadState.Running)
{
g_Thread.Abort()
g_list.Add(Convert.ToInt32(label2.Text))
}
button3.Enabled = false
}
/// <summary>
/// 重置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
g_list.Clear()
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
System.Environment.Exit(0)
}
}
可以不用中断。你只要写个段码的数值,然后在数组里加一个变量。比如“uchardm[]={0xc0,0xa4,0xf9.}“每次按下一个键数组里的变量就加一。做按键的时候要记住去斗。归0的按键就更好写了,只要按下数组里的变量等于0就行了。希望能帮到你,亲~欢迎分享,转载请注明来源:内存溢出
评论列表(0条)