В чем проблема в коде..

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

В чем проблема в коде..

Сообщение sawwas 06 янв 2013, 10:57

Доброго времени суток, скажите пожалуйста почему мои "лыжи не едут", не работает перезарядка, там их две, когда в магазине есть патроны(reload) и когда он пуст(reload_full). А переменная clips означает общий поезапас, а не количество магазинов ^:)^

var bulletsLeft : int = 9;
var bulletsInClip : int = 9;
var clips : int = 36;
var gText : GUIText;


function Start()
{
animation.Play("draw_in");
}


function Update ()
{

if(Input.GetMouseButtonDown(0) && !animation.IsPlaying("reload_full") && !animation.IsPlaying("reload"))
{
bulletsLeft --;
animation.Play("fire");

}

if(Input.GetKeyUp("R"))
{
if(bulletsLeft == 0)
{
ReloadFull();
}

else
{
Reload();
}
}
}


function ReloadFull()
{
if( clips >= bulletsInClip)
{
animation.Play("reload_full");
clips += bulletsLeft;
bulletsLeft = 0;
if(!animation.IsPlaying("reload_full"))
{
clips -= bulletsInClip;
bulletsLeft = bulletsInClip;
}
}

else
{
animation.Play("reload_full");
clips += bulletsLeft;
bulletsLeft = 0;
if(!animation.IsPlaying("reload_full"))
{
clips = 0;
bulletsLeft = clips;
}
}
}


function Reload()
{
if( clips >=bulletsInClip)
{
animation.Play("reload");
clips += bulletsLeft;
bulletsLeft = 0;
if(!animation.IsPlaying("reload"))
{
clips -= bulletsInClip;
bulletsLeft = bulletsInClip;
}
}
else
{
animation.Play("reload");
clips += bulletsLeft;
bulletsLeft = 0;
if(!animation.IsPlaying("reload_full"))
{
clips = 0;
bulletsLeft = clips;
}
}
}


function OnGUI()
{
gText.text = bulletsLeft + " | " + clips;
}
sawwas
UNец
 
Сообщения: 5
Зарегистрирован: 10 сен 2011, 16:10

Re: В чем проблема в коде..

Сообщение Syberex 06 янв 2013, 11:51

Отформатируйте код сначало (P)
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: В чем проблема в коде..

Сообщение sawwas 06 янв 2013, 13:05

Синтаксис:
Используется csharp
var bulletsLeft : int = 9;
var bulletsInClip : int = 9;
var clips : int = 36;
var gText : GUIText;


function Start()
{
        animation.Play("draw_in");
}


function Update ()
{
       
        if(Input.GetMouseButtonDown(0) && !animation.IsPlaying("reload_full") && !animation.IsPlaying("reload"))
        {
                bulletsLeft --;
                animation.Play("fire");
               
        }
       
        if(Input.GetKeyUp("R"))
        {
                if(bulletsLeft == 0)
                {
                        ReloadFull();
                }
               
                else
                {
                        Reload();
                }
        }
}


function ReloadFull()
{      
        if( clips >= bulletsInClip)
        {      
                animation.Play("reload_full");
                clips += bulletsLeft;
                bulletsLeft = 0;
                if(!animation.IsPlaying("reload_full"))
                {
                        clips -= bulletsInClip;
                        bulletsLeft = bulletsInClip;
                }
        }
       
        else
        {      
                animation.Play("reload_full");
                clips += bulletsLeft;
                bulletsLeft = 0;
                if(!animation.IsPlaying("reload_full"))
                {
                        clips = 0;
                        bulletsLeft = clips;
                }
        }
}


function Reload()
{
        if( clips >=bulletsInClip)
        {
                animation.Play("reload");
                clips += bulletsLeft;
                bulletsLeft = 0;
                if(!animation.IsPlaying("reload"))
                {
                        clips -= bulletsInClip;
                        bulletsLeft = bulletsInClip;
                }
        }
        else
        {
                animation.Play("reload");
                clips += bulletsLeft;
                bulletsLeft = 0;
                if(!animation.IsPlaying("reload_full"))
                {
                        clips = 0;
                        bulletsLeft = clips;
                }
        }
}


function OnGUI()
{
        gText.text = bulletsLeft + " | " + clips;
}
sawwas
UNец
 
Сообщения: 5
Зарегистрирован: 10 сен 2011, 16:10

Re: В чем проблема в коде..

Сообщение seaman 06 янв 2013, 13:14

Вы не ограничиваете bulletsLeft нулем. Оно может стать и отрицательным.А тогда перезарядка не сработает. Сделайте ограничение.
Синтаксис:
Используется csharp
if(bulletsLeft > 0) bulletsLeft--;
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 29