Scoring









How do I use Scoring
Below are practical examples compiled from projects for learning and reference purposes

Featured Snippets


File name: InstructionsScript.cs Copy
27  void OnGUI() {
28   if (this.gameScript.gameView == "instructions") {
29    GUI.skin = currentGUISkin;
30
31    this.gameScript.mainCamera.transform.eulerAngles = new Vector3 (120, 23, 0);
32
33    GUIStyle labelStyle = new GUIStyle(currentGUISkin.label);
34    labelStyle.alignment = TextAnchor.UpperLeft;
35    GUILayout.Label ("Instructions", "BigLabel");
36
37
38    scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Width(Screen.width), GUILayout.Height(Mathf.Ceil(Screen.height * .80f)));
39
40    GUILayout.Label ("Object", "Subheader");
41
42    GUILayout.Label (@"The object of 2048-3D is to"
43                  + " slide numbered blocks in such a way"
44                  + " so that blocks with the same numbers collide"
45                  + " and combine into a new block that is twice"
46                  + " as much as the originals until"
47                  + " the number 2048 is reached.", labelStyle);
48
49    GUILayout.Label ("Moving the Blocks", "Subheader");
50
51    GUILayout.Label (@"You cannot move blocks individually, but must"
52                 + " move all blocks simultaneously in the same direction."
53                 + " Blocks can move forward, backward, up, down, left"
54     + " and right along the green connectors."
55           + " Simply swipe any part of the screen to move up,"
56     + " down, left or right (keyboard: arrow keys). To move the"
57     + " blocks forward and backward use the"
58     + " big red arrow keys at the bottom of the screen (keyboard: a and z keys)."
59     + " When moving, all blocks that can slide in the chosen direction will move."
60     + " Any block moving toward another block with the same number will collide "
61        + " and form a single block with twice the number as the originals", labelStyle);
62
63
64    GUILayout.Label ("New Blocks", "Subheader");
65
66    GUILayout.Label (@"After each move is"
67                 + " made a new block will appear randomly in an empty position."
68                 + " This block will have a number of either 2 or 4."
69        + " For an extra challenge, there is a game option you can"
70        + " set so that zeros can also be assinged to a new block."
71        + " Zeros act like any other number in that they can"
72        + " collide with other zeros to make a block twice as much "
73        + " (which is still zero).", labelStyle);
74
75
76
77    GUILayout.Label ("Scoring and Finishing", "Subheader");
78
79    GUILayout.Label(@"For every block collision that occurs you receive"
80                 + " the number of points of the newly"
81                 + " created block. If after making a move"
82                 + " all positions are filled and no new"
83                 + " moves are possible, the game ends."
84        + " A separate high score / highest block is kept for each"
85        + " distinct combination of game options", labelStyle);
86
87
88    GUILayout.Label ("Game Layout Options", "Subheader");
89
90    GUILayout.Label (@"When I first made this game there"
91            + " was only one game layout, a 3x3x3 cube."
92            + " After testing it a bit, it was way to easy"
93            + " so the zero option was added."
94            + " It was still way to easy "
95            + " (e.g. you could swipe without even looking and get pretty far)."
96            + " Therefore there are now several diffent game layouts that"
97            + " make the game more challenging and fun.", labelStyle);
98
99    GUILayout.Label ("Game Timer Option", "Subheader");
100
101    GUILayout.Label (@"To give yourself even more of a challenge"
102                     + " you can set game options to include a timer."
103                     + " If a timer is chosen you have a specific"
104                     + " amount of time to combined blocks to make the 64 block."
105                     + " If you run out of time the game is over."
106                     + " If you reach your target before the timer runs down you will"
107                     + " receive additional time to reach the next target."
108                     + " The time you received is as follows: \n"
109                     + " 64: option time + 5 seconds (because the first one is the hardest!)\n"
110                     + " 128: option time\n"
111                     + " 256: 2X option time\n"
112                     + " 512: 4X option time \n"
113                     + " 1024: 8X option time \n"
114                     + " you get the idea.", labelStyle);
115
116
117    GUILayout.Label ("Acknowledgements \nand Confessions", "Subheader");
118
119    GUILayout.Label (@"2048-3D is based upon the original" +
120                     " 2048 game designed by Gabriele Cirulli " +
121                     " \n\n" +
122                     " Sound effects by freeSFX http://www.freesfx.co.uk.\n\n" +
123                     " This game was designed using the Unity3D game engine.\n\n" +
124                     " FOR MORE PROJECTS VISIT:" +
125                     " https://code-projects.org/", labelStyle);
126
127
128    foreach (Touch touch in Input.touches) {
129     if (touch.phase == TouchPhase.Moved)
130     {
131      // dragging
132      this.scrollPosition.y += touch.deltaPosition.y;
133     }
134    }
135    GUILayout.EndScrollView();
136
137    if (GUILayout.Button ("Return to Menu")) {
138     this.gameScript.gameView = "menu";
139    }
140   }
141  }
File name: Form1.cs Copy
60         private void moveBall(object sender, EventArgs e)
61         {
62             //Adjusting the bounds (a bit sloppy but useful for testing)
63             topBounds = 0;
64             bottomBounds = this.Height-23;
65             leftBounds = 0;
66             rightBounds = this.Width;
67
68             //If not paused we can advance the position of everything
69             if (!paused)
70             {
71                 //Player 1
72                 paddle.Location = new Point((int)(MousePosition.X - paddle.Width), paddle.Location.Y);
73                 ball.Location = new Point(ball.Location.X + xspeed, ball.Location.Y + yspeed);
74
75                 //Computer
76                 if (ball.Location.X > paddle2.Location.X)
77                 {
78                     paddle2.Location = new Point(paddle2.Location.X + 3, paddle2.Location.Y);
79                 }
80                 else
81                 {
82                     paddle2.Location = new Point(paddle2.Location.X - 3, paddle2.Location.Y);
83                 }
84
85                 //Ball Control: Left Wall
86                 if (ball.Location.X < leftBounds)
87                 {
88                     xspeed *= -1;
89                     while (ball.Location.X - 1 < leftBounds)
90                     {
91                         ball.Location = new Point(ball.Location.X + 1, ball.Location.Y);
92                     }
93                 }
94
95                 //Ball Control: Right Wall
96                 if (ball.Location.X + ball.Width > rightBounds)
97                 {
98                     xspeed *= -1;
99                     while (ball.Location.X + 1 > rightBounds)
100                     {
101                         ball.Location = new Point(ball.Location.X - 1, ball.Location.Y);
102                     }
103                 }
104
105                 //Ball Control: Player Paddle
106                 if (ball.Location.Y + ball.Height > paddle.Location.Y && ball.Location.X > (int)(paddle.Location.X - ball.Width / 2) && ball.Location.X + ball.Width < (int)(paddle.Location.X + paddle.Width + ball.Width / 2) && ball.Location.Y < (int)(paddle.Location.Y + paddle.Height / 2))
107                 {
108                     yspeed *= -1;
109                     xspeed = Math.Abs(MousePosition.X - lastx);
110                     if (xspeed > 4)
111                     {
112                         xspeed = 4;
113                     }
114                     else if (xspeed < -4)
115                     {
116                         xspeed = -4;
117                     }
118                     else if (xspeed == 0)
119                     {
120                         Random a = new Random();
121                         if (a.NextDouble() > .5)
122                         {
123                             xspeed = 2;
124                         }
125                         else
126                         {
127                             xspeed = -2;
128                         }
129                     }
130                     while (ball.Location.Y + 1 + ball.Height > paddle.Location.Y)
131                     {
132                         ball.Location = new Point(ball.Location.X, ball.Location.Y - 1);
133                     }
134                 }
135
136                 //Ball Control: CPU Paddle
137                 if (ball.Location.Y < paddle2.Location.Y + paddle2.Height && ball.Location.X > (int)(paddle2.Location.X - ball.Width / 2) && ball.Location.X + ball.Width < (int)(paddle2.Location.X + paddle.Width + ball.Width / 2) && ball.Location.Y > (int)(paddle2.Location.Y + paddle2.Height / 2))
138                 {
139                     yspeed *= -1;
140                     xspeed = Math.Abs(paddle.Location.X - lastx_cpu);
141                     if (xspeed > 4)
142                     {
143                         xspeed = 4;
144                     }
145                     else if (xspeed < -4)
146                     {
147                         xspeed = -4;
148                     }
149                     else if (xspeed == 0)
150                     {
151                         Random a = new Random();
152                         if (a.NextDouble() > .5)
153                         {
154                             xspeed = 2;
155                         }
156                         else
157                         {
158                             xspeed = -2;
159                         }
160                     }
161                     while (ball.Location.Y - 1 < paddle2.Location.Y + paddle2.Height)
162                     {
163                         ball.Location = new Point(ball.Location.X, ball.Location.Y + 1);
164                     }
165                 }
166
167                 //Ball Control: CPU Scoring
168                 if (ball.Location.Y > bottomBounds)
169                 {
170                     ball.Location = new Point(120, 100);
171                     Random b = new Random();
172                     if (b.NextDouble() > .5)
173                     {
174                         xspeed = 2;
175                     }
176                     else
177                     {
178                         xspeed = -2;
179                     }
180                     yspeed = -2;
181                     score_cpu++;
182                     points2.Text = "CPU: " + score_cpu;
183                 } //Ball Control - Player Scoring
184                 else if (ball.Location.Y < topBounds)
185                 {
186                     ball.Location = new Point(120, 100);
187                     Random b = new Random();
188                     if (b.NextDouble() > .5)
189                     {
190                         xspeed = 2;
191                     }
192                     else
193                     {
194                         xspeed = -2;
195                     }
196                     yspeed = 2;
197                     score_player++;
198                     points1.Text = "Player: " + score_player;
199                 }
200                 lastx = MousePosition.X;
201                 lastx_cpu = paddle2.Location.X;
202             }
203         }

Scoring 129 lượt xem

Gõ tìm kiếm nhanh...