Scoring
How do I use Scoring
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
Line | Code | Ex.. |
---|---|---|
77 | GUILayout.Label ("Scoring and Finishing", "Subheader"); | 1 |
183 | } //Ball Control - Player Scoring | 2 |
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...