連連看游戲設(shè)計(FL車在臣)課件_第1頁
連連看游戲設(shè)計(FL車在臣)課件_第2頁
連連看游戲設(shè)計(FL車在臣)課件_第3頁
連連看游戲設(shè)計(FL車在臣)課件_第4頁
連連看游戲設(shè)計(FL車在臣)課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

連連看游戲設(shè)計FL

/yyy98三個版本各自特點數(shù)字版本:TextField;TextFormat;外部圖片版本:Loader;URLRequest;內(nèi)部圖片版本:BitmapData;工廠模式(設(shè)計模式);游戲演示D:\FL\LLK_Fla.swfLLK_Fla.swfpackage{ importflash.display.Sprite; importflash.text.TextField; publicclassCardextendsSprite{ publicvarid:int; publicvarW:Number=30; publicvarH:Number=40; publicvari:int; publicvarj:int; publicvarTargetCard:Card; privatevarcolor:uint=0xcccccc; publicvarPath:Array=newArray(); publicfunctionCard(id:int){ this.id=id; init();} functioninit():void{ graphics.beginFill(color); graphics.drawRect(0,0,W,H); graphics.endFill(); varText:TextField=newTextField(); Text.text=String(id); addChild(Text);} functionsetIndex(a:int,b:int):void{ i=a; j=b;}}}設(shè)計Card類importflash.text.TextFormat;Text.selectable=false;Text.autoSize="left";//TextFieldAutoSize.NONE(默認值)、TextFieldAutoSize.LEFT、//TextFieldAutoSize.RIGHT和TextFieldAutoSize.CENTERvartf:TextFormat=newTextFormat(null,25);//tf.size=25;Text.setTextFormat(tf);//設(shè)置文本格式必需在最后文本框修正添加交互方法importflash.filters.*;importflash.events.MouseEvent;privatevarpressed:Boolean=false;functionPressed():void{ pressed=true;}

functionUnPressed():void{ pressed=false; this.filters=null;}

functionMouseOver(evt:MouseEvent):void{ varblur:BevelFilter=newBevelFilter(); varshadow:DropShadowFilter=newDropShadowFilter(10); varf:Array=newArray(); f.push(blur); f.push(shadow); this.filters=f;}

functionMouseOut(evt:MouseEvent):void{ if(pressed==false){ this.filters=null;}}生成數(shù)組生成Row行Colum列的二維數(shù)組varRow:uint=4;varColum:uint=5;varnumArray:Array=newArray();for(vari:uint=0;i<Row;i++){ numArray[i]=newArray(); varnum:uint=0; for(varj:uint=0;j<Colum;j++){ numArray[i][j]=++num; }}打亂數(shù)組游戲中Card的位置都是隨機的因此要打亂數(shù)組for(i=0;i<Row;i++){ for(j=0;j<Colum;j++){ varRani:uint=Math.floor(Math.random()*Row); varRanj:uint=Math.floor(Math.random()*Colum);

vartemp:uint=numArray[i][j]; numArray[i][j]=numArray[Rani][Ranj]; numArray[Rani][Ranj]=temp; }}//輸出數(shù)組 for(i=0;i<numArray.length;i++){ trace(numArray[i]);}將數(shù)組轉(zhuǎn)換為卡片varMarginLeft:Number=180;varMarginTop:Number=100;for(i=0;i<Row;i++){ for(j=0;j<Colum;j++){ varcard:Card=newCard(numArray[i][j]); addChild(card); card.x=MarginLeft+j*(card.W+2); card.y=MarginTop+i*(card.H+2); card.setIndex(i,j); }}為尋路制作map數(shù)組將numArray轉(zhuǎn)化為一個表示通路的數(shù)組;生成0,1數(shù)組map;用0表示無卡片(通路);用1表示有卡片(不通);要表現(xiàn)卡片在map中的數(shù)組下標,而不是在numArray中的下標map數(shù)組嚴陣以待好了,表現(xiàn)通路的數(shù)組已經(jīng)準備好了;下面進入本程序的核心;

《尋路算法》尋路規(guī)則最多允許連三條線;最多允許兩個拐角;兩種尋路情況此時只能橫向走通x1,y1x2,y2兩種尋路情況此時只能縱向走通x1,y1x2,y2尋路算法(橫向)for(vari:uint=0;i<Colum;i++){ varcount:uint=0; varstep:int=(y1>i)?-1:1; for(varj=y1;j!=i;j+=step){ count+=map[x1][j]; } step=(x1>x2)?-1:1; for(j=x1;j!=x2;j+=step){ count+=map[j][i]; } step=(i<y2)?1:-1; for(j=i;j!=y2;j+=step){ count+=map[x2][j]; } if(count==1){ returntrue; }}卡片間的連線將通路保存到數(shù)組Path中;如果有通路依次讀取Path的路徑;將Path數(shù)組轉(zhuǎn)換為舞臺上的真正位置;最后可適當做尋路的優(yōu)化。恭喜各位現(xiàn)在,我們已經(jīng)完成了第一個版本(數(shù)字版的連連看);有了這個基礎(chǔ)再去做圖片版的,簡直就是換湯不換藥了,你一定感興趣的,一起來吧,ComeOn!外部圖片版本importflash.disp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論