Unity学习之路(一)太空大战类游戏制作5

来源:互联网 发布:codeblocks有mac版吗 编辑:程序博客网 时间:2024/04/27 23:20

1. 添加敌舰

添加敌人,敌人的炮弹,在炮弹上添加rigidbody和boxcollider等,取消重力,固定xyz等和前面一样。

添加penemy脚本到敌人炮弹上

#pragma strictvar explosionplayer_1:GameObject;var speed:float=5.0f;function Update () {transform.Translate(0,-speed*Time.deltaTime,0);if(transform.position.y<-1.4){Destroy(gameObject);}}function OnTriggerEnter(pzObject:Collider){if(pzObject.tag=="projectile"){Destroy(gameObject);}if(pzObject.tag=="Player"){Instantiate(explosionplayer_b1,transform.position,transform.rotation);RockController.lives--;if(RockController.lives<1){if(RockController.score>PlayerPrefs.GetInt("highscore")){PlayerPrefs.SetInt("highscore",RockController.score);Application.LoadLevel("score");}else{Application.LoadLevel("lose");}}}}
添加敌舰enemyController代码

#pragma strictvar Espeed:float=3.0;var f:float=1.0;var projectile1_b1:GameObject;var myTime:float=0;function Start () {}function Update () {transform.Translate(f*Espeed*Time.deltaTime,0,0);if(transform.position.x>3)f=-1.0;if(transform.position.x<-3)f=1.0;myTime+=Time.deltaTime;if(myTime>0.5){Instantiate(projectile1_b1,transform.position,transform.rotation);myTime=0;}}



2. 难易选择和医疗船代码补充

添加leftController代码(医疗船)

#pragma strictvar speed:float=2.0;function Update () {if(transform.position.y<-1.3)transform.position=new Vector3(Random.Range(-2.6,2.6),3.5,0);transform.Translate(0,-speed*Time.deltaTime,0);}function OnTriggerEnter(pz:Collider){if(pz.tag=="projectile"){rockController.lives++;gameObject.SetActive(false);}}

修改倒计时代码

function Update () {myTime+=Time.deltaTime;if(myTime>1){leftTime--;myTime=0;}if(leftTime<1.0){leftTime=0;if(RockController.score>PlayerPrefs.GetInt("highscore")){PlayerPrefs.SetInt("highscore",RockController.score);Application.LoadLevel("score");}elseApplication.LoadLevel("win");}if(Input.GetKeyDown(KeyCode.Q)){PlayerPrefs.SetInt("highscore",100);}if(leftTime<60.0){if(startController.ny==1){enemy_b1.SetActive(false);}else{enemy_b1.SetActive(true);leftsTime+=Time.deltaTime;if(leftsTime>5.0){lefts_b1.SetActive(true);leftsTime=0.0;}}}}

修改开始场景代码:

#pragma strictprivate var intext:String="Instruction:\n\n Press left and right arrow to move . \n Press Space to fire.";public var startTexture:Texture ;static var ny:int=1;var eTexture:Texture;var mTexture:Texture;var nTexture:Texture;var ffTexture:Texture;function OnGUI(){GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),startTexture);GUI.DrawTexture(new Rect(30,108,128,64),eTexture);GUI.DrawTexture(new Rect(30,160,128,64),mTexture);GUI.DrawTexture(new Rect(30,220,128,64),nTexture);GUI.Label(new Rect(10,10,250,200),intext);if(GUI.Button(Rect(160,120,60,20),"easy")){ny=1;}if(GUI.Button(Rect(160,180,60,20),"normal")){ny=2;}if(GUI.Button(Rect(160,245,60,20),"hard")){ny=3;}GUI.Label(new Rect(520,505,250,200),"Press Space to start!!");if(ny==1){GUI.DrawTexture(new Rect(218,100,128,64),ffTexture);}if(ny==2){GUI.DrawTexture(new Rect(218,165,128,64),ffTexture);}if(ny==3){GUI.DrawTexture(new Rect(218,223,128,64),ffTexture);}if(Input.GetKeyDown(KeyCode.Space)){Application.LoadLevel("level");}}


0 0
原创粉丝点击