[Urgent]Probleme avec un gain de vie au lieu de perte
[Urgent]Probleme avec un gain de vie au lieu de perte
Bonjour, j'ai un soucis avec la perte de vie, lorsque l'on se fait tirer dessus, je gagne de la vie au lieu d'en perdre.
Un jour un ami m'a dit : "Attrape ton courage à deux main et affronte ton destin"
"Tout est en haut , Tout est en bas, Tout l'est."
"Tout est en haut , Tout est en bas, Tout l'est."
Re: [Urgent]Probleme avec un gain de vie au lieu de perte
Faut gagner de la vie, comme ça tu en perdra....
Ok je sors.
Ok je sors.
Dernière édition par cayou66 le 15 Nov 2011 21:43, édité 1 fois.
Re: [Urgent]Probleme avec un gain de vie au lieu de perte
Un peu plus de détails sur ton problème?
tu fais peut être vie++ au lieu de vie--
tu fais peut être vie++ au lieu de vie--
Re: [Urgent]Probleme avec un gain de vie au lieu de perte
voici le code :
Autre soucis, j'utilise avant ma fonction pour tirer (autre script), ce que je ne comprends pas c'est pourquoi plus rien ne se passe après le WaitForSeconds.
Code : Tout sélectionner
var hitPoints=20;
var fireRate = 0.5;
var impact:GameObject;
var canFire = true;
var damageHit:float=4;
var shootSound:AudioClip;
Screen.showCursor=false;
private var gainPoints = 0;
private var menuScore:GameObject;
menuScore=GameObject.Find("ScorePoints");
private var hitPointsScore:GameObject;
hitPointsScore=GameObject.Find("ScoreHitPoints");
menuScore.GetComponent(GUIText).text="Score : "+gainPoints;
hitPointsScore.GetComponent(GUIText).text="PV : "+hitPoints;
function ApplyPoints(points:float){
gainPoints=gainPoints+points;
menuScore.GetComponent(GUIText).text="Kill : "+gainPoints;
}
function makeDamage(damage:float){
hitPoints-=damage;
hitPointsScore.GetComponent(GUIText).text="PV :"+hitPoints;
if(hitPoints<=0){
Application.LoadLevel(1);
}
}
function Update () {
if(Input.GetButton("Fire1")){
fire();
}
}
function fire(){
if (canFire==true){
canFire=false;
FireOneShot();
}
}
function FireOneShot(){
audio.PlayOneShot(shootSound);
var direction=transform.TransformDirection(Vector3.forward);
var hit:RaycastHit;
if(Physics.Raycast(transform.position,direction,hit,100)){
tempRot=Quaternion.FromToRotation(Vector3.up,hit.normal);
Instantiate(impact,hit.point,tempRot);
if (hit.rigidbody){
hit.rigidbody.AddForce(400*direction);
}
hit.collider.SendMessageUpwards("makeDamage",damageHit,SendMessageOptions.DontRequireReceiver);
}
yield WaitForSeconds(fireRate);
canFire=true;
}
Code : Tout sélectionner
yield WaitForSeconds(31)
Un jour un ami m'a dit : "Attrape ton courage à deux main et affronte ton destin"
"Tout est en haut , Tout est en bas, Tout l'est."
"Tout est en haut , Tout est en bas, Tout l'est."
Re: [Urgent]Probleme avec un gain de vie au lieu de perte
alors?
Un jour un ami m'a dit : "Attrape ton courage à deux main et affronte ton destin"
"Tout est en haut , Tout est en bas, Tout l'est."
"Tout est en haut , Tout est en bas, Tout l'est."
Re: [Urgent]Probleme avec un gain de vie au lieu de perte
Alors, alors, alors c'est un forum... On est pas constamment en train de rafraîchir la page en attendant que tu postesTony 1923 a écrit :alors?
Enfin, pour ton problème, je ne vois pas à 1ere vue, as-tu juste essayé de faire à la place de:
Code : Tout sélectionner
hitPoints-=damage;
Code : Tout sélectionner
hitPoints+=damage;
Et pour ton WaitForSeconds, 31 secondes ça fait beaucoup
Le yield sert à dire qu'après cette ligne, la prochaine frame reprendra à partir d'ici (si j'ai bon). En gros ça fait l'action et ça laisse la main au reste de l'application.
Re: [Urgent]Probleme avec un gain de vie au lieu de perte
hé hé .... yield WaitForSeconds(31)Autre soucis, j'utiliseavant ma fonction pour tirer (autre script), ce que je ne comprends pas c'est pourquoi plus rien ne se passe après le WaitForSeconds.Code : Tout sélectionner
yield WaitForSeconds(31)
viewtopic.php?f=7&t=2491&p=13098#p13098
Je penses que tu gagnerais à lire cette pagehttp://www.siteduzero.com/tutoriel-3-52 ... -en-c.html, même si c'est c# :
1 - c'est de la programmation donc les concepts généraux sont applicables partout
2 - ca te servira dans unity
Prochainement sur vos écrans
Re: [Urgent]Probleme avec un gain de vie au lieu de perte
merci
Un jour un ami m'a dit : "Attrape ton courage à deux main et affronte ton destin"
"Tout est en haut , Tout est en bas, Tout l'est."
"Tout est en haut , Tout est en bas, Tout l'est."
Re: [Urgent]Probleme avec un gain de vie au lieu de perte
voici l'autre script avec WaitForSecond :
Code : Tout sélectionner
var shootSound : AudioClip;
var bellSound : AudioClip;
var fireRate = 0.5;
var impact:GameObject;
var canFire = true;
var damageHit:float=4;
Screen.showCursor=false;
audio.PlayOneShot(bellSound);
function Update () {
if(Input.GetButton("Fire1")){
Canfire();
}
}
function Canfire(){
canFire=false;
yield WaitForSeconds(30);
canFire=true;
fire();
}
function fire(){
if (canFire==true){
canFire=false;
FireOneShot();
}
}
function FireOneShot(){
audio.PlayOneShot(shootSound);
var direction=transform.TransformDirection(Vector3.forward);
var hit:RaycastHit;
if(Physics.Raycast(transform.position,direction,hit,100)){
tempRot=Quaternion.FromToRotation(Vector3.up,hit.normal);
Instantiate(impact,hit.point,tempRot);
if (hit.rigidbody){
hit.rigidbody.AddForce(400*direction);
}
hit.collider.SendMessageUpwards("makeDamage",damageHit,SendMessageOptions.DontRequireReceiver);
}
yield WaitForSeconds(fireRate);
canFire=true;
}
Un jour un ami m'a dit : "Attrape ton courage à deux main et affronte ton destin"
"Tout est en haut , Tout est en bas, Tout l'est."
"Tout est en haut , Tout est en bas, Tout l'est."
Re: [Urgent]Probleme avec WaiForSeconds
alors pour waitforseconds, existerai-t-il une autre solution?
Un jour un ami m'a dit : "Attrape ton courage à deux main et affronte ton destin"
"Tout est en haut , Tout est en bas, Tout l'est."
"Tout est en haut , Tout est en bas, Tout l'est."