Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2014, 23:21
Интересующийся
Отправить личное сообщение для 6stprod Посмотреть профиль Найти все сообщения от 6stprod
 
Регистрация: 12.03.2014
Сообщений: 11

Обработка вопросов в промо игре
Народ, помогите разобраться со скриптом

//window.addEventListener('load', function(e) {


$(document).ready(function(){
    var globalWrap = $('.global-wrap');
    var resMsg = $('.message');
    var clickEvt = (('ontouchstart' in window))? 'touchstart': 'click'; //'touchstart': 'click';


    var timer = $('#timer').pietimer({
        seconds: 30,
        color: 'rgba(255, 0, 0, .6)'
    }, function(){
        gotoStage( '#loose-stage' )
    });


    var game = new Game();

    $('.global-wrap')
        .on(clickEvt, '.goto', function(evt){

            evt.preventDefault();
            var $elf = $(this);

            gotoStage($elf.attr('href'));

        })
        .on(clickEvt, '.gotoGame', function(evt){

            evt.preventDefault();
            var $elf = $(this);
            gotoGameStage();

        })
        .on(clickEvt, '.proceedToStage', function(evt){

            evt.preventDefault();
            var $elf = $(this);
            $('#proceed-stage').find('.proceed-sign').addClass('faded');
            setTimeout(function(){

                $('.clean-bg-wrap').addClass('cleared');
            }, 500);
            setTimeout(function(){
                gotoGameStage();
                $('.clean-bg-wrap').removeClass('cleared');
                $('#proceed-stage').find('.proceed-sign').removeClass('faded')
            }, 1200);

        })
        .on(clickEvt, '.answer', function(evt){


            evt.preventDefault();
            var $elf = $(this);

            $('#game-stage, #proceed-stage').removeClass('step-1').removeClass('step-2').removeClass('step-3');

            switch(game.checkAnswer($('.options .answer').index($elf))){
                case 'win':
                    gotoStage( '#win-stage' );
                    $('#game-stage, #proceed-stage').addClass('step-1');
                    break;
                case 'next':

                    var t = game.passed + 1;
                    $('#game-stage, #proceed-stage').addClass('step-'+t);
                    gotoStage( '#proceed-stage' );
                    break;
                default:
                    $('#game-stage, #proceed-stage').addClass('step-1');
                    gotoStage( '#loose-stage' );
                    break;
            }


            timer.pietimer('drop');

        });


    function gotoGameStage( ){

        game.initStage('easy');
        gotoStage('#game-stage');
        timer.pietimer('start');

    }
    function gotoStage( id ){

        $('.currentStage').removeClass('currentStage');
        $(id).addClass('currentStage');
    }







    document.ontouchstart = function(e){
        e.preventDefault();
    };


//

    Cufon.replace('.myriad', {
        textShadow: ' 0 -1px 1px rgba(0,0,0,.75)'
    });

    Cufon.replace('.question .inner', {
        textShadow: '2px 2px 6px #0f480e',
        fontFamily: "Myriad Semi"
    });


    function Game(){

        var questionNumber = {
            easy: 0
        };

        var tData = new QuizDataEasy();
        var tDataLast = tData.splice(tData.length-1, 1)[0];
        tData.sort(function(){
            return Math.round(Math.random()) - 0,5;
        });
        tData.push(tDataLast);

        var quizData = {
            easy: tData
        };

        var self = this;

        var timerCount;
        var timerSpan = $('#timer');
        var timerVal = 30;

        var opened = 0;

        self.passed = 0;

        var stageData = {
            options: ['вариант1', 'вариант2', 'вариант3'],
            correct: 'вариант 1'
        };

        self.initStage = function(difficulty){
            var ind;
            if(self.passed < 2){
                if(questionNumber[difficulty] >= quizData[difficulty].length){
                    ind = questionNumber[difficulty] = 0;
                }else{
                    ind = questionNumber[difficulty]++;
                }
                stageData = quizData[difficulty][ind];
            }else{

                stageData = quizData[difficulty][quizData[difficulty].length-1];
            }


            $('.options .btn-1').html(stageData['options'][0]);
            $('.options .btn-2').html(stageData['options'][1]);
            $('.options .btn-3').html(stageData['options'][2]);
            $('.question .inner').html(stageData['question']);


            Cufon.refresh();

        };

        function clearStage(){

            clearInterval(timerCount);
            timerVal = 30;
            $('.flipped').removeClass('flipped');
            timerSpan.text(30);
            opened = 0;
            globalWrap.removeClass('btns-visible');
        }

        function countdown(){
            timerCount = setInterval(function(){
                if(timerVal > 0){
                    timerSpan.text(--timerVal)
                }else{

                    $('#page-game').hide();
                    $('#page-loose').show();
                    clearStage()
                }
            }, 1000)
        }

        self.checkAnswer = function( ind ){

            var res = false;
            if(ind == stageData.correct){
                self.passed++;
                if(self.passed>=6){
                    res = 'win';
                    self.passed = 0;
                }else{
                    res = 'next'
                }
            }else{
                self.passed = 0;
            }

            return res;

        };


    }
});
//});


Суть такова - задается три вопроса(берутся из дополнительной библиотеки) пользователь отвечает и выходит на страничку победителя, я поставил вариант из 6 вопросов. Итог: первый и второй вопросы берутся рандомно, а третий, четвертый, пятый и шестой вопрос почему то задается один и тот же, что стоит в конце списка библиотеки с вопросами, в чем может быть причина данного бага?
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2014, 23:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

6stprod,
в строке 204 сами 6 поставили? до этого 3 было?
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2014, 23:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

тихо сам с собою: если было 3 стало 6 тогда и 2 должно стать 5 понимаите о чём я )))
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2014, 00:03
Интересующийся
Отправить личное сообщение для 6stprod Посмотреть профиль Найти все сообщения от 6stprod
 
Регистрация: 12.03.2014
Сообщений: 11

Было 3, я поставил 6...
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2014, 00:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

6stprod,
тогда попробуйте и 2 поменять на 5 )))
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2014, 00:12
Интересующийся
Отправить личное сообщение для 6stprod Посмотреть профиль Найти все сообщения от 6stprod
 
Регистрация: 12.03.2014
Сообщений: 11

Да, все работает) спасибо
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2014, 00:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

вот так штирлиц получал шифровки из центра
Ответить с цитированием
  #8 (permalink)  
Старый 13.03.2014, 00:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

6stprod,
лучше всё-таки код хоть немного коментировать и указывать места изменений. а так ваш вопрос был из разряда пойди туда незнаю куда.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка нажатия на элемент и его родитель klev2004 Общие вопросы Javascript 3 12.12.2012 20:07
JavaScript в браузерной игре NeoTank Работа 7 28.04.2010 09:01