在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例Windows Mobile → 打地鼠游戏编程

打地鼠游戏编程

Windows Mobile

下载此实例
  • 开发语言:C/C++
  • 实例大小:0.48M
  • 下载次数:12
  • 浏览次数:711
  • 发布时间:2016-03-23
  • 实例类别:Windows Mobile
  • 发 布 人:wen8023luxia
  • 所需积分:2
 相关标签: 游戏

实例介绍

【实例简介】
【实例截图】

【核心代码】

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// “用户控件”项模板在 http://go.microsoft.com/fwlink/?LinkId=234236 上提供

namespace MoleAttack
{
    public sealed partial class GameMain : UserControl
    {
        List<Hole> holes = new List<Hole>();
        TimeSpan passedTime;
        DateTime startTime;
        DispatcherTimer gameLoop = new DispatcherTimer();
        //MouseSound msInjured;
        int currentSpeed = 2500;
        int CurrentSpeed
        {
            get
            {
                return currentSpeed;
            }
            set
            {
                currentSpeed = value;
                gameLoop.Interval = TimeSpan.FromMilliseconds(currentSpeed);
            }
        }
        int hitMouseCount = 0;
        public int HitMouseCount
        {
            get { return hitMouseCount; }
            set
            {
                hitMouseCount = value;
                infomation.tbScore.Text = hitMouseCount.ToString();
                MainPage.Instance.updateScore(value);
            }
        }

        public GameMain()
        {
            // 为初始化变量所必需
            InitializeComponent();
            Loaded =GameMain_Loaded;
            gameOver.Visibility = Visibility.Collapsed;
            gameOver.Click = new RoutedEventHandler(gameOver_Click);
            gameStart.Click =gameStart_Click;
        }

        void gameOver_Click(object sender, RoutedEventArgs e)
        {
            gameOver.Visibility = Visibility.Collapsed;
            startTime = DateTime.Now;
            HitMouseCount = 0;
            CurrentSpeed = 2500;
            infomation.tbLevel.Text = "1";
            gameLoop.Start();
        }

        void GameMain_Loaded(object sender, RoutedEventArgs e)
        {
            gameLoop.Tick = gameLoop_Tick;
            gameLoop.Interval = TimeSpan.FromMilliseconds(currentSpeed);
            //gameLoop.Start();
            foreach (var uie in gridHoles.Children)
            {
                if (uie is Hole)
                {
                    var oneHole = uie as Hole;
                    holes.Add(oneHole);
                    holes.Add(oneHole);
                    oneHole.mouse.EvInjured = new Action(mouse_EvInjured);
                }
            }
            //msInjured = new MouseSound("ResImg/MoleAttack/Sound/injured.mp3");
        }

        void gameLoop_Tick(object sender, object e)
        {
            passedTime = DateTime.Now - startTime;
            var passSeconds = passedTime.Minutes * 60 passedTime.Seconds;
            if (passSeconds > 15 && passSeconds < 30)
            {
                infomation.tbLevel.Text = "2";
                CurrentSpeed = 2000;
            }
            if (passSeconds > 30 && passSeconds < 60)
            {
                infomation.tbLevel.Text = "3";
                currentSpeed = 1500;
            }
            if (passSeconds > 60 && passSeconds < 120)
            {
                infomation.tbLevel.Text = "4";
                currentSpeed = 1000;
            }
            if (passSeconds > 120 && passSeconds < 240)
            {
                infomation.tbLevel.Text = "5";
                currentSpeed = 500;
            }
            if (passSeconds > 240)
            {
                GameOver();
                gameLoop.Stop();
            }
            holes[GetRandomNum(0, holes.Count)].OutHole();
        }


        public void GameOver()
        {
            gameOver.Show();
        }



        void mouse_EvInjured()
        {
            HitMouseCount ;
            //msInjured.Play();
        }
        /// <summary>
        /// 获取一个随机数
        /// </summary>
        /// <returns>随机数</returns>
        public int GetRandomNum(int minNum, int maxNum)
        {
            //Thread.Sleep(10);
            long tick = DateTime.Now.Ticks;
            Random r = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
            return r.Next(minNum,maxNum);
        }

        private void gameStart_Click()
        {
            gameLoop.Start();
            startTime = DateTime.Now;
            gridHoles.Children.Remove(gameStart);
        }

        public void Clear()
        {
            if (!gridHoles.Children.Contains(gameStart))
                gridHoles.Children.Add(gameStart);
            else
                gameStart.Visibility = Visibility.Visible;
            gameLoop.Stop();
        }
    }
}

标签: 游戏

实例下载地址

打地鼠游戏编程

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

相关软件

相关文章

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
;
报警