2017-01-13 3 views
-1

Итак, у меня есть результаты из массива JSON, все выстроились хорошо. Однако они, похоже, не перемещаются по экрану. Это потому, что мой txtX = 0; все еще в розыгрыше? Ive играл, но не могу показаться, чтобы исправить эту ситуацию, и в результате, по-прежнему имеют статический текст :-(Горизонтальный массив прокрутки объектов JSON

var scores; 
var txtX; 
var txtY; 

function preload() { 

scores = loadJSON("stats.json"); 

} 

function setup() { 

createCanvas(700, 700); 

} 

function draw() { 

background(254); 
var txtX = 0; 
var txtY = 550; 
var stats = scores.results; 
for (var i = 0; i < stats.length; i++) { 
textSize(12); 
text(stats[i], txtX, txtY); 
var wordWidth = textWidth(stats[i]); 
var currentOffset = 15; 

txtX = txtX + wordWidth + currentOffset; 

} 

txtX = txtX - 1; 


} 

Вот мой JSON:..

{ 
"description" : "FA Cup results; 7th January 2017.", 
"source" : "http://www.bbc.co.uk/sport/football/results", 
"results":[ 
"Manchester United 4-0 Reading", 
"Accrington Stanley 2-1 Luton Town", 
"Barrow 0-2 Rochdale", 
"Birmingham City 1-1 Newcastle United", 
"Blackpool 0-0 Barnsley", 
"Bolton Wanderers 0-0 Crystal Palace", 
"Brentford 5-1 Eastleigh", 
"Brighton & Hove Albion 2-0 Milton Keynes Dons", 
"Bristol City 0-0 Fleetwood Town", 
"Everton 1-2 Leicester City", 
"Huddersfiled Town 4-0 Port Vale", 
"Hull City 2-0 Swansea City", 
"Ipswich Town 2-2 Lincoln City", 
"Millwall 3-0 Bournemouth", 
"Norwich City 2-2 Southampton", 
"Queens Park Rangers 1-2 Blackburn Rovers", 
"Rotherham United 2-3 Oxford United", 
"Stoke City 0-2 Wolverhampton Wanderers", 
"Sunderland 0-0 Burnley", 
"Sutton United 0-0 AFC Wimbledon", 
"Watford 2-0 Burton Albion", 
"West Bromwich Albion 1-2 Derby County", 
"Wigan Athletic 2-0 Nottingham Forest", 
"Wycombe Wanderers 2-1 Stourbridge", 
"Preston North End 1-2 Arsenal" 
] 
} 

Любая помощь будет принята с благодарностью Спасибо

+0

Можете ли вы уточнить? Что делает этот код? Что именно не так? –

+0

Хорошо, мне нужно, чтобы они прокручивали по экрану четное пространство между ними. Я хочу, чтобы они переместились на экран с экрана справа и прокрутите экран до экрана, а затем повторите это. В настоящий момент все они сложены друг на друга, но я могу заставить их не делать этого ... – leevanchief

ответ

0

Там много о вашем коде, который не имеет смысла:

  • Почему вы используете вложенные for петля? Ваш внутренний цикл for, кажется, перебирает каждое слово в отдельной строке. Почему бы просто не передать всю строку в функцию text() вместо каждого слова по одному?
  • Почему вы меняете только currentOffset после этого внутреннего цикла? Вы рисуете целую строку, но только изменяете смещение для одного слова.
  • Почему вы добавляете 500 в currentOffset?
  • Почему бы вам не использовать переменную txtX?

Вам нужно сделать шаг назад и переосмыслить то, что вы делаете. Если бы я тебя, я хотел бы сделать следующее:

  • Вы должны следить за два переменными: txtX переменные на эскиз уровня, который отслеживает начало, которое прокручивается влево, и переменной currentWordX который отслеживает смещение текущей строки относительно переменной txtX.
  • Вам нужен только один цикл for. Даже если ваша конечная цель требует рисования каждого слова отдельно, начните с одиночного цикла for, который будет итерации по массиву results.
  • Для каждой строки массива results вы рисуете эту строку. Его позиция X - txtX + currentWordX. Затем вы получите ширину этой строки и добавьте это значение в переменную currentWordX.
  • После цикла for вам необходимо уменьшить переменную txtX, чтобы заставить все это прокручивать влево.
+0

Спасибо, Кевин, я стараюсь экспериментировать с разными идеями, и мой код немного запутался. Я отвечу на совет и попробую обдумать это. Благодарю. – leevanchief

Смежные вопросы