看到傅园慧女神的洪荒之力,心中也充满了洪荒之力,顺势做一个测手速的小游戏,虽然做的有点渣。谁让我既不会美术又不会动画,图还得自己做、动画还得自己截,差点折腾死我。
下面展示(轻吐槽,我知道做得难看):
再说一下:资源、图、动画啥的就不要太认真了,我费了九牛二虎之力也只这个水平了。(PS:大部分时间就和这些杠上了,没美工真可怕)
首先,第一个scene一张图说明下一下:
这个scene的脚本我都不想贴,就这两东西
[C#]
纯文本查看
复制代码
1
2
3
4
5
6
7
|
public
IStart()
{
SceneManager.LoadScene(
"Scene1"
);
}
public
IExit()
{
Application.Quit();
}
|
第二个scene也先来一张图,清晰明了:
这部分使用了两块代码,分别是相机平滑跟随player的followTarget.cs和Move.cs。
其中的第二个脚本虽然用最通俗的if来写的,但是包含了移动的加速减速、动画的播放停止、秒计时器、数据存储等诸多方面,列出来看看吧。
[C#]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
using
using
public
followTarget : MonoBehaviour {
public
smoothing = 3;
private
// Use this for initialization
void
{
//player = GameObject.FindGameObjectWithTag(Tags.player).transform;
player = GameObject.Find(
"swimmer"
).transform;
}
// Update is called once per frame
void
{
Vector3 targetPos = player.position +
new
transform.position = Vector3.Lerp(transform.position, targetPos, smoothing * Time.deltaTime);
}
}
|
[C#]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
using
using
using
using
public
Move : MonoBehaviour {
public
speed = 1;
float
float
int
//时间
int
//点击次数
Vector2 ToPos =
new
GameObject player;
Text indexClick;
Text indexTime;
bool
true
;
//动画组件
private
// Use this for initialization
void
player = GameObject.Find(
"swimmer"
);
indexClick = GameObject.Find(
"Canvas"
).transform.Find(
"clickText"
).GetComponent<Text>();
indexTime = GameObject.Find(
"Canvas"
).transform.Find(
"timeText"
).GetComponent<Text>();
mAnim = GetComponent<Animator>();
mAnim.SetBool(
"idle"
,
true
);
mAnim.SetBool(
"swim"
,
false
);
}
// Update is called once per frame
void
if
{
speed1 += 0.9f;
n++;
indexClick.text =
"点 击 次 数:"
+ n.ToString();
mAnim.SetBool(
"swim"
,
true
);
mAnim.SetBool(
"restart"
,
true
);
}
else
(speed1 > 0)
{
speed1 -= 0.09f;
mAnim.SetBool(
"swim"
,
false
);
mAnim.SetBool(
"restart"
,
false
);
}
else
{
speed1 = 0;
mAnim.SetBool(
"stop"
,
true
);
}
GetComponent<Rigidbody2D>().MovePosition(transform.position +
new
//秒计时器
if
{
i = 0;
m++;
indexTime.text =
"用时(秒):"
//print(m);
}
i += Time.deltaTime;
//数据存储
if
true
)
{
PlayerPrefs.SetInt(
"indexClick"
, n);
PlayerPrefs.SetInt(
"indexTime"
, m);
ifSave =
false
;
SceneManager.LoadScene(
"Scene2"
);
}
}
}
|
第三部分就更简单了,取一下第二个scene存的数据,然后显示出来就行了。本来想加个排行榜,然后想了下,这个再说吧,先不浪费时间了。
如图:
代码也很简洁:
[C#]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
using
using
using
using
public
showFinal : MonoBehaviour {
int
int
Text ClickText;
Text TimeText;
// Use this for initialization
void
indexClick = PlayerPrefs.GetInt(
"indexClick"
);
indexTime = PlayerPrefs.GetInt(
"indexTime"
);
ClickText = GameObject.Find(
"Canvas"
).transform.Find(
"clickText"
).GetComponent<Text>();
TimeText = GameObject.Find(
"Canvas"
).transform.Find(
"timeText"
).GetComponent<Text>();
ClickText.text =
"点 击 次 数:"
+ indexClick.ToString();
TimeText.text =
"用时(秒):"
}
// Update is called once per frame
void
}
public
Restart()
{
SceneManager.LoadScene(
"Scene1"
);
}
public
Exit()
{
Application.Quit();
}
}
|
可以发布成安卓的,也可以发布成pc的,pc的按X键或者鼠标加速,小伙伴们,爆发你的洪荒之力吧(傅女神借我点洪荒之力呗)。