• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    有關(guān)俄羅斯方塊的設(shè)計(jì)

    2017-04-06 03:02:57
    福建質(zhì)量管理 2017年12期
    關(guān)鍵詞:方塊界面設(shè)計(jì)正方形

    (河北大學(xué) 河北 保定 071000)

    有關(guān)俄羅斯方塊的設(shè)計(jì)

    齊子歡

    (河北大學(xué)河北保定071000)

    一、設(shè)計(jì)目的

    俄羅斯方塊是一個(gè)很經(jīng)典的小游戲,簡單有趣。本次實(shí)驗(yàn)主要是設(shè)計(jì)一個(gè)易操作且界面美觀的一款俄羅斯方塊游戲。俄羅斯方塊的設(shè)計(jì)工作對(duì)我這樣的初學(xué)者來說有很大的挑戰(zhàn)性,整個(gè)過程種包含的內(nèi)容多,涉及的知識(shí)廣泛,在設(shè)計(jì)的過程中也實(shí)現(xiàn)了知識(shí)的應(yīng)用,有利于學(xué)習(xí)框架的建立。

    二、設(shè)計(jì)內(nèi)容

    本次設(shè)計(jì)可分為游戲設(shè)置、控制、幫助、場(chǎng)景、界面設(shè)計(jì)幾大模塊來描述

    游戲設(shè)置模塊:游戲設(shè)置主要實(shí)現(xiàn)的功能有速度設(shè)置、背景顏色設(shè)置、方塊顏色設(shè)置、恢復(fù)默認(rèn)設(shè)置以及退出游戲的設(shè)置。速度設(shè)置分為了慢、中、快三個(gè)等級(jí),從而來改變游戲的難易程度;背景顏色設(shè)置主要指的是場(chǎng)景的背景設(shè)置,通過添加了colordialog這個(gè)控件來進(jìn)行顏色的修改;方塊顏色設(shè)置可以對(duì)7種組合方式進(jìn)行顏色的自由搭配,選中該組合即可進(jìn)行前景色和背景色的改變從而實(shí)現(xiàn)一種美觀的漸變效果。

    控制模塊:主要對(duì)游戲過程進(jìn)行控制,包括開始、暫停、重新開始、結(jié)束等操作功能的實(shí)現(xiàn)。

    幫助模塊:涉及到鍵盤操作的一些指示性的指令。向下、向左、向右、向下加速對(duì)應(yīng)的按鍵。

    場(chǎng)景模塊:主要包括正在運(yùn)行的俄羅斯方塊和隨機(jī)出現(xiàn)的下一個(gè)方塊,正在運(yùn)行的俄羅斯方塊可以通過控制模塊和鍵盤的按鍵來進(jìn)行一系列的操作。

    界面設(shè)計(jì):整個(gè)界面顏色的主要以同類色為主,使整個(gè)畫面感更和諧。界面設(shè)計(jì)的風(fēng)格以活潑為主,符合游戲本身的特點(diǎn),簡單有趣。

    三、設(shè)計(jì)方案(程序設(shè)計(jì)說明)

    游戲主要由四部分組成:square類,block類,gamefield類,游戲引擎

    Square類 描述的對(duì)象是組成大方塊中的每個(gè)小正方形實(shí)體;

    定義square類之后在這個(gè)cs中創(chuàng)建Graphics類的對(duì)象g 并進(jìn)行實(shí)例化,以及進(jìn)行毛刷類GraphicsPath、矩形類Rectangle、顏色類Color、漸變類PathGradientBrush等對(duì)象的定義和實(shí)例化。從而來實(shí)現(xiàn)畫方塊(主要起作用的類有Graphics、GraphicsPath、Rectangle)的操作,并對(duì)其進(jìn)行漸變式顏色的填充。之后進(jìn)行擦出方塊,主要利用的原理是有場(chǎng)景的背景色對(duì)方塊進(jìn)行填充。

    block類描述的對(duì)象是某一個(gè)大方塊的實(shí)體。每個(gè)大方塊由四個(gè)小正方形組成,一共有7中組合方式。這個(gè)類需要實(shí)現(xiàn)一個(gè)大方塊實(shí)體所有的屬性和動(dòng)作,包括:方塊的形狀、位置、方塊左移、右移、下移、旋轉(zhuǎn)等。

    class Block

    { public Square square1;?//組成block的四個(gè)小方塊public Square square2;public Square square3;public Square square4;private const int squareSize = GameField.SquareSize;?//小方塊的邊長

    方塊的形狀:public enum BlockTypes//一共有7種形狀{ undefined = 0,square = 1,line = 2,J = 3,L = 4,T = 5,Z = 6,S = 7};

    移動(dòng)的代碼:(左移、下移同理)

    public bool right()//檢測(cè)是否可以右

    { if(GameField.isEmpty(square1.location.X / squareSize +1,square1.location.Y / squareSize)&& GameField.isEmpty(square2.location.X / squareSize +1,square2.location.Y / squareSize)&& GameField.isEmpty(square3.location.X / squareSize +1,square3.location.Y / squareSize)&& GameField.isEmpty(square4.location.X / squareSize +1,square4.location.Y / squareSize))

    { Erase(GameField.winHandle);

    square1.location = new Point(square1.location.X + squareSize,square1.location.Y);

    square2.location = new Point(square2.location.X + squareSize,square2.location.Y);

    square3.location = new Point(square3.location.X + squareSize,square3.location.Y);

    square4.location = new Point(square4.location.X + squareSize,square4.location.Y);Draw(GameField.winHandle);return true;} else //如果不能右移了{(lán) return false;}

    gamefield類所描述的對(duì)象是游戲場(chǎng)景實(shí)體,在其中進(jìn)行了場(chǎng)景的背景色,大小,方塊是否還可以移動(dòng)等的設(shè)置。

    游戲引擎,就像一個(gè)發(fā)動(dòng)機(jī)一樣讓游戲不間斷運(yùn)行。本游戲中就是讓方塊以一定的速度下落,并響應(yīng)鍵盤事件,實(shí)現(xiàn)左右移動(dòng),和向下加速的一些功能。

    聲音播放:使用一個(gè)using System.Media來定義一個(gè)播放聲音的命名空間,然后創(chuàng)建一個(gè)soundplayer的對(duì)象,用soundlocation屬性設(shè)置聲音文件的地址,然后調(diào)用play()方法即可進(jìn)行播放。

    /*播放聲音*/ public static void PlaySound(string soundstr)

    {switch(soundstr){ case "FinishOneLine"://消除一行的聲音 if(!File.Exists("FinishOneLine.wav"))return;sound.SoundLocation = "FinishOneLine.wav";break;case "CanNotDo"://當(dāng)無法操作時(shí)if(!File.Exists("CanNotDo.wav"))return;sound.SoundLocation = "CanNotDo.wav" break;} sound.Play();}

    四、設(shè)計(jì)步驟或程序(經(jīng)調(diào)試后正確的源程序)

    (一)首先要定義一個(gè)類來描述組成每一個(gè)大方塊的小正方形實(shí)體;

    (二)進(jìn)行Graphics類、毛刷類GraphicsPath、矩形類Rectangle、顏色類Color、漸變類PathGradientBrush從而進(jìn)行小方塊的顏色的填充,完成一個(gè)小正方形實(shí)體的構(gòu)造;

    (三)進(jìn)行大方塊進(jìn)行定義,每四個(gè)小正方形組成一個(gè)大方塊,并通過調(diào)節(jié)小正方形在位置來形成7中大方塊的組合形式,大方塊便是出現(xiàn)在主頁面場(chǎng)景中的一個(gè)個(gè)組合;

    (四)進(jìn)行按鍵方面的指定和一些操作上的限制,例如是否還可以右移、左移、下移,當(dāng)不能移動(dòng)時(shí)出現(xiàn)聲音提示;暫停、重新開始分別用鍵盤上的空格和回車進(jìn)行實(shí)現(xiàn);

    齊子歡(1995-),女,漢族,河北邯鄲人,學(xué)生,本科,河北大學(xué)教育學(xué)院教育技術(shù)學(xué)專業(yè),研究方向:教育技術(shù)學(xué)。

    猜你喜歡
    方塊界面設(shè)計(jì)正方形
    方塊村(1)
    旋轉(zhuǎn)吧!方塊!
    《京燕兒》APP界面設(shè)計(jì)
    大眾文藝(2023年22期)2023-12-10 04:27:18
    中醫(yī)養(yǎng)生APP界面設(shè)計(jì)
    大眾文藝(2022年19期)2022-10-19 08:18:18
    有多少個(gè)方塊
    “共享員工”平臺(tái)界面設(shè)計(jì)
    包裝工程(2022年14期)2022-07-28 07:07:00
    不一樣的方塊橋
    剪正方形
    面向智能手機(jī)的UI界面設(shè)計(jì)
    剪拼正方形
    嵩明县| 海安县| 搜索| 西安市| 安龙县| 绥棱县| 南江县| 鹤山市| 嘉禾县| 大同县| 恩平市| 临沂市| 贡觉县| 巴林右旗| 嘉峪关市| 兰州市| 正蓝旗| 巫溪县| 久治县| 成安县| 兴城市| 宿州市| 瑞昌市| 湛江市| 景宁| 正定县| 塔河县| 无锡市| 白城市| 克东县| 东海县| 饶平县| 蒙山县| 濮阳县| 诸暨市| 和林格尔县| 嘉荫县| 长沙县| 汉川市| 高碑店市| 山丹县|