まず確認ですが、これはページ内に表示するテキストについて、1つずつ次の単語が流れてくるという前提で、行幅と単語区切りで分割された行を作りたい、という処理ですか?
その前提で回答しますが、
C#
1Array.Resize(ref Pager, Worder.Length + 1);
の部分が間違っています。
Pager
配列は今1ページ中に表示されている行数なので、第2引数はWorder.Length + 1
ではなくPager.Length + 1
であるべきです。
さて、ソースコードに対する回答は以上ですが、このケースでは配列ではなくList<T>
型を使うほうがより適切であると思われます。List<T>
は可変長配列と呼ばれるもので、わざわざリサイズしなくても末尾に新しい要素を追加することが簡単にできます。
C#
1using System.Collections.Generic;
2
3
4// ページの行リスト
5var Pager = new List<List<string>>();
6
7// ~~~
8
9// 行の単語リスト
10var Worder = new List<string>();
11
12// ~~~
13
14//配列にテキスト格納
15Worder.Add(obj);
16//ページ管理処理
17if (Sta.y < -150.0f)
18{
19 // 行が充填されたのでページに追加したあと新しい行のリストを作る
20 Pager.Add(Worder);
21 Worder = new List<string>();
22}
List<T>
に限らず、標準ライブラリは数多くの便利なデータ構造を提供しています。C#では主にSystem.Collections.Generic
名前空間に用意されているので、勉強しておくと今後様々なケースで役に立つでしょう。