android版《手工接水管》unity3d制作的 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    这几天没事做,随便做了一个小demo,因为不会美术,所以就没有继续做下去,我的悲哀啊~~~

    这是一个接水管的小demo,原本是flash游戏,下面看看我的例子吧~~~~

   

    代码就一个脚本的,也没什么可看的,大家随便都可以做的,呵呵~~~

    [html]

    using UnityEngine;

    using System.Collections;

    public class TestGoto : MonoBehaviour {

    public GUISkin skin;

    float width;

    float height;

    public Texture up;

    public Texture down;

    public Texture right;

    public Texture left;

    public Texture up_down;

    public Texture right_left;

    int[] images;

    Vector4[] dires;

    int flag;

    int step;

    int coml;

    int row;

    int m;

    int n;

    bool isend;

    bool iswin;

    int[] TF;

    void Start () {

    //width=80*(Screen.width/480);

    width=Screen.width*0.12F;

    height=width;

    flag=0;

    step=0;

    row=4;

    coml=8;

    m=0;

    n=0;

    iswin=false;

    images=new int[32];

    dires=new Vector4[32];

    TF=new int[32];

    for(int k=0;k<=31;k++){

    flag=Random.Range(1,7);

    images[k]=flag;

    }

    //level 01

    }

    void OnGUI(){

    GUI.skin=skin;

    GUI.Window(1,new Rect(0,0,Screen.width,Screen.height),ShowWindow,"");

    if(isend){

    WinOrLose();

    }

    }

    void ShowWindow(int windowID){

    if(GUI.Button(new Rect(width*0.2F,0,width,height),"open")){

    isend=true;

    }

    for(int j=0;j

    for(int i=0;i

    if(GUI.Button(new Rect(i*width+width*0.2F,(j+1)*height,width,height),select(images[j*coml+i]))){

    step+=1;

    if(images[j*coml+i]<5){

    images[j*coml+i]+=1;

    if(images[j*coml+i]==5){

    images[j*coml+i]=1;

    }

    }else{

    images[j*coml+i]+=1;

    if(images[j*coml+i]==7){

    images[j*coml+i]=5;

    }

    }

    }

    Vector4 dir;

    if(select(images[j*coml+i])==up){

    dir=new Vector4(1,1,0,0);

    }else if(select(images[j*coml+i])==right){

    dir=new Vector4(0,1,1,0);

    }else if(select(images[j*coml+i])==down){

    dir=new Vector4(0,0,1,1);

    }else if(select(images[j*coml+i])==left){

    dir=new Vector4(1,0,0,1);

    }else if(select(images[j*coml+i])==up_down){

    dir=new Vector4(1,0,1,0);

    }else{

    dir=new Vector4(0,1,0,1);

    }

    dires[j*coml+i]=dir;

    //print(j*coml+i+":"+dires[j*coml+i]);

    }

    }

    }

    Texture select(int n){

    Texture image=new Texture();

    switch(n){

    case 1:

    image=up;

    break;

    case 2:

    image=right;

    break;

    case 3:

    image=down;

    break;

    case 4:

    image=left;

    break;

    case 5:

    image=up_down;

    break;

    case 6:

    image=right_left;

    break;

    }

    return image;

    }

    //判断输赢

    void WinOrLose(){

    switch(images[n*coml+m]){

    //第一种类型的图片,向上+向右

    // if(dires[n*coml+m].x==1&&dires[n*coml+m].y==1){

    case 1:

    if(n==0){

    if(m==0){

    TF[n*coml+m]=1;

    m++;

    }

    }

    else{

    if(m<(coml-1)){

    if(dires[(n-1)*coml+m].z==1&&dires[n*coml+(m+1)].w==1){

    TF[n*coml+m]=1;

    if(TF[(n-1)*coml+m]==1){

    m++;

    }

    if(TF[n*coml+(m+1)]==1){

    n--;

    }

    }

    }

    }

    break;

    //第二种类型的图片 向上+向下

    // if(dires[n*coml+m].x==1&&dires[n*coml+m].z==1){

    case 5:

    if(n==0){

    if(m==0){

    TF[n*coml+m]=1;

    n++;

    }

    }

    else if(n>0&&n<(row-1)){

    if(dires[(n-1)*coml+m].z==1&&dires[(n+1)*coml+m].x==1){

    TF[n*coml+m]=1;

    if(TF[(n-1)*coml+m]==1){

    n++;

    }

    if(TF[(n+1)*coml+m]==1){

    n--;

    }

    }

    }

    else{

    if(m==(coml-1)){

    print("1:win!!!");

    iswin=true;

    }

    }

    break;

    //第三种类型的图片 向上+向左

    // if(dires[n*coml+m].x==1&&dires[n*coml+m].w==1){

    case 4:

    if(n>0&&m>0){

    if(dires[(n-1)*coml+m].z==1&&dires[n*coml+(m-1)].w==1){

    TF[n*coml+m]=1;

    if(TF[(n-1)*coml+m]==1){

    m--;

    }

    if(TF[n*coml+(m-1)]==1){

    n--;

    }

    }

    }

    break;

    //第四种类型的图片 向右+向下

    // if(dires[n*coml+m].y==1&&dires[n*coml+m].z==1){

    case 2:

    if(n<(row-1)&&m<(coml-1)){

    if(dires[(n+1)*coml+m].x==1&&dires[n*coml+(m+1)].w==1){

最新文章