データ構造ってPro版のみじゃん・・Liteで何とかならないの?
→自前でキューオブジェクト作ればいいんじゃね
以下,文字列用キューオブジェクト及びスクリプト
デキューがちょっと頭悪いので要改善
[objQueue]
[Create Event]
DataPointer = 0;
[Scripts:enuqueue]
//enuqueue(QueueObject,Data)
with(argument0){
Data[DataPointer] = argument1;
DataPointer+=1;
}
[Scripts:deuqueue]
//dequeue(QueueObject)
var i,tmp;
with(argument0){
if(DataPointer>0){
tmp = Data[0];
for(i=0;i<DataPointer-1;i+=1){
Data[i] = Data[i+1];
}
Data[i] = false;
DataPointer-=1;
return tmp;
}else return "";
}
使い方
キューオブジェクトを作成して,Scriptの引数にオブジェクトとデータを渡す.
queue = instance_create(x,y,objQueue);
enqueue(queue,"Fox");
enqueue(queue,"Cute");
dequeue(queue);
draw_text(x,y,dequeue(queue));
[出力]
Cute
同一インスタンスで複数のキューを扱いたいなら
queue = instance_create(x,y,objQueue);
queue2 = instance_create(x,y,objQueue);
enqueue(queue ,"Fox");
enqueue(queue ,"Cute");
enqueue(queue2,"Love");
dequeue(queue);
draw_text(x,y,dequeue(queue)+dequeue(queue2));
[出力]
CuteLove
逆に複数インスタンスで同一のキューを扱いたいならglobalで作成すればいい
[objPlayer1]
global.queue = instance_create(x,y,objQueue);
enqueue(global.queue ,"Fox");
enqueue(global.queue ,"Cute");
dequeue(global.queue);
[objPlayer2]
enqueue(global.queue ,"Love");
enqueue(global.queue ,"Favorite");
draw_text(x,y,dequeue(global.queue));
[出力]
Fox
キュー データ構造
最終更新:2011年06月16日 03:38