up
All checks were successful
Deploy to Production / deploy (push) Successful in 9s

This commit is contained in:
lubukhu
2026-02-26 18:44:46 +07:00
parent 065d682526
commit b338f83dd9
60 changed files with 3079 additions and 76 deletions

View File

@@ -19820,6 +19820,9 @@ cr.plugins_.SenaPlugin = function (runtime) {
instanceProto.onCreate = function () {
console.log("🔥 LOAD CALLBACK FIRED");
window["SenaTrigger"] = this;
this.widthArray = [];
this.slotInstances = [];
this.slotPositions = [];
this.sdk = null;
this.isPaused = false;
this.pauseTime = 0;
@@ -19875,6 +19878,15 @@ cr.plugins_.SenaPlugin = function (runtime) {
Cnds.prototype.OnMessage = function () {
return true;
};
Cnds.prototype.OnWordLayoutFinished = function () {
return true;
};
Cnds.prototype.OnSlotLayoutFinished = function () {
return true;
};
Cnds.prototype.OnSlotLayoutFinished2 = function () {
return true;
};
pluginProto.cnds = new Cnds();
function Acts() {}
Acts.prototype.Load = function () {
@@ -19915,6 +19927,12 @@ Acts.prototype.Load = function () {
console.error("SenaSDK not found");
this.isLoading = false;
}
};
Acts.prototype.SetObjectWidth = function (index, width) {
if (!this.widthArray) {
this.widthArray = [];
}
this.widthArray[index] = width;
};
Acts.prototype.Start = function () {
var self = this;
@@ -20019,52 +20037,87 @@ Acts.prototype.Load = function () {
this.totalPausedTime = 0;
}
};
Acts.prototype.CalcObjectPositions = function (
count,
objectWidth,
margin,
maxWidth,
rowBreak,
rowGap,
type,
groupGap
) {
this.calculatedPositions = [];
if (count <= 0) return;
var rows = [];
if (rowBreak > 0) {
for (var i = 0; i < count; i += rowBreak) {
rows.push(Math.min(rowBreak, count - i));
}
Acts.prototype.CalcObjectPositions = function (
count,
objectWidth,
margin,
maxWidth,
rowBreak,
rowGap,
type,
groupGap
) {
var widthArray = this.widthArray || [];
if (!widthArray.length) {
console.warn("widthArray empty, fallback to objectWidth");
widthArray = new Array(count).fill(objectWidth);
}
this.calculatedPositions = [];
if (count <= 0) {
this.runtime.trigger(
cr.plugins_.SenaPlugin.prototype.cnds.OnCalculateFinished,
this
);
return;
}
var rows = [];
if (rowBreak > 0) {
for (var i = 0; i < count; i += rowBreak) {
rows.push(Math.min(rowBreak, count - i));
}
} else {
if (count <= 5) {
rows.push(count);
} else {
if (count <= 5) {
rows.push(count);
} else {
var top = Math.ceil((count + 1) / 2);
var bottom = count - top;
rows.push(top);
rows.push(bottom);
}
var top = Math.ceil((count + 1) / 2);
var bottom = count - top;
rows.push(top);
rows.push(bottom);
}
var baseY = 0;
if (type === "word") {
baseY = groupGap || (rowGap * rows.length); // word always below slot
}
var baseY = 0;
if (type === "word") {
baseY = groupGap || (rowGap * rows.length);
}
var index = 0;
for (var r = 0; r < rows.length; r++) {
var itemsInRow = rows[r];
var rowWidth = 0;
for (var i = 0; i < itemsInRow; i++) {
rowWidth += widthArray[index + i] || objectWidth;
}
var index = 0;
for (var r = 0; r < rows.length; r++) {
var itemsInRow = rows[r];
var rowWidth = itemsInRow * objectWidth + (itemsInRow - 1) * margin;
var startX = (maxWidth - rowWidth) / 2;
for (var i = 0; i < itemsInRow; i++) {
this.calculatedPositions.push({
x: startX + i * (objectWidth + margin) + objectWidth / 2,
y: baseY + r * rowGap
});
index++;
}
rowWidth += (itemsInRow - 1) * margin;
var startX = (maxWidth - rowWidth) / 2;
var currentX = startX;
for (var i = 0; i < itemsInRow; i++) {
var w = widthArray[index] || objectWidth;
this.calculatedPositions.push({
x: currentX + w / 2,
y: baseY + r * rowGap
});
currentX += w + margin;
index++;
}
console.log("Calculated positions (multi-row):", this.calculatedPositions);
};
}
console.log("Calculated positions:", this.calculatedPositions);
if (type === "word") {
this.runtime.trigger(
cr.plugins_.SenaPlugin.prototype.cnds.OnWordLayoutFinished,
this
);
} else if (type === "slot") {
this.runtime.trigger(
cr.plugins_.SenaPlugin.prototype.cnds.OnSlotLayoutFinished,
this
);
}
else if (type === "slot2") {
this.runtime.trigger(
cr.plugins_.SenaPlugin.prototype.cnds.OnSlotLayoutFinished2,
this
);
}
};
Acts.prototype.LoadLevelG5 = function (levelIndex) {
if (this.sdk && this.sdk.loadLevelG5) {
this.sdk.loadLevelG5(levelIndex);
@@ -20113,6 +20166,22 @@ Acts.prototype.Load = function () {
};
pluginProto.acts = new Acts();
function Exps() {}
Exps.prototype.getObjectWidthByIndex = function (ret, index) {
if (!this.runtime) {
ret.set_float(0);
return;
}
var instances = this.runtime.getCurrentEventStack().current_event.solModifiers;
if (!instances) {
ret.set_float(0);
return;
}
if (this.widthArray && this.widthArray[index] !== undefined) {
ret.set_float(this.widthArray[index]);
} else {
ret.set_float(0);
}
};
Exps.prototype.getQuestionValue = function (ret) {
if (this.sdk) {
ret.set_string(this.sdk.getQuestionValue() || "");
@@ -25158,23 +25227,24 @@ cr.behaviors.Sin = function(runtime)
behaviorProto.exps = new Exps();
}());
cr.getObjectRefTable = function () { return [
cr.plugins_.SenaPlugin,
cr.plugins_.Sprite,
cr.plugins_.SpriteFontPlus,
cr.plugins_.Touch,
cr.plugins_.Audio,
cr.plugins_.Browser,
cr.plugins_.Function,
cr.plugins_.JSON,
cr.plugins_.Sprite,
cr.plugins_.SenaPlugin,
cr.plugins_.SpriteFontPlus,
cr.plugins_.Touch,
cr.behaviors.Fade,
cr.behaviors.DragnDrop,
cr.behaviors.Rex_MoveTo,
cr.behaviors.Pin,
cr.behaviors.Sin,
cr.behaviors.Anchor,
cr.behaviors.Pin,
cr.system_object.prototype.cnds.OnLayoutStart,
cr.plugins_.SenaPlugin.prototype.acts.Load,
cr.system_object.prototype.acts.SetLayerVisible,
cr.plugins_.Sprite.prototype.acts.Destroy,
cr.plugins_.SenaPlugin.prototype.cnds.OnLoad,
cr.plugins_.Browser.prototype.acts.ConsoleLog,
cr.plugins_.SenaPlugin.prototype.exps.getGuide,
@@ -25186,7 +25256,6 @@ cr.getObjectRefTable = function () { return [
cr.plugins_.SenaPlugin.prototype.exps.getRequestValue,
cr.plugins_.SenaPlugin.prototype.exps.getOptionsCount,
cr.plugins_.SenaPlugin.prototype.exps.getHintCount,
cr.plugins_.Sprite.prototype.acts.Destroy,
cr.system_object.prototype.acts.SetVar,
cr.behaviors.Pin.prototype.acts.Pin,
cr.plugins_.SpriteFontPlus.prototype.acts.SetText,
@@ -25196,24 +25265,33 @@ cr.getObjectRefTable = function () { return [
cr.plugins_.Sprite.prototype.acts.SetPos,
cr.plugins_.Sprite.prototype.acts.LoadURL,
cr.plugins_.SenaPlugin.prototype.exps.getQuestionImage,
cr.plugins_.SenaPlugin.prototype.acts.CalcObjectPositions,
cr.system_object.prototype.exps["int"],
cr.plugins_.Sprite.prototype.exps.Width,
cr.system_object.prototype.cnds.Repeat,
cr.system_object.prototype.exps["int"],
cr.system_object.prototype.exps.loopindex,
cr.plugins_.SenaPlugin.prototype.exps.getHintType,
cr.plugins_.SenaPlugin.prototype.exps.getHintValue,
cr.system_object.prototype.acts.CreateObject,
cr.plugins_.SenaPlugin.prototype.exps.getPosXbyIndex,
cr.plugins_.SenaPlugin.prototype.exps.getPosYbyIndex,
cr.system_object.prototype.cnds.Compare,
cr.plugins_.Sprite.prototype.acts.SetBoolInstanceVar,
cr.plugins_.Sprite.prototype.acts.SetAnimFrame,
cr.plugins_.Sprite.prototype.acts.SetWidth,
cr.plugins_.SpriteFontPlus.prototype.exps.TextWidth,
cr.plugins_.SenaPlugin.prototype.acts.SetObjectWidth,
cr.plugins_.Sprite.prototype.exps.Width,
cr.plugins_.SpriteFontPlus.prototype.acts.Destroy,
cr.system_object.prototype.cnds.Else,
cr.system_object.prototype.acts.AddVar,
cr.plugins_.Sprite.prototype.acts.SetY,
cr.plugins_.SenaPlugin.prototype.exps.getOptionsType,
cr.plugins_.SenaPlugin.prototype.acts.CalcObjectPositions,
cr.plugins_.SenaPlugin.prototype.exps.getOptionsValue,
cr.plugins_.Sprite.prototype.acts.SetY,
cr.plugins_.SenaPlugin.prototype.exps.getPosYbyIndex,
cr.plugins_.SenaPlugin.prototype.cnds.OnWordLayoutFinished,
cr.plugins_.SenaPlugin.prototype.exps.getOptionsType,
cr.plugins_.SenaPlugin.prototype.exps.getPosXbyIndex,
cr.plugins_.SenaPlugin.prototype.cnds.OnSlotLayoutFinished,
cr.system_object.prototype.acts.AddVar,
cr.plugins_.SenaPlugin.prototype.cnds.OnSlotLayoutFinished2,
cr.system_object.prototype.cnds.ForEach,
cr.system_object.prototype.cnds.PickByComparison,
cr.plugins_.Touch.prototype.cnds.OnTouchObject,
cr.plugins_.Sprite.prototype.cnds.IsVisible,
cr.system_object.prototype.cnds.CompareVar,
@@ -25229,7 +25307,6 @@ cr.getObjectRefTable = function () { return [
cr.plugins_.SenaPlugin.prototype.cnds.OnResume,
cr.plugins_.Function.prototype.cnds.OnFunction,
cr.system_object.prototype.cnds.For,
cr.system_object.prototype.cnds.PickByComparison,
cr.system_object.prototype.exps.left,
cr.system_object.prototype.exps.len,
cr.plugins_.SenaPlugin.prototype.acts.Finish,
@@ -25247,10 +25324,10 @@ cr.getObjectRefTable = function () { return [
cr.behaviors.DragnDrop.prototype.cnds.OnDrop,
cr.plugins_.Sprite.prototype.cnds.IsBoolInstanceVarSet,
cr.plugins_.Sprite.prototype.cnds.PickDistance,
cr.behaviors.Rex_MoveTo.prototype.acts.SetMaxSpeed,
cr.plugins_.SenaPlugin.prototype.acts.SetData,
cr.system_object.prototype.exps.str,
cr.plugins_.SenaPlugin.prototype.acts.PostMessage,
cr.behaviors.Rex_MoveTo.prototype.acts.SetMaxSpeed,
cr.behaviors.DragnDrop.prototype.cnds.IsDragging,
cr.system_object.prototype.cnds.EveryTick,
cr.plugins_.Sprite.prototype.acts.SetVisible,

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,5 +1,5 @@
{
"version": 1772008835,
"version": 1772106234,
"fileList": [
"data.js",
"c2runtime.js",
@@ -22,7 +22,6 @@
"images/layer-sheet0.png",
"images/newwordpng-sheet0.png",
"images/img-sheet0.png",
"images/khungnen-sheet0.png",
"media/click.ogg",
"media/correct.ogg",
"media/error-010-206498.ogg",

View File

@@ -814,7 +814,7 @@ SenaSDK.prototype.start = function () {
if (self.shuffle && self.data?.options) {
self.shuffleArray(self.data.options);
}
self.startTime = Date.now();
// self.startTime = Date.now();
};
SenaSDK.prototype.markUserInteraction = function () {
@@ -870,8 +870,8 @@ SenaSDK.prototype.end = function (answer, callback) {
// ========== STANDARD GAMES (Quiz/Sort/Fill) ==========
self.endTime = Date.now();
const duration = (self.endTime - self.startTime) / 1000;
// self.endTime = Date.now();
// const duration = (self.endTime - self.startTime) / 1000;
const answerStr = String(answer || '');
const userAnswers = answerStr.includes('|')
@@ -918,21 +918,19 @@ SenaSDK.prototype.end = function (answer, callback) {
});
}
// Check time limit
if (self.timeLimit > 0 && duration > self.timeLimit) {
isCorrect = false;
console.log('🎮 Sena SDK: Time limit exceeded');
}
// // Check time limit
// if (self.timeLimit > 0 && duration > self.timeLimit) {
// isCorrect = false;
// console.log('🎮 Sena SDK: Time limit exceeded');
// }
const result = {
isCorrect: isCorrect,
duration: duration,
correctAnswer: correctAnswers.join(' | '),
userAnswer: userAnswers.join(' | ')
};
isCorrect: isCorrect,
correctAnswer: correctAnswers.join(' | '),
userAnswer: userAnswers.join(' | ')
};
console.log(`🎮 Sena SDK: Result: ${isCorrect ? 'CORRECT' : 'INCORRECT'} (${duration}s)`);
console.log(`🎮 Sena SDK: Result: ${isCorrect ? 'CORRECT' : 'INCORRECT'}`);
if (callback) callback(result.isCorrect);
return result;
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2uistate>
<!--This is a UI state file - its content describes the user interface settings when the event sheet was last open.
It is entirely optional and the project will load without it. If you are placing the project under source control,
you probably do not want to add any .uistate.xml files to the repository.-->
<show-addaction-links>1</show-addaction-links>
<scroll-pos>0</scroll-pos>
<conditions-column>437</conditions-column>
<actions-namecolumn>78</actions-namecolumn>
<condition-namecolumns>
<nest>139</nest>
<nest>127</nest>
<nest>112</nest>
<nest>110</nest>
<nest>18</nest>
</condition-namecolumns>
<events />
</c2uistate>

View File

@@ -0,0 +1,397 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2eventsheet>
<!--All the 'name' attributes are ignored by Construct 2 - they are there for readability only.-->
<name>DrapDrop</name>
<events>
<variable constant="0" name="filledCount" sid="528865922993012" static="0" type="number">-1</variable>
<event-block sid="197106660861514">
<conditions>
<condition behavior="DragDrop" id="1" name="On drag start" sid="528907557634308" type="btn_WordItem" />
</conditions>
<actions>
<action id="0" name="Play" sid="162558464641912" type="Audio">
<param id="0" name="Audio file">click</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
</actions>
<sub-events>
<event-block sid="266963171745346">
<conditions>
<condition id="-7" name="Compare instance variable" sid="673397366023432" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Value">-1</param>
</condition>
<condition id="-7" name="Compare instance variable" sid="577869128870380" type="Slot">
<param id="0" name="Instance variable">index</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">btn_WordItem.slotIndex</param>
</condition>
<condition id="1" name="Is overlapping another object" sid="609479521709627" type="btn_WordItem">
<param id="0" name="Object">txt_WordItem</param>
</condition>
</conditions>
<actions>
<action id="-10" name="Set value" sid="445026196152632" type="Slot">
<param id="0" name="Instance variable">word</param>
<param id="1" name="Value">&quot;_&quot;</param>
</action>
<action id="-24" name="Move to top" sid="670463517581139" type="btn_WordItem" />
<action id="-24" name="Move to top" sid="538995332098798" type="txt_WordItem" />
</actions>
</event-block>
<event-block sid="816493828433722">
<conditions>
<condition id="-22" name="Else" sid="390659514117980" type="System" />
</conditions>
<actions />
<sub-events>
<event-block sid="487754364377713">
<conditions>
<condition id="1" name="Is overlapping another object" sid="443159185077976" type="btn_WordItem">
<param id="0" name="Object">txt_WordItem</param>
</condition>
</conditions>
<actions>
<action id="-24" name="Move to top" sid="774809908055048" type="btn_WordItem" />
<action id="-24" name="Move to top" sid="501986465343455" type="txt_WordItem" />
</actions>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
<event-block sid="946639210805430">
<conditions>
<condition behavior="DragDrop" id="2" name="On drop" sid="155941787306139" type="btn_WordItem" />
</conditions>
<actions>
<action id="0" name="Play" sid="361413524752870" type="Audio">
<param id="0" name="Audio file">immersivecontrol-button-click-sound-463065</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
</actions>
<sub-events>
<event-block sid="504792991445212">
<conditions>
<condition id="1" name="Is overlapping another object" sid="845450333794375" type="btn_WordItem">
<param id="0" name="Object">Slot</param>
</condition>
<condition id="-8" inverted="1" name="Is boolean instance variable set" sid="204552588897544" type="Slot">
<param id="0" name="Instance variable">locked</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="106550985509374">
<conditions>
<condition id="-15" name="Pick nearest/furthest" sid="170480452496238" type="Slot">
<param id="0" name="Which">0</param>
<param id="1" name="X">btn_WordItem.X</param>
<param id="2" name="Y">btn_WordItem.Y</param>
</condition>
<condition id="-7" name="Compare instance variable" sid="938809230173413" type="Slot">
<param id="0" name="Instance variable">word</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">&quot;_&quot;</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="800826128186269">
<conditions>
<condition id="-7" name="Compare instance variable" sid="542293663517978" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">-1</param>
</condition>
</conditions>
<actions>
<action id="-10" name="Set value" sid="568930528296173" type="Slot">
<param id="0" name="Instance variable">word</param>
<param id="1" name="Value">btn_WordItem.text</param>
</action>
<action id="-5" name="Set width" sid="848464562069708" type="Slot">
<param id="0" name="Width">btn_WordItem.Width</param>
</action>
<action id="-10" name="Set value" sid="319064212608435" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Value">Slot.index</param>
</action>
<action id="-10" name="Add to" sid="416857348260297" type="System">
<param id="0" name="Variable">filledCount</param>
<param id="1" name="Value">1</param>
</action>
<action id="15" name="Set Data" sid="419250460039333" type="SenaAI">
<param id="0" name="Data 1">str(btn_WordItem.Text)</param>
<param id="1" name="Data 2">str(Slot.index)</param>
<param id="2" name="Data 3">&quot;&quot;</param>
<param id="3" name="Data 4">&quot;&quot;</param>
<param id="4" name="Data 5">&quot;&quot;</param>
</action>
<action id="16" name="Post Message" sid="278619922018473" type="SenaAI" />
</actions>
</event-block>
<event-block sid="296319278611324">
<conditions>
<condition id="-22" name="Else" sid="250133201929726" type="System" />
</conditions>
<actions>
<action id="-10" name="Set value" sid="347684935320096" type="Slot">
<param id="0" name="Instance variable">word</param>
<param id="1" name="Value">btn_WordItem.text</param>
</action>
<action id="-5" name="Set width" sid="166802160277172" type="Slot">
<param id="0" name="Width">btn_WordItem.Width</param>
</action>
<action id="-10" name="Set value" sid="116855994129968" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Value">Slot.index</param>
</action>
<action id="15" name="Set Data" sid="842443888451723" type="SenaAI">
<param id="0" name="Data 1">str(btn_WordItem.Text)</param>
<param id="1" name="Data 2">str(Slot.index)</param>
<param id="2" name="Data 3">&quot;&quot;</param>
<param id="3" name="Data 4">&quot;&quot;</param>
<param id="4" name="Data 5">&quot;&quot;</param>
</action>
<action id="16" name="Post Message" sid="156485599688224" type="SenaAI" />
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="180540551233675">
<conditions>
<condition id="-22" name="Else" sid="806523891610870" type="System" />
<condition id="-7" name="Compare instance variable" sid="831308228851461" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Value">-1</param>
</condition>
</conditions>
<actions>
<action behavior="MoveTo" id="1" name="Set maximum speed" sid="416883713281691" type="btn_WordItem">
<param id="0" name="Max speed">1200</param>
</action>
<action behavior="MoveTo" id="4" name="Move to XY" sid="572186182608955" type="btn_WordItem">
<param id="0" name="X">btn_WordItem.originX</param>
<param id="1" name="Y">btn_WordItem.originY</param>
</action>
<action id="-10" name="Set value" sid="370498434376498" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Value">-1</param>
</action>
<action id="-10" name="Add to" sid="250504698972287" type="System">
<param id="0" name="Variable">filledCount</param>
<param id="1" name="Value">-1</param>
</action>
<action id="15" name="Set Data" sid="506661306954504" type="SenaAI">
<param id="0" name="Data 1">str(btn_WordItem.Text)</param>
<param id="1" name="Data 2">&quot;-1&quot;</param>
<param id="2" name="Data 3">&quot;d3&quot;</param>
<param id="3" name="Data 4">&quot;d4&quot;</param>
<param id="4" name="Data 5">&quot;d5&quot;</param>
</action>
<action id="16" name="Post Message" sid="412688010532382" type="SenaAI" />
</actions>
</event-block>
<event-block sid="664272208282422">
<conditions>
<condition id="-22" name="Else" sid="895425177786413" type="System" />
<condition id="-7" name="Compare instance variable" sid="246894625675163" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">-1</param>
</condition>
</conditions>
<actions>
<action behavior="MoveTo" id="1" name="Set maximum speed" sid="888826482377214" type="btn_WordItem">
<param id="0" name="Max speed">1200</param>
</action>
<action behavior="MoveTo" id="4" name="Move to XY" sid="393405307018971" type="btn_WordItem">
<param id="0" name="X">btn_WordItem.originX</param>
<param id="1" name="Y">btn_WordItem.originY</param>
</action>
<action id="-10" name="Set value" sid="503673017513230" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Value">-1</param>
</action>
<action id="15" name="Set Data" sid="872163608896537" type="SenaAI">
<param id="0" name="Data 1">str(btn_WordItem.Text)</param>
<param id="1" name="Data 2">&quot;-1&quot;</param>
<param id="2" name="Data 3">&quot;d3&quot;</param>
<param id="3" name="Data 4">&quot;d4&quot;</param>
<param id="4" name="Data 5">&quot;d5&quot;</param>
</action>
<action id="16" name="Post Message" sid="249407021381141" type="SenaAI" />
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="818745098688947">
<conditions>
<condition id="-22" name="Else" sid="929804756669469" type="System" />
<condition id="-7" name="Compare instance variable" sid="177859681995434" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Value">-1</param>
</condition>
</conditions>
<actions>
<action behavior="MoveTo" id="1" name="Set maximum speed" sid="449724002535088" type="btn_WordItem">
<param id="0" name="Max speed">1200</param>
</action>
<action behavior="MoveTo" id="4" name="Move to XY" sid="721292388859295" type="btn_WordItem">
<param id="0" name="X">btn_WordItem.originX</param>
<param id="1" name="Y">btn_WordItem.originY</param>
</action>
<action id="-10" name="Set value" sid="733212651291432" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Value">-1</param>
</action>
<action id="-10" name="Add to" sid="739300525987860" type="System">
<param id="0" name="Variable">filledCount</param>
<param id="1" name="Value">-1</param>
</action>
<action id="15" name="Set Data" sid="712656902299986" type="SenaAI">
<param id="0" name="Data 1">str(btn_WordItem.Text)</param>
<param id="1" name="Data 2">&quot;-1&quot;</param>
<param id="2" name="Data 3">&quot;d3&quot;</param>
<param id="3" name="Data 4">&quot;d4&quot;</param>
<param id="4" name="Data 5">&quot;d5&quot;</param>
</action>
<action id="16" name="Post Message" sid="662902606044899" type="SenaAI" />
</actions>
</event-block>
<event-block sid="358120937494399">
<conditions>
<condition id="-22" name="Else" sid="416712700522674" type="System" />
<condition id="-7" name="Compare instance variable" sid="261187518957115" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">-1</param>
</condition>
</conditions>
<actions>
<action behavior="MoveTo" id="1" name="Set maximum speed" sid="431242330954619" type="btn_WordItem">
<param id="0" name="Max speed">1200</param>
</action>
<action behavior="MoveTo" id="4" name="Move to XY" sid="754072653542168" type="btn_WordItem">
<param id="0" name="X">btn_WordItem.originX</param>
<param id="1" name="Y">btn_WordItem.originY</param>
</action>
<action id="-10" name="Set value" sid="272960877861772" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Value">-1</param>
</action>
<action id="15" name="Set Data" sid="303992708864385" type="SenaAI">
<param id="0" name="Data 1">str(btn_WordItem.Text)</param>
<param id="1" name="Data 2">&quot;-1&quot;</param>
<param id="2" name="Data 3">&quot;d3&quot;</param>
<param id="3" name="Data 4">&quot;d4&quot;</param>
<param id="4" name="Data 5">&quot;d5&quot;</param>
</action>
<action id="16" name="Post Message" sid="102997629264439" type="SenaAI" />
</actions>
</event-block>
<event-block sid="701043374178700">
<conditions>
<condition id="-7" name="Compare instance variable" sid="425036129926507" type="Slot">
<param id="0" name="Instance variable">word</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">&quot;_&quot;</param>
</condition>
</conditions>
<actions>
<action id="-5" name="Set width" sid="490670519672817" type="Slot">
<param id="0" name="Width">200</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="580675938654997">
<conditions>
<condition behavior="DragDrop" id="0" name="Is dragging" sid="411147921527630" type="btn_WordItem" />
</conditions>
<actions>
<action disabled="1" id="-3" name="Set position" sid="610567804677855" type="btn_WordItem">
<param id="0" name="X">Touch.X</param>
<param id="1" name="Y">Touch.Y</param>
</action>
</actions>
</event-block>
<event-block sid="622060364017684">
<conditions>
<condition id="-1" name="Every tick" sid="228576696549219" type="System" />
</conditions>
<actions />
<sub-events>
<event-block sid="108730370076990">
<conditions>
<condition id="-14" name="Compare variable" sid="538413628199561" type="System">
<param id="0" name="Variable">filledCount</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">end</param>
</condition>
</conditions>
<actions>
<action id="-15" name="Set visible" sid="445242465744130" type="btn_check">
<param id="0" name="Visibility">1</param>
</action>
</actions>
</event-block>
<event-block sid="218835501607731">
<conditions>
<condition id="-22" name="Else" sid="933470660702724" type="System" />
</conditions>
<actions>
<action id="-15" name="Set visible" sid="797052197521566" type="btn_check">
<param id="0" name="Visibility">0</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="382266478838536">
<conditions>
<condition behavior="DragDrop" id="2" name="On drop" sid="468373822389217" type="btn_WordItem" />
</conditions>
<actions />
<sub-events>
<event-block sid="669608212668633">
<conditions>
<condition id="-11" name="For Each" sid="763136610920305" type="System">
<param id="0" name="Object">Slot</param>
</condition>
</conditions>
<actions>
<action id="35" name="Set Object Width" sid="216937320154014" type="SenaAI">
<param id="0" name="Index">loopindex</param>
<param id="1" name="Width">Slot.Width</param>
</action>
</actions>
</event-block>
<event-block sid="557294689920251">
<conditions />
<actions>
<action id="12" name="Calculate Object Positions" sid="903284616101407" type="SenaAI">
<param id="0" name="Count">int( SenaAI.getHintCount )</param>
<param id="1" name="Object Width">0</param>
<param id="2" name="Margin">5</param>
<param id="3" name="Max Width">1200</param>
<param id="4" name="Row Break">0</param>
<param id="5" name="Row Gap">100</param>
<param id="6" name="Type">&quot;slot2&quot;</param>
<param id="7" name="Group Gap">0</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
</events>
</c2eventsheet>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2uistate>
<!--This is a UI state file - its content describes the user interface settings when the event sheet was last open.
It is entirely optional and the project will load without it. If you are placing the project under source control,
you probably do not want to add any .uistate.xml files to the repository.-->
<show-addaction-links>1</show-addaction-links>
<scroll-pos>1422</scroll-pos>
<conditions-column>777</conditions-column>
<actions-namecolumn>92</actions-namecolumn>
<condition-namecolumns>
<nest>64</nest>
<nest>120</nest>
<nest>98</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>18</nest>
<nest>15</nest>
</condition-namecolumns>
<events />
</c2uistate>

View File

@@ -0,0 +1,928 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2eventsheet>
<!--All the 'name' attributes are ignored by Construct 2 - they are there for readability only.-->
<name>Event sheet 1</name>
<events>
<include>move</include>
<include>DrapDrop</include>
<variable constant="0" name="Paused" sid="881036884152158" static="0" type="number">0</variable>
<variable constant="0" name="end" sid="348658772353398" static="0" type="number">-1</variable>
<variable constant="0" name="isTimeUp" sid="617056362802034" static="0" type="number">0</variable>
<variable constant="0" name="timeLeft" sid="670843326082385" static="0" type="number">0</variable>
<variable constant="0" name="answer" sid="538561721013949" static="0" type="text"></variable>
<event-block sid="421297551205104">
<conditions>
<condition id="-2" name="On start of layout" sid="438843515576193" type="System" />
</conditions>
<actions>
<action id="0" name="Load" sid="551138518888793" type="SenaAI" />
<action id="-4" name="Set layer visible" sid="392038834754127" type="System">
<param id="0" name="Layer">2</param>
<param id="1" name="Visibility">0</param>
</action>
<action id="-9" name="Destroy" sid="227093858363506" type="Slot" />
<action id="-9" name="Destroy" sid="601277174090980" type="btn_WordItem" />
</actions>
</event-block>
<event-block sid="432411265738905">
<conditions>
<condition id="0" name="On LOAD Complete" sid="913106290597646" type="SenaAI" />
</conditions>
<actions>
<action id="14" name="Log" sid="260483465573520" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;Load dữ liệu xong&quot;</param>
</action>
<action id="14" name="Log" sid="330854144982241" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">SenaAI.getGuide</param>
</action>
</actions>
<sub-events>
<comment>Bắt đầu gọi Start để tính thời gian làm bài</comment>
<event-block sid="122100426567399">
<conditions />
<actions>
<action id="1" name="Start" sid="458181517098292" type="SenaAI" />
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="495673204159818">
<conditions>
<condition id="1" name="On Start question" sid="157454832331304" type="SenaAI" />
</conditions>
<actions>
<action id="14" name="Log" sid="816803828558793" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;Question :&quot;&amp;SenaAI.getQuestionType&amp;&quot; with value : &quot;&amp;SenaAI.getQuestionValue</param>
</action>
<action id="14" name="Log" sid="585706784629547" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;Request :&quot;&amp;SenaAI.getRequestType&amp;&quot; with value : &quot;&amp;SenaAI.getRequestValue</param>
</action>
<action id="14" name="Log" sid="103090682922262" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;Options Count :&quot;&amp;SenaAI.getOptionsCount</param>
</action>
<action id="14" name="Log" sid="460050924307031" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;Hint Count :&quot;&amp;SenaAI.getHintCount</param>
</action>
<action id="-9" name="Set value" sid="623599131030475" type="System">
<param id="0" name="Variable">isTimeUp</param>
<param id="1" name="Value">0</param>
</action>
<action behavior="Pin" id="0" name="Pin to object" sid="210783341114782" type="txt_question">
<param id="0" name="Pin to">panel</param>
<param id="1" name="Mode">0</param>
</action>
<action behavior="Pin" id="0" name="Pin to object" sid="636254900159958" type="txt_TextTimer">
<param id="0" name="Pin to">SenaaiKhoi</param>
<param id="1" name="Mode">0</param>
</action>
<action id="0" name="Set text" sid="808593987399542" type="txt_question">
<param id="0" name="Text">SenaAI.getQuestionValue</param>
</action>
<action id="-10" name="Set value" sid="756761854102448" type="btn_Pause">
<param id="0" name="Instance variable">originX</param>
<param id="1" name="Value">Self.X</param>
</action>
<action id="-10" name="Set value" sid="843231659647898" type="btn_Pause">
<param id="0" name="Instance variable">originY</param>
<param id="1" name="Value">Self.Y</param>
</action>
<action id="-3" name="Set position" sid="429067541495196" type="btn_Pause">
<param id="0" name="X">btn_setting.X</param>
<param id="1" name="Y">btn_setting.Y</param>
</action>
<action id="-10" name="Set value" sid="312955471850139" type="btn_music">
<param id="0" name="Instance variable">originX</param>
<param id="1" name="Value">Self.X</param>
</action>
<action id="-10" name="Set value" sid="725880314927928" type="btn_music">
<param id="0" name="Instance variable">originY</param>
<param id="1" name="Value">Self.Y</param>
</action>
<action id="-3" name="Set position" sid="588637745430653" type="btn_music">
<param id="0" name="X">btn_setting.X</param>
<param id="1" name="Y">btn_setting.Y</param>
</action>
<action id="10" name="Load image from URL" sid="679165227027517" type="IMG">
<param id="0" name="URI">SenaAI.getQuestionImage</param>
<param id="1" name="Size">1</param>
<param id="2" name="Cross-origin">0</param>
</action>
</actions>
<sub-events>
<event-block sid="822104816469346">
<conditions />
<actions />
<sub-events>
<event-block sid="922818724982241">
<conditions>
<condition id="-12" name="Repeat" sid="578727808501421" type="System">
<param id="0" name="Count">int( SenaAI.getHintCount )</param>
</condition>
</conditions>
<actions>
<action id="14" name="Log" sid="807666034483826" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;Hint &quot;&amp;loopindex&amp;&quot; : &quot;&amp;SenaAI.getHintType&amp;&quot; with value : &quot;&amp;SenaAI.getHintValue(loopindex)</param>
</action>
<action id="-3" name="Create object" sid="651771033828547" type="System">
<param id="0" name="Object to create">Slot</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">0</param>
<param id="3" name="Y">0</param>
</action>
<action id="-10" name="Set value" sid="704622762564719" type="Slot">
<param id="0" name="Instance variable">index</param>
<param id="1" name="Value">loopindex</param>
</action>
<action id="-10" name="Set value" sid="695187469527078" type="Slot">
<param id="0" name="Instance variable">word</param>
<param id="1" name="Value">SenaAI.getHintValue(loopindex)</param>
</action>
</actions>
<sub-events>
<event-block sid="604960297620975">
<conditions>
<condition id="-8" name="Compare two values" sid="844495449650107" type="System">
<param id="0" name="First value">SenaAI.getHintValue(loopindex)</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Second value">&quot;_&quot;</param>
</condition>
</conditions>
<actions>
<action id="-13" name="Set boolean" sid="823022840733889" type="Slot">
<param id="0" name="Instance variable">locked</param>
<param id="1" name="Value">1</param>
</action>
<action id="-3" name="Create object" sid="958284889834122" type="System">
<param id="0" name="Object to create">txt_Slot</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">Slot.X</param>
<param id="3" name="Y">Slot.Y</param>
</action>
<action behavior="Pin" id="0" name="Pin to object" sid="825467296870188" type="txt_Slot">
<param id="0" name="Pin to">Slot</param>
<param id="1" name="Mode">0</param>
</action>
<action id="0" name="Set text" sid="803189241402852" type="txt_Slot">
<param id="0" name="Text">Slot.word</param>
</action>
<action id="5" name="Set frame" sid="856529103233458" type="Slot">
<param id="0" name="Frame number">1</param>
</action>
<action id="-5" name="Set width" sid="785587981903003" type="Slot">
<param id="0" name="Width">txt_Slot.TextWidth + 40</param>
</action>
<action id="35" name="Set Object Width" sid="305159202206615" type="SenaAI">
<param id="0" name="Index">loopindex</param>
<param id="1" name="Width">Slot.Width</param>
</action>
<action id="-9" name="Destroy" sid="247694523519901" type="txt_Slot" />
<action id="-9" name="Destroy" sid="469126797493941" type="Slot" />
</actions>
</event-block>
<event-block sid="785602319872296">
<conditions>
<condition id="-22" name="Else" sid="563695588455666" type="System" />
</conditions>
<actions>
<action id="-13" name="Set boolean" sid="921480770631311" type="Slot">
<param id="0" name="Instance variable">locked</param>
<param id="1" name="Value">0</param>
</action>
<action id="5" name="Set frame" sid="666455255522669" type="Slot">
<param id="0" name="Frame number">0</param>
</action>
<action id="35" name="Set Object Width" sid="890029307940799" type="SenaAI">
<param id="0" name="Index">loopindex</param>
<param id="1" name="Width">Slot.Width</param>
</action>
<action id="-9" name="Destroy" sid="284415432774208" type="Slot" />
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="920731157755918">
<conditions />
<actions>
<action id="12" name="Calculate Object Positions" sid="643973518572382" type="SenaAI">
<param id="0" name="Count">int( SenaAI.getHintCount )</param>
<param id="1" name="Object Width">0</param>
<param id="2" name="Margin">5</param>
<param id="3" name="Max Width">1200</param>
<param id="4" name="Row Break">0</param>
<param id="5" name="Row Gap">100</param>
<param id="6" name="Type">&quot;slot&quot;</param>
<param id="7" name="Group Gap">0</param>
</action>
</actions>
</event-block>
<event-block sid="441467613146144">
<conditions>
<condition id="-12" name="Repeat" sid="218190693390519" type="System">
<param id="0" name="Count">int( SenaAI.getOptionsCount )</param>
</condition>
</conditions>
<actions>
<action id="-3" name="Create object" sid="722355474670048" type="System">
<param id="0" name="Object to create">btn_WordItem</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">0</param>
<param id="3" name="Y">0</param>
</action>
<action id="-10" name="Set value" sid="811282502817081" type="btn_WordItem">
<param id="0" name="Instance variable">text</param>
<param id="1" name="Value">SenaAI.getOptionsValue(loopindex)</param>
</action>
<action id="-3" name="Create object" sid="820542104698850" type="System">
<param id="0" name="Object to create">txt_WordItem</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">btn_WordItem.X</param>
<param id="3" name="Y">btn_WordItem.Y</param>
</action>
<action behavior="Pin" id="0" name="Pin to object" sid="165265909130423" type="txt_WordItem">
<param id="0" name="Pin to">btn_WordItem</param>
<param id="1" name="Mode">0</param>
</action>
<action id="0" name="Set text" sid="752256115955919" type="txt_WordItem">
<param id="0" name="Text">btn_WordItem.text</param>
</action>
<action id="-5" name="Set width" sid="155561272720672" type="btn_WordItem">
<param id="0" name="Width">txt_WordItem.TextWidth + 40</param>
</action>
<action id="35" name="Set Object Width" sid="692927617920425" type="SenaAI">
<param id="0" name="Index">loopindex</param>
<param id="1" name="Width">btn_WordItem.Width</param>
</action>
<action id="-9" name="Destroy" sid="864841283022193" type="txt_WordItem" />
<action id="-9" name="Destroy" sid="576092429841287" type="btn_WordItem" />
</actions>
</event-block>
<event-block sid="848165074712850">
<conditions />
<actions>
<action id="12" name="Calculate Object Positions" sid="737719939649407" type="SenaAI">
<param id="0" name="Count">int( SenaAI.getOptionsCount )</param>
<param id="1" name="Object Width">0</param>
<param id="2" name="Margin">5</param>
<param id="3" name="Max Width">1200</param>
<param id="4" name="Row Break">0</param>
<param id="5" name="Row Gap">100</param>
<param id="6" name="Type">&quot;word&quot;</param>
<param id="7" name="Group Gap">0</param>
</action>
<action id="-2" name="Set Y" sid="256704970269789" type="btn_check">
<param id="0" name="Y">SenaAI.getPosYbyIndex(0) + 740</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
<event-block sid="997314674077454">
<conditions>
<condition id="9" name="On Word Layout Finished" sid="556163418608689" type="SenaAI" />
</conditions>
<actions />
<sub-events>
<event-block sid="355153915147616">
<conditions>
<condition id="-12" name="Repeat" sid="479740563968203" type="System">
<param id="0" name="Count">int( SenaAI.getOptionsCount )</param>
</condition>
</conditions>
<actions>
<action id="14" name="Log" sid="689103076681826" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;Options &quot;&amp;loopindex&amp;&quot; : &quot;&amp;SenaAI.getOptionsType&amp;&quot; with value : &quot;&amp;SenaAI.getOptionsValue(loopindex)</param>
</action>
<action id="-3" name="Create object" sid="536021616792282" type="System">
<param id="0" name="Object to create">btn_WordItem</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">SenaAI.getPosXbyIndex(loopindex)</param>
<param id="3" name="Y">SenaAI.getPosYbyIndex(loopindex) + 720</param>
</action>
<action id="-10" name="Set value" sid="491204402301957" type="btn_WordItem">
<param id="0" name="Instance variable">num</param>
<param id="1" name="Value">loopindex</param>
</action>
<action id="-10" name="Set value" sid="925119020627679" type="btn_WordItem">
<param id="0" name="Instance variable">text</param>
<param id="1" name="Value">SenaAI.getOptionsValue(loopindex)</param>
</action>
<action id="-10" name="Set value" sid="279026344200979" type="btn_WordItem">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Value">-1</param>
</action>
<action id="-10" name="Set value" sid="641677468774405" type="btn_WordItem">
<param id="0" name="Instance variable">originX</param>
<param id="1" name="Value">Self.X</param>
</action>
<action id="-10" name="Set value" sid="774280661547726" type="btn_WordItem">
<param id="0" name="Instance variable">originY</param>
<param id="1" name="Value">Self.Y</param>
</action>
<action id="35" name="Set Object Width" sid="103271143582978" type="SenaAI">
<param id="0" name="Index">loopindex</param>
<param id="1" name="Width">btn_WordItem.Width</param>
</action>
<action id="-3" name="Create object" sid="100725827513558" type="System">
<param id="0" name="Object to create">txt_WordItem</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">btn_WordItem.X</param>
<param id="3" name="Y">btn_WordItem.Y</param>
</action>
<action behavior="Pin" id="0" name="Pin to object" sid="505562954529213" type="txt_WordItem">
<param id="0" name="Pin to">btn_WordItem</param>
<param id="1" name="Mode">0</param>
</action>
<action id="0" name="Set text" sid="391419035005796" type="txt_WordItem">
<param id="0" name="Text">btn_WordItem.text</param>
</action>
<action id="-5" name="Set width" sid="860988481953726" type="btn_WordItem">
<param id="0" name="Width">txt_WordItem.TextWidth + 40</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="388616216124882">
<conditions>
<condition id="10" name="On Slot Layout Finished" sid="873344899497889" type="SenaAI" />
</conditions>
<actions />
<sub-events>
<event-block sid="227594386821892">
<conditions>
<condition id="-12" name="Repeat" sid="788089564561534" type="System">
<param id="0" name="Count">int( SenaAI.getHintCount )</param>
</condition>
</conditions>
<actions>
<action id="14" name="Log" sid="538515159765835" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;Hint &quot;&amp;loopindex&amp;&quot; : &quot;&amp;SenaAI.getHintType&amp;&quot; with value : &quot;&amp;SenaAI.getHintValue(loopindex)</param>
</action>
<action id="-3" name="Create object" sid="917423513497860" type="System">
<param id="0" name="Object to create">Slot</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">SenaAI.getPosXbyIndex(loopindex)</param>
<param id="3" name="Y">SenaAI.getPosYbyIndex(loopindex) + 700</param>
</action>
<action id="-10" name="Set value" sid="885155242519331" type="Slot">
<param id="0" name="Instance variable">index</param>
<param id="1" name="Value">loopindex</param>
</action>
<action id="-10" name="Set value" sid="170311315024008" type="Slot">
<param id="0" name="Instance variable">word</param>
<param id="1" name="Value">SenaAI.getHintValue(loopindex)</param>
</action>
</actions>
<sub-events>
<event-block sid="932083303817316">
<conditions>
<condition id="-8" name="Compare two values" sid="832596978727902" type="System">
<param id="0" name="First value">SenaAI.getHintValue(loopindex)</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Second value">&quot;_&quot;</param>
</condition>
</conditions>
<actions>
<action id="-13" name="Set boolean" sid="674435878930204" type="Slot">
<param id="0" name="Instance variable">locked</param>
<param id="1" name="Value">1</param>
</action>
<action id="-3" name="Create object" sid="598659803385515" type="System">
<param id="0" name="Object to create">txt_Slot</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">Slot.X</param>
<param id="3" name="Y">Slot.Y</param>
</action>
<action behavior="Pin" id="0" name="Pin to object" sid="988991898604501" type="txt_Slot">
<param id="0" name="Pin to">Slot</param>
<param id="1" name="Mode">0</param>
</action>
<action id="0" name="Set text" sid="972496488135703" type="txt_Slot">
<param id="0" name="Text">Slot.word</param>
</action>
<action id="5" name="Set frame" sid="151981119976494" type="Slot">
<param id="0" name="Frame number">1</param>
</action>
<action id="-5" name="Set width" sid="854754102590480" type="Slot">
<param id="0" name="Width">txt_Slot.TextWidth + 40</param>
</action>
<action id="35" name="Set Object Width" sid="475492564317210" type="SenaAI">
<param id="0" name="Index">loopindex</param>
<param id="1" name="Width">Slot.Width</param>
</action>
</actions>
</event-block>
<event-block sid="253535619821753">
<conditions>
<condition id="-22" name="Else" sid="596843830651572" type="System" />
</conditions>
<actions>
<action id="-13" name="Set boolean" sid="474962435503345" type="Slot">
<param id="0" name="Instance variable">locked</param>
<param id="1" name="Value">0</param>
</action>
<action id="5" name="Set frame" sid="463298175284581" type="Slot">
<param id="0" name="Frame number">0</param>
</action>
<action id="35" name="Set Object Width" sid="380730123367630" type="SenaAI">
<param id="0" name="Index">loopindex</param>
<param id="1" name="Width">Slot.Width</param>
</action>
<action id="-10" name="Add to" sid="125836199326093" type="System">
<param id="0" name="Variable">end</param>
<param id="1" name="Value">1</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
<event-block sid="137496831767080">
<conditions>
<condition id="36" name="On Slot Layout Finished 2" sid="346135299892592" type="SenaAI" />
</conditions>
<actions />
<sub-events>
<event-block sid="916974100288240">
<conditions>
<condition id="-11" name="For Each" sid="543455768136315" type="System">
<param id="0" name="Object">Slot</param>
</condition>
</conditions>
<actions>
<action id="-3" name="Set position" sid="417809743337938" type="Slot">
<param id="0" name="X">SenaAI.getPosXbyIndex(loopindex)</param>
<param id="1" name="Y">SenaAI.getPosYbyIndex(loopindex) + 700</param>
</action>
</actions>
<sub-events>
<event-block sid="879941464486947">
<conditions>
<condition id="-33" name="Pick by comparison" sid="417542307709594" type="System">
<param id="0" name="Object">btn_WordItem</param>
<param id="1" name="Expression">btn_WordItem.slotIndex</param>
<param id="2" name="Comparison">0</param>
<param id="3" name="Value">Slot.index</param>
</condition>
</conditions>
<actions>
<action behavior="MoveTo" disabled="1" id="1" name="Set maximum speed" sid="966187321359498" type="btn_WordItem">
<param id="0" name="Max speed">350</param>
</action>
<action behavior="MoveTo" disabled="1" id="4" name="Move to XY" sid="282578636460119" type="btn_WordItem">
<param id="0" name="X">Slot.X</param>
<param id="1" name="Y">Slot.Y</param>
</action>
<action id="-3" name="Set position" sid="848187759165276" type="btn_WordItem">
<param id="0" name="X">Slot.X</param>
<param id="1" name="Y">Slot.Y</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
<event-block sid="763597622682356">
<conditions>
<condition id="3" name="On touched object" sid="148754164973502" type="Touch">
<param id="0" name="Object">btn_check</param>
</condition>
<condition id="-9" name="Is visible" sid="378361995735280" type="btn_check" />
<condition id="-14" name="Compare variable" sid="162773589948112" type="System">
<param id="0" name="Variable">Paused</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">0</param>
</condition>
</conditions>
<actions>
<action id="0" name="Play" sid="875006900842783" type="Audio">
<param id="0" name="Audio file">click</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="9" name="Pause Game" sid="517084261342335" type="SenaAI" />
<action behavior="DragDrop" id="0" name="Set enabled" sid="352636312980555" type="btn_WordItem">
<param id="0" name="State">0</param>
</action>
<action id="-9" name="Set value" sid="898398251674971" type="System">
<param id="0" name="Variable">answer</param>
<param id="1" name="Value">&quot;&quot;</param>
</action>
<action id="0" name="Call function" sid="883647667738561" type="Function">
<param id="0" name="Name">&quot;currentAnswer&quot;</param>
<param id="1" name="Parameter {n}"></param>
</action>
<action id="-16" name="Wait" sid="512432222163791" type="System">
<param id="0" name="Seconds">3</param>
</action>
</actions>
</event-block>
<event-block sid="136988596360100">
<conditions>
<condition id="3" name="On Correct Answer" sid="156300277320938" type="SenaAI" />
</conditions>
<actions>
<action id="0" name="Play" sid="852018787691909" type="Audio">
<param id="0" name="Audio file">correct</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="-3" name="Create object" sid="875693788454205" type="System">
<param id="0" name="Object to create">checker_wrong_correct</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">btn_check.X</param>
<param id="3" name="Y">btn_check.Y</param>
</action>
<action id="5" name="Set frame" sid="839154739990506" type="checker_wrong_correct">
<param id="0" name="Frame number">0</param>
</action>
</actions>
</event-block>
<event-block sid="488252630180568">
<conditions>
<condition id="2" name="On Wrong Answer" sid="126590912667103" type="SenaAI" />
</conditions>
<actions>
<action id="0" name="Play" sid="979948713775875" type="Audio">
<param id="0" name="Audio file">error-010-206498</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="-3" name="Create object" sid="747791078913276" type="System">
<param id="0" name="Object to create">checker_wrong_correct</param>
<param id="1" name="Layer">1</param>
<param id="2" name="X">btn_check.X</param>
<param id="3" name="Y">btn_check.Y</param>
</action>
<action id="5" name="Set frame" sid="616147821154826" type="checker_wrong_correct">
<param id="0" name="Frame number">1</param>
</action>
</actions>
</event-block>
<event-block sid="661948158679917">
<conditions>
<condition id="3" name="On touched object" sid="505083980566323" type="Touch">
<param id="0" name="Object">pause</param>
</condition>
</conditions>
<actions>
<action id="9" name="Pause Game" sid="221115629617334" type="SenaAI" />
</actions>
</event-block>
<event-block sid="871816213339027">
<conditions>
<condition id="3" name="On touched object" sid="203945147432710" type="Touch">
<param id="0" name="Object">resume</param>
</condition>
</conditions>
<actions>
<action id="10" name="Resume Game" sid="299687746228930" type="SenaAI" />
</actions>
</event-block>
<event-block sid="317150235088713">
<conditions>
<condition id="4" name="On Game Paused" sid="191847409940776" type="SenaAI" />
</conditions>
<actions>
<action id="-9" name="Set value" sid="610917235070761" type="System">
<param id="0" name="Variable">Paused</param>
<param id="1" name="Value">1</param>
</action>
</actions>
</event-block>
<event-block sid="274698478784687">
<conditions>
<condition id="5" name="On Game Resumed" sid="882196292313245" type="SenaAI" />
</conditions>
<actions>
<action id="-9" name="Set value" sid="511887800092603" type="System">
<param id="0" name="Variable">Paused</param>
<param id="1" name="Value">0</param>
</action>
</actions>
</event-block>
<event-block disabled="1" sid="195066173189518">
<conditions>
<condition id="-1" name="Every tick" sid="290390615201190" type="System" />
</conditions>
<actions />
<sub-events>
<event-block disabled="1" sid="360442996781782">
<conditions>
<condition id="-8" name="Compare two values" sid="548786409907532" type="System">
<param id="0" name="First value">SenaAI.getTimeLimit</param>
<param id="1" name="Comparison">4</param>
<param id="2" name="Second value">0</param>
</condition>
</conditions>
<actions>
<action id="-9" name="Set value" sid="188457301435729" type="System">
<param id="0" name="Variable">timeLeft</param>
<param id="1" name="Value">max(0, SenaAI.getTimeLimit - SenaAI.getElapsedTime)</param>
</action>
<action id="0" name="Set text" sid="186957390014795" type="txt_TextTimer">
<param id="0" name="Text">int(timeLeft)</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block disabled="1" sid="294529570370137">
<conditions>
<condition id="-1" name="Every tick" sid="737378517361957" type="System" />
</conditions>
<actions />
<sub-events>
<event-block disabled="1" sid="554738329309418">
<conditions>
<condition id="-8" name="Compare two values" sid="716392425028141" type="System">
<param id="0" name="First value">SenaAI.getElapsedTime</param>
<param id="1" name="Comparison">4</param>
<param id="2" name="Second value">SenaAI.getTimeLimit</param>
</condition>
<condition id="-14" name="Compare variable" sid="780183147912832" type="System">
<param id="0" name="Variable">isTimeUp</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">0</param>
</condition>
<condition id="-4" name="Trigger once while true" sid="525077339862079" type="System" />
</conditions>
<actions>
<action id="-9" name="Set value" sid="143657325576872" type="System">
<param id="0" name="Variable">isTimeUp</param>
<param id="1" name="Value">1</param>
</action>
<action behavior="DragDrop" id="0" name="Set enabled" sid="816065893034813" type="btn_WordItem">
<param id="0" name="State">0</param>
</action>
<action id="-9" name="Destroy" sid="965564233186280" type="txt_WordItem" />
<action behavior="Fade" id="1" name="Start fade" sid="532407797948589" type="btn_WordItem" />
<action id="-16" name="Wait" sid="127771899136112" type="System">
<param id="0" name="Seconds">1.0</param>
</action>
<action behavior="Fade" id="1" name="Start fade" sid="840135179749270" type="Slot" />
<action id="-9" name="Destroy" sid="280448711318062" type="btn_WordItem" />
<action id="-9" name="Destroy" sid="860486584174303" type="txt_Slot" />
<action id="2" name="Finish" sid="722573403513740" type="SenaAI">
<param id="0" name="Answer">answer</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="681702081983565">
<conditions>
<condition id="0" name="On function" sid="298041374468676" type="Function">
<param id="0" name="Name">&quot;currentAnswer&quot;</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="137994023265162">
<conditions>
<condition id="-10" name="For" sid="555590637488718" type="System">
<param id="0" name="Name">&quot;i&quot;</param>
<param id="1" name="Start index">0</param>
<param id="2" name="End index">int( SenaAI.getHintCount ) - 1</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="985822966767783">
<conditions>
<condition id="-33" name="Pick by comparison" sid="624232920295487" type="System">
<param id="0" name="Object">Slot</param>
<param id="1" name="Expression">Slot.index</param>
<param id="2" name="Comparison">0</param>
<param id="3" name="Value">loopindex</param>
</condition>
</conditions>
<actions>
<action id="-9" name="Set value" sid="857204506251739" type="System">
<param id="0" name="Variable">answer</param>
<param id="1" name="Value">answer &amp; Slot.word &amp; &quot;|&quot;</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="940103363702696">
<conditions />
<actions>
<action id="-9" name="Set value" sid="562027140905701" type="System">
<param id="0" name="Variable">answer</param>
<param id="1" name="Value">left(answer, len(answer) - 1)</param>
</action>
<action id="2" name="Finish" sid="169098649828276" type="SenaAI">
<param id="0" name="Answer">answer </param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="727817921462789">
<conditions>
<condition id="3" name="On touched object" sid="108505438464022" type="Touch">
<param id="0" name="Object">btn_setting</param>
</condition>
<condition id="-9" name="Layer is visible" sid="610596175587088" type="System">
<param id="0" name="Layer">1</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="235491499504531">
<conditions>
<condition id="-2" name="Compare Y" sid="155448615733244" type="btn_music">
<param id="0" name="Comparison">0</param>
<param id="1" name="Y co-ordinate">btn_setting.Y</param>
</condition>
</conditions>
<actions>
<action id="0" name="Play" sid="294820226005928" type="Audio">
<param id="0" name="Audio file">click</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action behavior="MoveTo" id="4" name="Move to XY" sid="755380023179324" type="btn_Pause">
<param id="0" name="X">btn_Pause.originX</param>
<param id="1" name="Y">btn_Pause.originY</param>
</action>
<action behavior="MoveTo" id="4" name="Move to XY" sid="901484735891669" type="btn_music">
<param id="0" name="X">btn_music.originX</param>
<param id="1" name="Y">btn_music.originY</param>
</action>
</actions>
</event-block>
<event-block sid="101845070576145">
<conditions>
<condition id="-2" name="Compare Y" sid="252338104312800" type="btn_music">
<param id="0" name="Comparison">0</param>
<param id="1" name="Y co-ordinate">btn_music.originY</param>
</condition>
</conditions>
<actions>
<action id="0" name="Play" sid="302680351912155" type="Audio">
<param id="0" name="Audio file">click</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action behavior="MoveTo" id="6" name="Move to object" sid="478407850108954" type="btn_Pause">
<param id="0" name="Target">btn_setting</param>
</action>
<action behavior="MoveTo" id="6" name="Move to object" sid="149592764052604" type="btn_music">
<param id="0" name="Target">btn_setting</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="425688163884150">
<conditions>
<condition id="3" name="On touched object" sid="234631560209387" type="Touch">
<param id="0" name="Object">btn_music</param>
</condition>
<condition id="-2" name="Compare Y" sid="226854573439244" type="btn_music">
<param id="0" name="Comparison">0</param>
<param id="1" name="Y co-ordinate">btn_music.originY</param>
</condition>
</conditions>
<actions>
<action id="0" name="Play" sid="673559809421156" type="Audio">
<param id="0" name="Audio file">click</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
</actions>
<sub-events>
<event-block sid="289041913893922">
<conditions>
<condition id="3" name="Compare frame" sid="987327175843166" type="btn_music">
<param id="0" name="Comparison">0</param>
<param id="1" name="Number">0</param>
</condition>
</conditions>
<actions>
<action id="5" name="Set frame" sid="527221309063653" type="btn_music">
<param id="0" name="Frame number">1</param>
</action>
<action id="8" name="Set silent" sid="512396695148483" type="Audio">
<param id="0" name="Mode">0</param>
</action>
</actions>
</event-block>
<event-block sid="723297863178989">
<conditions>
<condition id="-22" name="Else" sid="442294654095608" type="System" />
</conditions>
<actions>
<action id="5" name="Set frame" sid="889768403943904" type="btn_music">
<param id="0" name="Frame number">0</param>
</action>
<action id="8" name="Set silent" sid="575251195374348" type="Audio">
<param id="0" name="Mode">1</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="797604063574455">
<conditions>
<condition id="3" name="On touched object" sid="435979848233842" type="Touch">
<param id="0" name="Object">btn_Pause</param>
</condition>
<condition id="-2" name="Compare Y" sid="428645173671679" type="btn_Pause">
<param id="0" name="Comparison">0</param>
<param id="1" name="Y co-ordinate">btn_Pause.originY</param>
</condition>
</conditions>
<actions>
<action id="0" name="Play" sid="278201420832843" type="Audio">
<param id="0" name="Audio file">click</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="9" name="Pause Game" sid="293121306154050" type="SenaAI" />
<action behavior="MoveTo" id="6" name="Move to object" sid="361279997459133" type="btn_Pause">
<param id="0" name="Target">btn_setting</param>
</action>
<action behavior="MoveTo" id="6" name="Move to object" sid="775451581878906" type="btn_music">
<param id="0" name="Target">btn_setting</param>
</action>
<action id="-16" name="Wait" sid="443896622001002" type="System">
<param id="0" name="Seconds">0.5</param>
</action>
<action id="-4" name="Set layer visible" sid="958274146221115" type="System">
<param id="0" name="Layer">1</param>
<param id="1" name="Visibility">0</param>
</action>
<action id="-4" name="Set layer visible" sid="350999554669409" type="System">
<param id="0" name="Layer">2</param>
<param id="1" name="Visibility">1</param>
</action>
</actions>
</event-block>
<event-block sid="784412967489758">
<conditions>
<condition id="3" name="On touched object" sid="357044148333403" type="Touch">
<param id="0" name="Object">Layer</param>
</condition>
<condition id="-9" name="Layer is visible" sid="279540051091502" type="System">
<param id="0" name="Layer">2</param>
</condition>
</conditions>
<actions>
<action id="0" name="Play" sid="816121502780137" type="Audio">
<param id="0" name="Audio file">click</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="10" name="Resume Game" sid="724669397859175" type="SenaAI" />
<action id="-4" name="Set layer visible" sid="929561454791375" type="System">
<param id="0" name="Layer">1</param>
<param id="1" name="Visibility">1</param>
</action>
<action id="-4" name="Set layer visible" sid="645435946734615" type="System">
<param id="0" name="Layer">2</param>
<param id="1" name="Visibility">0</param>
</action>
</actions>
</event-block>
<event-block disabled="1" sid="519127728010123">
<conditions>
<condition id="3" name="On touched object" sid="239336371251901" type="Touch">
<param id="0" name="Object">Family2</param>
</condition>
</conditions>
<actions>
<action id="0" name="Play" sid="851922756460513" type="Audio">
<param id="0" name="Audio file">click</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
</actions>
</event-block>
</events>
</c2eventsheet>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2uistate>
<!--This is a UI state file - its content describes the user interface settings when the event sheet was last open.
It is entirely optional and the project will load without it. If you are placing the project under source control,
you probably do not want to add any .uistate.xml files to the repository.-->
<show-addaction-links>1</show-addaction-links>
<scroll-pos>0</scroll-pos>
<conditions-column>419</conditions-column>
<actions-namecolumn>21</actions-namecolumn>
<condition-namecolumns>
<nest>32</nest>
<nest>18</nest>
</condition-namecolumns>
<events />
</c2uistate>

View File

@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2eventsheet>
<!--All the 'name' attributes are ignored by Construct 2 - they are there for readability only.-->
<name>move</name>
<events>
<event-block sid="247537098385321">
<conditions>
<condition id="8" name="On Message" sid="357653839729988" type="SenaAI" />
</conditions>
<actions>
<action id="60" name="LoadJSON" sid="481034101118882" type="JSON">
<param id="0" name="JSON">SenaAI.getLastMessageJSON</param>
<param id="1" name="Reference point">0</param>
<param id="2" name="Key {n}"></param>
</action>
<action id="-16" name="Wait" sid="923787823234004" type="System">
<param id="0" name="Seconds">0.0001</param>
</action>
</actions>
<sub-events>
<event-block sid="501329491159206">
<conditions>
<condition id="-33" name="Pick by comparison" sid="329723730163277" type="System">
<param id="0" name="Object">btn_WordItem</param>
<param id="1" name="Expression">btn_WordItem.text</param>
<param id="2" name="Comparison">0</param>
<param id="3" name="Value">str(JSON.Value(0, &quot;data1&quot;))</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="373485886439115">
<conditions>
<condition id="-33" name="Pick by comparison" sid="667505268608524" type="System">
<param id="0" name="Object">Slot</param>
<param id="1" name="Expression">int(JSON.Value(0, &quot;data2&quot;))</param>
<param id="2" name="Comparison">0</param>
<param id="3" name="Value">Slot.index</param>
</condition>
</conditions>
<actions>
<action behavior="MoveTo" id="6" name="Move to object" sid="724531557833079" type="btn_WordItem">
<param id="0" name="Target">Slot</param>
</action>
</actions>
</event-block>
<event-block sid="176622797861199">
<conditions>
<condition id="-22" name="Else" sid="494998059713904" type="System" />
<condition id="-33" name="Pick by comparison" sid="646024827473206" type="System">
<param id="0" name="Object">btn_WordItem</param>
<param id="1" name="Expression">btn_WordItem.text</param>
<param id="2" name="Comparison">0</param>
<param id="3" name="Value">str(JSON.Value(0, &quot;data1&quot;))</param>
</condition>
</conditions>
<actions>
<action behavior="MoveTo" id="4" name="Move to XY" sid="116962450760903" type="btn_WordItem">
<param id="0" name="X">Self.originX</param>
<param id="1" name="Y">Self.originY</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="393296075303458">
<conditions>
<condition id="-8" name="Compare two values" sid="423617115709335" type="System">
<param id="0" name="First value">int(JSON.Value(0, &quot;data3&quot;))</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Second value">1</param>
</condition>
<condition id="-9" name="Is visible" sid="344349834250107" type="btn_check" />
</conditions>
<actions>
<action id="0" name="Play" sid="886430907172802" type="Audio">
<param id="0" name="Audio file">click</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-2</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="9" name="Pause Game" sid="435408274602653" type="SenaAI" />
<action behavior="DragDrop" id="0" name="Set enabled" sid="291762055141813" type="btn_WordItem">
<param id="0" name="State">0</param>
</action>
<action id="-9" name="Set value" sid="960430821480250" type="System">
<param id="0" name="Variable">answer</param>
<param id="1" name="Value">&quot;&quot;</param>
</action>
<action id="0" name="Call function" sid="411309036756794" type="Function">
<param id="0" name="Name">&quot;currentAnswer&quot;</param>
<param id="1" name="Parameter {n}"></param>
</action>
<action id="-16" name="Wait" sid="928569719414780" type="System">
<param id="0" name="Seconds">3</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
</events>
</c2eventsheet>

BIN
source/Test/Files/click.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1 @@
// hé lô quơ

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2uistate>
<!--This is a UI state file - its content describes the user interface settings when the layout was last open.
It is entirely optional and the project will load without it. If you are placing the project under source control,
you probably do not want to add any .uistate.xml files to the repository.-->
<camera>
<position-x>600</position-x>
<position-y>600</position-y>
<position-z>473.742</position-z>
<lookat-x>600</lookat-x>
<lookat-y>600</lookat-y>
<lookat-z>0</lookat-z>
</camera>
<snap-to-grid>0</snap-to-grid>
<show-grid>0</show-grid>
<snap-width>32</snap-width>
<snap-height>32</snap-height>
<show-collision-polys>0</show-collision-polys>
<translucent-inactive-layers>0</translucent-inactive-layers>
<properties>
<property expanded="1" name="Layout properties" />
<property expanded="0" name="Layout Size" />
<property expanded="0" name="Margins" />
<property expanded="1" name="Effects" />
</properties>
<active-layer name="Main" />
<layers>
<layer locked="0" name="BG" parallax-in-editor="0" visible="1" />
<layer locked="0" name="Main" parallax-in-editor="0" visible="1" />
<layer locked="0" name="Pause" parallax-in-editor="0" visible="0" />
<layer locked="0" name="Logo" parallax-in-editor="0" visible="1" />
</layers>
</c2uistate>

View File

@@ -0,0 +1,908 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2layout>
<name>Layout 1</name>
<sid>148229480160171</sid>
<event-sheet>Event sheet 1</event-sheet>
<size>
<width>1200</width>
<height>1200</height>
</size>
<margins>
<horizontal>500</horizontal>
<vertical>500</vertical>
</margins>
<unbounded-scrolling>0</unbounded-scrolling>
<layers>
<layer name="BG" sid="977906834634586">
<initially-visible>1</initially-visible>
<background-color>255,255,255</background-color>
<transparent>1</transparent>
<parallax>
<x>1</x>
<y>1</y>
</parallax>
<zoom-rate>1</zoom-rate>
<opacity>1</opacity>
<force-own-texture>0</force-own-texture>
<global>0</global>
<use-render-cells>0</use-render-cells>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<instances />
<effects />
</layer>
<layer name="Main" sid="715835324311419">
<initially-visible>1</initially-visible>
<background-color>255,255,255</background-color>
<transparent>1</transparent>
<parallax>
<x>0</x>
<y>0</y>
</parallax>
<zoom-rate>1</zoom-rate>
<opacity>1</opacity>
<force-own-texture>0</force-own-texture>
<global>0</global>
<use-render-cells>0</use-render-cells>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<instances>
<instance type="btn_check" uid="2">
<properties>
<initial-visibility>Invisible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>600</x>
<y>-1099.549194336</y>
<z>0</z>
<width>163.344848633</width>
<height>106.17414856</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.501538455</hotspotY>
<angle>0</angle>
<opacity>0.790000021</opacity>
</world>
</instance>
<instance type="pause" uid="5">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>314</x>
<y>-701</y>
<z>0</z>
<width>58</width>
<height>49</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="resume" uid="6">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>313</x>
<y>-632</y>
<z>0</z>
<width>58.326667786</width>
<height>58.326667786</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="Slot" uid="7">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<instance-variables>
<index>0</index>
<word></word>
<locked>false</locked>
</instance-variables>
<behavior-instances>
<behavior-instance type="Fade">
<properties>
<active-at-start>No</active-at-start>
<fade-in-time>0</fade-in-time>
<wait-time>0</wait-time>
<fade-out-time>2</fade-out-time>
<destroy>After fade out</destroy>
</properties>
</behavior-instance>
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>678</x>
<y>-828</y>
<z>0</z>
<width>200</width>
<height>85</height>
<depth>0</depth>
<hotspotX>0.504999995</hotspotX>
<hotspotY>0.423529416</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="btn_WordItem" uid="8">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<instance-variables>
<num>0</num>
<text></text>
<originX>0</originX>
<originY>0</originY>
<slotIndex>-1</slotIndex>
<dist>0</dist>
</instance-variables>
<behavior-instances>
<behavior-instance type="DragDrop">
<properties>
<axes>Both</axes>
<initial-state>Enabled</initial-state>
</properties>
</behavior-instance>
<behavior-instance type="Fade">
<properties>
<active-at-start>No</active-at-start>
<fade-in-time>0</fade-in-time>
<wait-time>0</wait-time>
<fade-out-time>2</fade-out-time>
<destroy>After fade out</destroy>
</properties>
</behavior-instance>
<behavior-instance type="MoveTo">
<properties>
<activated>Yes</activated>
<max-speed>1200</max-speed>
<acceleration>0</acceleration>
<deceleration>0</deceleration>
</properties>
</behavior-instance>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>-104</x>
<y>-1030</y>
<z>0</z>
<width>200</width>
<height>85</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.411764711</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="txt_WordItem" uid="11">
<properties>
<character-width>73</character-width>
<character-height>91</character-height>
<character-set>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#&quot;&apos;&amp;()[]|`/@°+=*$£€&lt;&gt;%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ</character-set>
<text>W</text>
<scale>0.5</scale>
<initial-visibility>Visible</initial-visibility>
<horizontal-alignment>Center</horizontal-alignment>
<vertical-alignment>Center</vertical-alignment>
<hotspot>Center</hotspot>
<wrapping>Word</wrapping>
<character-spacing>0</character-spacing>
<line-height>0</line-height>
<char-width-json>{&quot;&quot;c2array&quot;&quot;:true,&quot;&quot;size&quot;&quot;:[2,40,1],&quot;&quot;data&quot;&quot;:[[[22],[11],[13],[14],[15],[19],[20],[21],[22],[23],[24],[26],[27],[28],[29],[30],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[49],[50],[51],[52],[53],[54],[55],[56],[58],[59],[61],[62],[71]],[[&quot;&quot; &quot;&quot;],[&quot;&quot;|&quot;&quot;],[&quot;&quot;:&quot;&quot;],[&quot;&quot;Iil.,;&apos;Ịị&quot;&quot;],[&quot;&quot;!&quot;&quot;],[&quot;&quot;Ỉỉ&quot;&quot;],[&quot;&quot;`ÍÌíì&quot;&quot;],[&quot;&quot;[]&quot;&quot;],[&quot;&quot;j()&quot;&quot;],[&quot;&quot;-&quot;&quot;],[&quot;&quot;/&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;1&quot;&quot;],[&quot;&quot;rĨĩ&quot;&quot;],[&quot;&quot;*&quot;&quot;],[&quot;&quot;f\&quot;&quot;&quot;&quot;],[&quot;&quot;Juz078úùụủũ&quot;&quot;],[&quot;&quot;hn3569$&quot;&quot;],[&quot;&quot;Faceks2+=&lt;&gt;áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ&quot;&quot;],[&quot;&quot;Ldgq&quot;&quot;],[&quot;&quot;bp4?~&quot;&quot;],[&quot;&quot;oy£€óòọỏõôồốộổỗýỳỵỷỹ&quot;&quot;],[&quot;&quot;EPvx#ÉÈẺẸẼÊỀẾỆỂỄ&quot;&quot;],[&quot;&quot;đ&quot;&quot;],[&quot;&quot;HNTU_ÚÙỤỦŨ&quot;&quot;],[&quot;&quot;SZ&quot;&quot;],[&quot;&quot;BD&quot;&quot;],[&quot;&quot;C&quot;&quot;],[&quot;&quot;KR&quot;&quot;],[&quot;&quot;VX&amp;ưừứựửữ&quot;&quot;],[&quot;&quot;GYÝỲỴỶỸơờớợởỡ&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;OÓÒỌỎÕÔỒỐỘỔỖ&quot;&quot;],[&quot;&quot;AÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ&quot;&quot;],[&quot;&quot;Q&quot;&quot;],[&quot;&quot;ƯỪỨỰỬỮ&quot;&quot;],[&quot;&quot;mw&quot;&quot;],[&quot;&quot;%&quot;&quot;],[&quot;&quot;ƠỜỚỢỞỠ&quot;&quot;],[&quot;&quot;W@&quot;&quot;]]]}</char-width-json>
<space-char-width>-1</space-char-width>
</properties>
<behavior-instances>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>-104</x>
<y>-1030</y>
<z>0</z>
<width>160.211120605</width>
<height>55.539886475</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="txt_Slot" uid="12">
<properties>
<character-width>73</character-width>
<character-height>91</character-height>
<character-set>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#&quot;&apos;&amp;()[]|`/@°+=*$£€&lt;&gt;%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ</character-set>
<text>Text</text>
<scale>0.5</scale>
<initial-visibility>Visible</initial-visibility>
<horizontal-alignment>Center</horizontal-alignment>
<vertical-alignment>Center</vertical-alignment>
<hotspot>Center</hotspot>
<wrapping>Word</wrapping>
<character-spacing>0</character-spacing>
<line-height>0</line-height>
<char-width-json>{&quot;&quot;c2array&quot;&quot;:true,&quot;&quot;size&quot;&quot;:[2,40,1],&quot;&quot;data&quot;&quot;:[[[22],[11],[13],[14],[15],[19],[20],[21],[22],[23],[24],[26],[27],[28],[29],[30],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[49],[50],[51],[52],[53],[54],[55],[56],[58],[59],[61],[62],[71]],[[&quot;&quot; &quot;&quot;],[&quot;&quot;|&quot;&quot;],[&quot;&quot;:&quot;&quot;],[&quot;&quot;Iil.,;&apos;Ịị&quot;&quot;],[&quot;&quot;!&quot;&quot;],[&quot;&quot;Ỉỉ&quot;&quot;],[&quot;&quot;`ÍÌíì&quot;&quot;],[&quot;&quot;[]&quot;&quot;],[&quot;&quot;j()&quot;&quot;],[&quot;&quot;-&quot;&quot;],[&quot;&quot;/&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;1&quot;&quot;],[&quot;&quot;rĨĩ&quot;&quot;],[&quot;&quot;*&quot;&quot;],[&quot;&quot;f\&quot;&quot;&quot;&quot;],[&quot;&quot;Juz078úùụủũ&quot;&quot;],[&quot;&quot;hn3569$&quot;&quot;],[&quot;&quot;Faceks2+=&lt;&gt;áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ&quot;&quot;],[&quot;&quot;Ldgq&quot;&quot;],[&quot;&quot;bp4?~&quot;&quot;],[&quot;&quot;oy£€óòọỏõôồốộổỗýỳỵỷỹ&quot;&quot;],[&quot;&quot;EPvx#ÉÈẺẸẼÊỀẾỆỂỄ&quot;&quot;],[&quot;&quot;đ&quot;&quot;],[&quot;&quot;HNTU_ÚÙỤỦŨ&quot;&quot;],[&quot;&quot;SZ&quot;&quot;],[&quot;&quot;BD&quot;&quot;],[&quot;&quot;C&quot;&quot;],[&quot;&quot;KR&quot;&quot;],[&quot;&quot;VX&amp;ưừứựửữ&quot;&quot;],[&quot;&quot;GYÝỲỴỶỸơờớợởỡ&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;OÓÒỌỎÕÔỒỐỘỔỖ&quot;&quot;],[&quot;&quot;AÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ&quot;&quot;],[&quot;&quot;Q&quot;&quot;],[&quot;&quot;ƯỪỨỰỬỮ&quot;&quot;],[&quot;&quot;mw&quot;&quot;],[&quot;&quot;%&quot;&quot;],[&quot;&quot;ƠỜỚỢỞỠ&quot;&quot;],[&quot;&quot;W@&quot;&quot;]]]}</char-width-json>
<space-char-width>-1</space-char-width>
</properties>
<behavior-instances>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>849</x>
<y>-693</y>
<z>0</z>
<width>160.210998535</width>
<height>55.540000916</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="SenaaiKhoi" uid="14">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>1113</x>
<y>-734</y>
<z>0</z>
<width>255.077911377</width>
<height>99.357879639</height>
<depth>0</depth>
<hotspotX>0.499563307</hotspotX>
<hotspotY>0.497757852</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="txt_TextTimer" uid="10">
<properties>
<character-width>76</character-width>
<character-height>83</character-height>
<character-set>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#&quot;&apos;&amp;()[]|`\/@°+=*$£€&lt;&gt;%</character-set>
<text>TIME</text>
<scale>0.7</scale>
<initial-visibility>Visible</initial-visibility>
<horizontal-alignment>Center</horizontal-alignment>
<vertical-alignment>Center</vertical-alignment>
<hotspot>Center</hotspot>
<wrapping>Word</wrapping>
<character-spacing>0</character-spacing>
<line-height>0</line-height>
<char-width-json>[[34,&quot; &quot;],[14,&quot;|&quot;],[16,&quot;il&quot;],[17,&quot;I.:&apos;&quot;],[18,&quot;;!&quot;],[19,&quot;,&quot;],[22,&quot;`&quot;],[24,&quot;)&quot;],[25,&quot;(\\/&quot;],[26,&quot;[&quot;],[27,&quot;j]&quot;],[28,&quot;-&quot;],[29,&quot;°&quot;],[32,&quot;t1&quot;],[33,&quot;\&quot;&quot;],[34,&quot;r&quot;],[35,&quot;f&quot;],[36,&quot;*&quot;],[39,&quot;s&quot;],[40,&quot;kx&quot;],[41,&quot;Jhnu&quot;],[42,&quot;v7?+=&lt;&gt;&quot;],[43,&quot;Faceyz0238&quot;],[44,&quot;L569_~$&quot;],[45,&quot;bdgopq&quot;],[46,&quot;P#&quot;],[47,&quot;EX&quot;],[48,&quot;S4€&quot;],[49,&quot;&quot;],[50,&quot;BNR&quot;],[51,&quot;DHKTU&quot;],[52,&quot;VZ&quot;],[53,&quot;C&quot;],[54,&quot;A&quot;],[55,&quot;&amp;&quot;],[56,&quot;GM&quot;],[57,&quot;O&quot;],[60,&quot;Q&quot;],[62,&quot;mw&quot;],[65,&quot;%&quot;],[72,&quot;W&quot;],[74,&quot;@&quot;]]</char-width-json>
<space-char-width>-1</space-char-width>
</properties>
<behavior-instances>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>1141</x>
<y>-732</y>
<z>0</z>
<width>132</width>
<height>77</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="checker_wrong_correct" uid="15">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>109</x>
<y>-653</y>
<z>0</z>
<width>140</width>
<height>140</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="IMG" uid="13">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>599.913452148</x>
<y>323.913452148</y>
<z>0</z>
<width>415.826873779</width>
<height>415.826873779</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="panel" uid="18">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>600</x>
<y>351</y>
<z>0</z>
<width>604.043029785</width>
<height>604.043029785</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>0.699999988</opacity>
</world>
</instance>
<instance type="txt_question" uid="19">
<properties>
<character-width>73</character-width>
<character-height>91</character-height>
<character-set>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#&quot;&apos;&amp;()[]|`/@°+=*$£€&lt;&gt;%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ</character-set>
<text>Sắp xếp các từ sau thành câu đúng</text>
<scale>0.85</scale>
<initial-visibility>Visible</initial-visibility>
<horizontal-alignment>Center</horizontal-alignment>
<vertical-alignment>Center</vertical-alignment>
<hotspot>Center</hotspot>
<wrapping>Word</wrapping>
<character-spacing>0</character-spacing>
<line-height>0</line-height>
<char-width-json>{&quot;&quot;c2array&quot;&quot;:true,&quot;&quot;size&quot;&quot;:[2,40,1],&quot;&quot;data&quot;&quot;:[[[22],[11],[13],[14],[15],[19],[20],[21],[22],[23],[24],[26],[27],[28],[29],[30],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[49],[50],[51],[52],[53],[54],[55],[56],[58],[59],[61],[62],[71]],[[&quot;&quot; &quot;&quot;],[&quot;&quot;|&quot;&quot;],[&quot;&quot;:&quot;&quot;],[&quot;&quot;Iil.,;&apos;Ịị&quot;&quot;],[&quot;&quot;!&quot;&quot;],[&quot;&quot;Ỉỉ&quot;&quot;],[&quot;&quot;`ÍÌíì&quot;&quot;],[&quot;&quot;[]&quot;&quot;],[&quot;&quot;j()&quot;&quot;],[&quot;&quot;-&quot;&quot;],[&quot;&quot;/&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;1&quot;&quot;],[&quot;&quot;rĨĩ&quot;&quot;],[&quot;&quot;*&quot;&quot;],[&quot;&quot;f\&quot;&quot;&quot;&quot;],[&quot;&quot;Juz078úùụủũ&quot;&quot;],[&quot;&quot;hn3569$&quot;&quot;],[&quot;&quot;Faceks2+=&lt;&gt;áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ&quot;&quot;],[&quot;&quot;Ldgq&quot;&quot;],[&quot;&quot;bp4?~&quot;&quot;],[&quot;&quot;oy£€óòọỏõôồốộổỗýỳỵỷỹ&quot;&quot;],[&quot;&quot;EPvx#ÉÈẺẸẼÊỀẾỆỂỄ&quot;&quot;],[&quot;&quot;đ&quot;&quot;],[&quot;&quot;HNTU_ÚÙỤỦŨ&quot;&quot;],[&quot;&quot;SZ&quot;&quot;],[&quot;&quot;BD&quot;&quot;],[&quot;&quot;C&quot;&quot;],[&quot;&quot;KR&quot;&quot;],[&quot;&quot;VX&amp;ưừứựửữ&quot;&quot;],[&quot;&quot;GYÝỲỴỶỸơờớợởỡ&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;OÓÒỌỎÕÔỒỐỘỔỖ&quot;&quot;],[&quot;&quot;AÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ&quot;&quot;],[&quot;&quot;Q&quot;&quot;],[&quot;&quot;ƯỪỨỰỬỮ&quot;&quot;],[&quot;&quot;mw&quot;&quot;],[&quot;&quot;%&quot;&quot;],[&quot;&quot;ƠỜỚỢỞỠ&quot;&quot;],[&quot;&quot;W@&quot;&quot;]]]}</char-width-json>
<space-char-width>-1</space-char-width>
</properties>
<behavior-instances>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>745</x>
<y>-1011</y>
<z>0</z>
<width>642</width>
<height>205</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="btn_Pause" uid="20">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<instance-variables>
<originX>0</originX>
<originY>0</originY>
</instance-variables>
<behavior-instances>
<behavior-instance type="MoveTo">
<properties>
<activated>Yes</activated>
<max-speed>400</max-speed>
<acceleration>0</acceleration>
<deceleration>0</deceleration>
</properties>
</behavior-instance>
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>1858</x>
<y>-635</y>
<z>0</z>
<width>82.666999817</width>
<height>75.986999512</height>
<depth>0</depth>
<hotspotX>0.50505048</hotspotX>
<hotspotY>0.505494535</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="btn_music" uid="21">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<instance-variables>
<originX>0</originX>
<originY>0</originY>
</instance-variables>
<behavior-instances>
<behavior-instance type="MoveTo">
<properties>
<activated>Yes</activated>
<max-speed>400</max-speed>
<acceleration>0</acceleration>
<deceleration>0</deceleration>
</properties>
</behavior-instance>
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>1858</x>
<y>-727</y>
<z>0</z>
<width>82.666999817</width>
<height>75.986999512</height>
<depth>0</depth>
<hotspotX>0.50505048</hotspotX>
<hotspotY>0.505494535</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="btn_setting" uid="17">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>1859</x>
<y>-544</y>
<z>0</z>
<width>82.666770935</width>
<height>75.986625671</height>
<depth>0</depth>
<hotspotX>0.50505048</hotspotX>
<hotspotY>0.505494535</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="btn_WordItem" uid="27">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>1</initial-frame>
<collisions>Enabled</collisions>
</properties>
<instance-variables>
<num>0</num>
<text></text>
<originX>0</originX>
<originY>0</originY>
<slotIndex>-1</slotIndex>
<dist>0</dist>
</instance-variables>
<behavior-instances>
<behavior-instance type="DragDrop">
<properties>
<axes>Both</axes>
<initial-state>Enabled</initial-state>
</properties>
</behavior-instance>
<behavior-instance type="Fade">
<properties>
<active-at-start>No</active-at-start>
<fade-in-time>0</fade-in-time>
<wait-time>0</wait-time>
<fade-out-time>2</fade-out-time>
<destroy>After fade out</destroy>
</properties>
</behavior-instance>
<behavior-instance type="MoveTo">
<properties>
<activated>Yes</activated>
<max-speed>1200</max-speed>
<acceleration>0</acceleration>
<deceleration>0</deceleration>
</properties>
</behavior-instance>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>-291</x>
<y>-1030</y>
<z>0</z>
<width>200</width>
<height>85</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.411764711</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="txt_WordItem" uid="25">
<properties>
<character-width>73</character-width>
<character-height>91</character-height>
<character-set>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#&quot;&apos;&amp;()[]|`/@°+=*$£€&lt;&gt;%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ</character-set>
<text>WW</text>
<scale>0.5</scale>
<initial-visibility>Visible</initial-visibility>
<horizontal-alignment>Center</horizontal-alignment>
<vertical-alignment>Center</vertical-alignment>
<hotspot>Center</hotspot>
<wrapping>Word</wrapping>
<character-spacing>0</character-spacing>
<line-height>0</line-height>
<char-width-json>{&quot;&quot;c2array&quot;&quot;:true,&quot;&quot;size&quot;&quot;:[2,40,1],&quot;&quot;data&quot;&quot;:[[[22],[11],[13],[14],[15],[19],[20],[21],[22],[23],[24],[26],[27],[28],[29],[30],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[49],[50],[51],[52],[53],[54],[55],[56],[58],[59],[61],[62],[71]],[[&quot;&quot; &quot;&quot;],[&quot;&quot;|&quot;&quot;],[&quot;&quot;:&quot;&quot;],[&quot;&quot;Iil.,;&apos;Ịị&quot;&quot;],[&quot;&quot;!&quot;&quot;],[&quot;&quot;Ỉỉ&quot;&quot;],[&quot;&quot;`ÍÌíì&quot;&quot;],[&quot;&quot;[]&quot;&quot;],[&quot;&quot;j()&quot;&quot;],[&quot;&quot;-&quot;&quot;],[&quot;&quot;/&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;1&quot;&quot;],[&quot;&quot;rĨĩ&quot;&quot;],[&quot;&quot;*&quot;&quot;],[&quot;&quot;f\&quot;&quot;&quot;&quot;],[&quot;&quot;Juz078úùụủũ&quot;&quot;],[&quot;&quot;hn3569$&quot;&quot;],[&quot;&quot;Faceks2+=&lt;&gt;áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ&quot;&quot;],[&quot;&quot;Ldgq&quot;&quot;],[&quot;&quot;bp4?~&quot;&quot;],[&quot;&quot;oy£€óòọỏõôồốộổỗýỳỵỷỹ&quot;&quot;],[&quot;&quot;EPvx#ÉÈẺẸẼÊỀẾỆỂỄ&quot;&quot;],[&quot;&quot;đ&quot;&quot;],[&quot;&quot;HNTU_ÚÙỤỦŨ&quot;&quot;],[&quot;&quot;SZ&quot;&quot;],[&quot;&quot;BD&quot;&quot;],[&quot;&quot;C&quot;&quot;],[&quot;&quot;KR&quot;&quot;],[&quot;&quot;VX&amp;ưừứựửữ&quot;&quot;],[&quot;&quot;GYÝỲỴỶỸơờớợởỡ&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;OÓÒỌỎÕÔỒỐỘỔỖ&quot;&quot;],[&quot;&quot;AÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ&quot;&quot;],[&quot;&quot;Q&quot;&quot;],[&quot;&quot;ƯỪỨỰỬỮ&quot;&quot;],[&quot;&quot;mw&quot;&quot;],[&quot;&quot;%&quot;&quot;],[&quot;&quot;ƠỜỚỢỞỠ&quot;&quot;],[&quot;&quot;W@&quot;&quot;]]]}</char-width-json>
<space-char-width>-1</space-char-width>
</properties>
<behavior-instances>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>-291</x>
<y>-1030</y>
<z>0</z>
<width>160.211120605</width>
<height>55.539886475</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="btn_WordItem" uid="28">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>2</initial-frame>
<collisions>Enabled</collisions>
</properties>
<instance-variables>
<num>0</num>
<text></text>
<originX>0</originX>
<originY>0</originY>
<slotIndex>-1</slotIndex>
<dist>0</dist>
</instance-variables>
<behavior-instances>
<behavior-instance type="DragDrop">
<properties>
<axes>Both</axes>
<initial-state>Enabled</initial-state>
</properties>
</behavior-instance>
<behavior-instance type="Fade">
<properties>
<active-at-start>No</active-at-start>
<fade-in-time>0</fade-in-time>
<wait-time>0</wait-time>
<fade-out-time>2</fade-out-time>
<destroy>After fade out</destroy>
</properties>
</behavior-instance>
<behavior-instance type="MoveTo">
<properties>
<activated>Yes</activated>
<max-speed>1200</max-speed>
<acceleration>0</acceleration>
<deceleration>0</deceleration>
</properties>
</behavior-instance>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>-522</x>
<y>-1030</y>
<z>0</z>
<width>200</width>
<height>85</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.411764711</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="txt_WordItem" uid="26">
<properties>
<character-width>73</character-width>
<character-height>91</character-height>
<character-set>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:?!-_~#&quot;&apos;&amp;()[]|`/@°+=*$£€&lt;&gt;%ÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪĐÉÈẺẸẼÊỀẾỆỂỄÍÌỊỈĨÓÒỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÚÙỤỦŨƯỪỨỰỬỮÝỲỴỶỸáàảạãăằắặẳẵâầấậẩẫđéèẻẹẽêềếệểễíìịỉĩóòọỏõôồốộổỗơờớợởỡúùụủũưừứựửữýỳỵỷỹ</character-set>
<text>WWW</text>
<scale>0.5</scale>
<initial-visibility>Visible</initial-visibility>
<horizontal-alignment>Center</horizontal-alignment>
<vertical-alignment>Center</vertical-alignment>
<hotspot>Center</hotspot>
<wrapping>Word</wrapping>
<character-spacing>0</character-spacing>
<line-height>0</line-height>
<char-width-json>{&quot;&quot;c2array&quot;&quot;:true,&quot;&quot;size&quot;&quot;:[2,40,1],&quot;&quot;data&quot;&quot;:[[[22],[11],[13],[14],[15],[19],[20],[21],[22],[23],[24],[26],[27],[28],[29],[30],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],[49],[50],[51],[52],[53],[54],[55],[56],[58],[59],[61],[62],[71]],[[&quot;&quot; &quot;&quot;],[&quot;&quot;|&quot;&quot;],[&quot;&quot;:&quot;&quot;],[&quot;&quot;Iil.,;&apos;Ịị&quot;&quot;],[&quot;&quot;!&quot;&quot;],[&quot;&quot;Ỉỉ&quot;&quot;],[&quot;&quot;`ÍÌíì&quot;&quot;],[&quot;&quot;[]&quot;&quot;],[&quot;&quot;j()&quot;&quot;],[&quot;&quot;-&quot;&quot;],[&quot;&quot;/&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;1&quot;&quot;],[&quot;&quot;rĨĩ&quot;&quot;],[&quot;&quot;*&quot;&quot;],[&quot;&quot;f\&quot;&quot;&quot;&quot;],[&quot;&quot;Juz078úùụủũ&quot;&quot;],[&quot;&quot;hn3569$&quot;&quot;],[&quot;&quot;Faceks2+=&lt;&gt;áàảạãăằắặẳẵâầấậẩẫéèẻẹẽêềếệểễ&quot;&quot;],[&quot;&quot;Ldgq&quot;&quot;],[&quot;&quot;bp4?~&quot;&quot;],[&quot;&quot;oy£€óòọỏõôồốộổỗýỳỵỷỹ&quot;&quot;],[&quot;&quot;EPvx#ÉÈẺẸẼÊỀẾỆỂỄ&quot;&quot;],[&quot;&quot;đ&quot;&quot;],[&quot;&quot;HNTU_ÚÙỤỦŨ&quot;&quot;],[&quot;&quot;SZ&quot;&quot;],[&quot;&quot;BD&quot;&quot;],[&quot;&quot;C&quot;&quot;],[&quot;&quot;KR&quot;&quot;],[&quot;&quot;VX&amp;ưừứựửữ&quot;&quot;],[&quot;&quot;GYÝỲỴỶỸơờớợởỡ&quot;&quot;],[&quot;&quot;&quot;&quot;],[&quot;&quot;OÓÒỌỎÕÔỒỐỘỔỖ&quot;&quot;],[&quot;&quot;AÁÀẢẠÃĂẰẮẶẲẴÂẦẤẬẨẪ&quot;&quot;],[&quot;&quot;Q&quot;&quot;],[&quot;&quot;ƯỪỨỰỬỮ&quot;&quot;],[&quot;&quot;mw&quot;&quot;],[&quot;&quot;%&quot;&quot;],[&quot;&quot;ƠỜỚỢỞỠ&quot;&quot;],[&quot;&quot;W@&quot;&quot;]]]}</char-width-json>
<space-char-width>-1</space-char-width>
</properties>
<behavior-instances>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>-522</x>
<y>-1030</y>
<z>0</z>
<width>160.211120605</width>
<height>55.539886475</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="btn_WordItem" uid="29">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>3</initial-frame>
<collisions>Enabled</collisions>
</properties>
<instance-variables>
<num>0</num>
<text></text>
<originX>0</originX>
<originY>0</originY>
<slotIndex>-1</slotIndex>
<dist>0</dist>
</instance-variables>
<behavior-instances>
<behavior-instance type="DragDrop">
<properties>
<axes>Both</axes>
<initial-state>Enabled</initial-state>
</properties>
</behavior-instance>
<behavior-instance type="Fade">
<properties>
<active-at-start>No</active-at-start>
<fade-in-time>0</fade-in-time>
<wait-time>0</wait-time>
<fade-out-time>2</fade-out-time>
<destroy>After fade out</destroy>
</properties>
</behavior-instance>
<behavior-instance type="MoveTo">
<properties>
<activated>Yes</activated>
<max-speed>1200</max-speed>
<acceleration>0</acceleration>
<deceleration>0</deceleration>
</properties>
</behavior-instance>
<behavior-instance type="Pin" />
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>-757</x>
<y>-1030</y>
<z>0</z>
<width>200</width>
<height>85</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.411764711</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
</instances>
<effects />
</layer>
<layer name="Pause" sid="621954870190361">
<initially-visible>1</initially-visible>
<background-color>255,255,255</background-color>
<transparent>1</transparent>
<parallax>
<x>1</x>
<y>1</y>
</parallax>
<zoom-rate>1</zoom-rate>
<opacity>1</opacity>
<force-own-texture>0</force-own-texture>
<global>0</global>
<use-render-cells>0</use-render-cells>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<instances>
<instance type="panel_pause" uid="22">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>600</x>
<y>600</y>
<z>0</z>
<width>1946.036010742</width>
<height>1251.022949219</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
<instance type="Layer" uid="23">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<behavior-instances>
<behavior-instance type="Sine">
<properties>
<active-on-start>Yes</active-on-start>
<movement>Size</movement>
<wave>Sine</wave>
<period>3</period>
<period-random>0</period-random>
<period-offset>0</period-offset>
<period-offset-random>0</period-offset-random>
<magnitude>50</magnitude>
<magnitude-random>0</magnitude-random>
</properties>
</behavior-instance>
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>600</x>
<y>600</y>
<z>0</z>
<width>400</width>
<height>376</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.5</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
</instances>
<effects />
</layer>
<layer name="Logo" sid="899027236628199">
<initially-visible>1</initially-visible>
<background-color>255,255,255</background-color>
<transparent>1</transparent>
<parallax>
<x>1</x>
<y>1</y>
</parallax>
<zoom-rate>1</zoom-rate>
<opacity>1</opacity>
<force-own-texture>0</force-own-texture>
<global>0</global>
<use-render-cells>0</use-render-cells>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<instances>
<instance type="NewWordpng" uid="24">
<properties>
<initial-visibility>Visible</initial-visibility>
<initial-animation>Default</initial-animation>
<initial-frame>0</initial-frame>
<collisions>Enabled</collisions>
</properties>
<behavior-instances>
<behavior-instance type="Anchor">
<properties>
<left-edge>Window left</left-edge>
<top-edge>Window top</top-edge>
<right-edge>None</right-edge>
<bottom-edge>None</bottom-edge>
<initial-state>Enabled</initial-state>
</properties>
</behavior-instance>
</behavior-instances>
<blend-mode>0</blend-mode>
<effect-fallback>0</effect-fallback>
<world>
<x>110</x>
<y>77</y>
<z>0</z>
<width>195.739074707</width>
<height>133.494049072</height>
<depth>0</depth>
<hotspotX>0.5</hotspotX>
<hotspotY>0.501466274</hotspotY>
<angle>0</angle>
<opacity>1</opacity>
</world>
</instance>
</instances>
<effects />
</layer>
</layers>
<nonworld-instances>
<instance type="JSON" uid="3" />
</nonworld-instances>
<effects />
</c2layout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

View File

@@ -0,0 +1,424 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2project>
<name>image_spelling_sequence_sentence_teacher</name>
<description></description>
<version>1.0.0.0</version>
<author></author>
<author-email></author-email>
<author-website>http://</author-website>
<app-id>com.mycompany.myapp</app-id>
<unique-id>1isg9k17yafpp</unique-id>
<saved-with-version>28000</saved-with-version>
<used-plugins>
<plugin author="Scirra" id="Audio" version="1">Audio</plugin>
<plugin author="Scirra" id="Browser" version="1">Browser</plugin>
<plugin author="Scirra" id="Function" version="1">Function</plugin>
<plugin author="Yann Granjon" id="JSON" version="1.200000048">JSON</plugin>
<plugin author="Sena Technology" id="SenaPlugin" version="2.200000048">SenaAI</plugin>
<plugin author="Scirra" id="Sprite" version="1">Sprite</plugin>
<plugin author="Chris Kent" id="SpriteFontPlus" version="1">SpriteFont+</plugin>
<plugin author="Scirra" id="Touch" version="1">Touch</plugin>
</used-plugins>
<used-behaviors>
<behavior author="Scirra" id="Anchor" version="1">Anchor</behavior>
<behavior author="Scirra" id="DragnDrop" version="1">Drag &amp; Drop</behavior>
<behavior author="Scirra" id="Fade" version="1">Fade</behavior>
<behavior author="Scirra" id="Pin" version="1">Pin</behavior>
<behavior author="Rex.Rainbow" id="Rex_MoveTo" version="1">MoveTo</behavior>
<behavior author="Scirra" id="Sin" version="1">Sine</behavior>
</used-behaviors>
<used-effects />
<configurations>
<configuration exporter-descname="HTML5" exporter-id="html5" name="HTML5" />
</configurations>
<window-size>
<width>1200</width>
<height>1200</height>
</window-size>
<pixel-rounding>0</pixel-rounding>
<preview-effects>1</preview-effects>
<use-loader-layout>0</use-loader-layout>
<configuration-settings>
<prop name="Clear background">Yes</prop>
<prop name="Downscaling">Medium quality</prop>
<prop name="Enable WebGL">On</prop>
<prop name="Fullscreen in browser">Scale outer</prop>
<prop name="Fullscreen scaling">High quality</prop>
<prop name="Loader style">Nothing (not recommended)</prop>
<prop name="Orientations">Any</prop>
<prop name="Pause on unfocus">No</prop>
<prop name="Physics engine">Box2D asm.js</prop>
<prop name="Preload sounds">Yes</prop>
<prop name="Preview browser">(default)</prop>
<prop name="Sampling">Linear</prop>
<prop name="Use high-DPI display">Yes</prop>
</configuration-settings>
<object-folder>
<object-type name="SenaAI" sid="394152958375253">
<plugin id="SenaPlugin" />
</object-type>
<object-type name="Browser" sid="181015701933739">
<plugin id="Browser" />
</object-type>
<object-type name="btn_check" sid="870372553390403">
<plugin id="Sprite" />
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="266653407798345" speed="5">
<frame duration="1" hotspotX="0.5" hotspotY="0.501538" original-source="C:\Users\GIGABYTE\Downloads\02_Sequence\Submit 1.png" />
</animation>
</animation-folder>
</object-type>
<object-type name="Touch" sid="288430412484243">
<plugin id="Touch" />
</object-type>
<object-type name="pause" sid="829278278494442">
<plugin id="Sprite" />
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="974942116247628" speed="5">
<frame duration="1" hotspotX="0.5" hotspotY="0.5" />
</animation>
</animation-folder>
</object-type>
<object-type name="resume" sid="250461366236378">
<plugin id="Sprite" />
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="830476950235748" speed="5">
<frame duration="1" hotspotX="0.5" hotspotY="0.5" />
</animation>
</animation-folder>
</object-type>
<object-type name="Slot" sid="530929310100717">
<plugin id="Sprite" />
<instance-variables>
<instance-variable name="index" sid="839027338172447" type="number" />
<instance-variable name="word" sid="370467464601183" type="string" />
<instance-variable name="locked" sid="403859397610033" type="boolean" />
</instance-variables>
<behaviors>
<behavior-type name="Fade" sid="588103285968005">
<behavior id="Fade" />
</behavior-type>
</behaviors>
<animation-folder>
<animation framecount="8" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="201845729772152" speed="0">
<frame duration="1" hotspotX="0.505" hotspotY="0.423529" original-source="C:\Users\GIGABYTE\Downloads\02_Sequence\vien.png" />
<frame duration="1" hotspotX="0.5" hotspotY="0.423529" original-source="C:\Users\GIGABYTE\Downloads\02_Sequence\Khung option 1.png" />
<frame duration="1" hotspotX="0.5" hotspotY="0.505882" original-source="C:\Users\GIGABYTE\Downloads\02_Sequence\Khung option 1.png" />
<frame duration="1" hotspotX="0.5" hotspotY="0.505882" original-source="C:\Users\GIGABYTE\Downloads\02_Sequence\Answer Frame dung.png" />
<frame duration="1" hotspotX="0.500888" hotspotY="0.5" original-source="C:\Users\GIGABYTE\Downloads\02_Sequence\Answer Frame sai.png" />
<frame duration="1" hotspotX="0.5" hotspotY="0.506667" />
<frame duration="1" hotspotX="0.5" hotspotY="0.493333" original-source="C:\Users\GIGABYTE\Downloads\SenaaiKhoi (1).png" />
<frame duration="1" hotspotX="0.435" hotspotY="0.52" original-source="C:\Users\GIGABYTE\Downloads\SenaaiKhoi (2).png" />
</animation>
</animation-folder>
</object-type>
<object-type name="btn_WordItem" sid="515230787966511">
<plugin id="Sprite" />
<instance-variables>
<instance-variable name="num" sid="617093471778717" type="number" />
<instance-variable name="text" sid="401281652261798" type="string" />
<instance-variable name="originX" sid="308058330719086" type="number" />
<instance-variable name="originY" sid="937883104346632" type="number" />
<instance-variable name="slotIndex" sid="243525000976275" type="number" />
<instance-variable name="dist" sid="435711195864159" type="number" />
</instance-variables>
<behaviors>
<behavior-type name="DragDrop" sid="551257499299552">
<behavior id="DragnDrop" />
</behavior-type>
<behavior-type name="Fade" sid="430149822241515">
<behavior id="Fade" />
</behavior-type>
<behavior-type name="MoveTo" sid="551694077436381">
<behavior id="Rex_MoveTo" />
</behavior-type>
<behavior-type name="Pin" sid="739718864734046">
<behavior id="Pin" />
</behavior-type>
</behaviors>
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="344548683716056" speed="0">
<frame duration="1" hotspotX="0.5" hotspotY="0.411765" original-source="C:\Users\GIGABYTE\Downloads\02_Sequence\Khung option 1.png" />
</animation>
</animation-folder>
</object-type>
<object-type name="Function" sid="825652157577718">
<plugin id="Function" />
</object-type>
<object-type name="txt_TextTimer" sid="428453985749595">
<plugin id="SpriteFontPlus" />
<texture original-source="C:\Users\GIGABYTE\Desktop\UI\Font\SpriteFont_ArialRoundedMT_Bold_(72)_[1,1,1,1]_76x83.png" />
</object-type>
<object-type name="txt_WordItem" sid="125516006976486">
<plugin id="SpriteFontPlus" />
<texture original-source="C:\Users\GIGABYTE\Desktop\UI\Font\SpriteFont_Arial_Bold_(72)_[1,1,1,1]_73x91.png" />
</object-type>
<object-type name="txt_Slot" sid="680183373657896">
<plugin id="SpriteFontPlus" />
<texture original-source="C:\Users\GIGABYTE\Desktop\UI\Font\SpriteFont_Arial_Bold_(72)_[1,1,1,1]_73x91.png" />
</object-type>
<object-type name="SenaaiKhoi" sid="577948289650662">
<plugin id="Sprite" />
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="174194635978617" speed="5">
<frame duration="1" hotspotX="0.499563" hotspotY="0.497758" original-source="C:\Users\GIGABYTE\Downloads\SenaaiKhoi (5).png" />
</animation>
</animation-folder>
</object-type>
<object-type name="checker_wrong_correct" sid="246032193737445">
<plugin id="Sprite" />
<animation-folder>
<animation framecount="2" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="329974099612225" speed="0">
<frame duration="1" hotspotX="0.5" hotspotY="0.5" original-source="C:\Users\GIGABYTE\Downloads\vf.png">
<collision-poly>
<point x="0.135714" y="0.135714" />
<point x="0.5" y="0.0642857" />
<point x="0.864286" y="0.135714" />
<point x="0.9" y="0.5" />
<point x="0.814286" y="0.814286" />
<point x="0.5" y="0.942857" />
<point x="0.207143" y="0.792857" />
<point x="0.114286" y="0.5" />
</collision-poly>
</frame>
<frame duration="1" hotspotX="0.5" hotspotY="0.5" original-source="C:\Users\GIGABYTE\Downloads\vff.png">
<collision-poly>
<point x="0.142857" y="0.142857" />
<point x="0.5" y="0.0642857" />
<point x="0.857143" y="0.142857" />
<point x="0.885714" y="0.5" />
<point x="0.864286" y="0.864286" />
<point x="0.5" y="0.914286" />
<point x="0.214286" y="0.785714" />
<point x="0.114286" y="0.5" />
</collision-poly>
</frame>
</animation>
</animation-folder>
</object-type>
<object-type name="Audio" sid="396522085041537">
<plugin id="Audio" />
</object-type>
<object-type name="btn_setting" sid="444899307061590">
<plugin id="Sprite" />
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="857466576876240" speed="5">
<frame duration="1" hotspotX="0.50505" hotspotY="0.505495" original-source="C:\Users\GIGABYTE\Downloads\UI nút\Layer 5.png">
<collision-poly>
<point x="0.139364" y="0.150794" />
<point x="0.498778" y="0.0026455" />
<point x="0.860636" y="0.150794" />
<point x="0.99022" y="0.5" />
<point x="0.865526" y="0.854497" />
<point x="0.498778" y="0.992063" />
<point x="0.136919" y="0.851852" />
<point x="0.00733496" y="0.5" />
</collision-poly>
</frame>
</animation>
</animation-folder>
</object-type>
<object-type name="panel" sid="150393696478915">
<plugin id="Sprite" />
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="922486781068681" speed="5">
<frame duration="1" hotspotX="0.5" hotspotY="0.5" original-source="C:\Users\GIGABYTE\Downloads\02_Sequence\Image frame.png" />
</animation>
</animation-folder>
</object-type>
<object-type name="txt_question" sid="389192760965508">
<plugin id="SpriteFontPlus" />
<texture original-source="C:\Users\GIGABYTE\Desktop\UI\Font\SpriteFont_Arial_Bold_(72)_[1,1,1,1]_73x91.png" />
</object-type>
<object-type name="btn_Pause" sid="680660539195378">
<plugin id="Sprite" />
<instance-variables>
<instance-variable name="originX" sid="637523801130517" type="number" />
<instance-variable name="originY" sid="567457434227301" type="number" />
</instance-variables>
<behaviors>
<behavior-type name="MoveTo" sid="345261300394347">
<behavior id="Rex_MoveTo" />
</behavior-type>
</behaviors>
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="177577261579169" speed="5">
<frame duration="1" hotspotX="0.50505" hotspotY="0.505495" original-source="C:\Users\GIGABYTE\Downloads\UI nút (1)\Layer 6.png">
<collision-poly>
<point x="0.139303" y="0.147757" />
<point x="0.5" y="0.00263852" />
<point x="0.860696" y="0.147757" />
<point x="0.995025" y="0.498681" />
<point x="0.863184" y="0.854881" />
<point x="0.5" y="0.994723" />
<point x="0.139303" y="0.852243" />
<point x="0.00746269" y="0.498681" />
</collision-poly>
</frame>
</animation>
</animation-folder>
</object-type>
<object-type name="btn_music" sid="470943728107764">
<plugin id="Sprite" />
<instance-variables>
<instance-variable name="originX" sid="546775332106909" type="number" />
<instance-variable name="originY" sid="966775272495183" type="number" />
</instance-variables>
<behaviors>
<behavior-type name="MoveTo" sid="561713266057788">
<behavior id="Rex_MoveTo" />
</behavior-type>
</behaviors>
<animation-folder>
<animation framecount="2" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="632596314970396" speed="0">
<frame duration="1" hotspotX="0.50505" hotspotY="0.505495" original-source="C:\Users\GIGABYTE\Downloads\UI nút (1)\Layer 3.png" />
<frame duration="1" hotspotX="0.50505" hotspotY="0.505495" original-source="C:\Users\GIGABYTE\Downloads\UI nút (1)\Layer 10.png" />
</animation>
</animation-folder>
</object-type>
<object-type name="panel_pause" sid="103999013142366">
<plugin id="Sprite" />
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="804798480075980" speed="5">
<frame duration="1" hotspotX="0.5" hotspotY="0.5" />
</animation>
</animation-folder>
</object-type>
<object-type name="Layer" sid="822735679292648">
<plugin id="Sprite" />
<behaviors>
<behavior-type name="Sine" sid="152768910804631">
<behavior id="Sin" />
</behavior-type>
</behaviors>
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="794524614026990" speed="5">
<frame duration="1" hotspotX="0.5" hotspotY="0.5" original-source="C:\Users\GIGABYTE\Downloads\UI nút (1)\Layer 7.png">
<collision-poly>
<point x="0.1375" y="0.146277" />
<point x="0.5" y="0" />
<point x="0.8625" y="0.146277" />
<point x="0.9975" y="0.5" />
<point x="0.865" y="0.856383" />
<point x="0.5" y="1" />
<point x="0.135" y="0.856383" />
<point x="0" y="0.5" />
</collision-poly>
</frame>
</animation>
</animation-folder>
</object-type>
<object-type name="NewWordpng" sid="139959116973831">
<plugin id="Sprite" />
<behaviors>
<behavior-type name="Anchor" sid="539593209741847">
<behavior id="Anchor" />
</behavior-type>
</behaviors>
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="185281331107930" speed="5">
<frame duration="1" hotspotX="0.5" hotspotY="0.501466" original-source="C:\Users\GIGABYTE\Desktop\UI\Logo Game\New word.png.png">
<collision-poly>
<point x="0.106" y="0.155425" />
<point x="0.5" y="0.0615836" />
<point x="0.648" y="0.516129" />
<point x="0.792" y="0.498534" />
<point x="0.966" y="0.950147" />
<point x="0.5" y="0.973607" />
<point x="0.038" y="0.944282" />
<point x="0.218" y="0.498534" />
</collision-poly>
</frame>
</animation>
</animation-folder>
</object-type>
<object-type global="1" name="JSON" sid="262867654071762">
<plugin id="JSON" />
</object-type>
<object-type name="IMG" sid="948012257438000">
<plugin id="Sprite" />
<animation-folder>
<animation framecount="1" loop="0" name="Default" pingpong="0" repeatcount="1" repeatto="0" sid="562756187089019" speed="5">
<frame duration="1" hotspotX="0.5" hotspotY="0.5" />
</animation>
</animation-folder>
</object-type>
</object-folder>
<families>
<family name="Family1" plugin-id="SpriteFontPlus" sid="154178255437462">
<members>
<member>txt_question</member>
<member>txt_Slot</member>
<member>txt_TextTimer</member>
<member>txt_WordItem</member>
</members>
<behaviors>
<behavior-type name="Pin" sid="693926857619114">
<behavior id="Pin" />
</behavior-type>
</behaviors>
</family>
<family name="Family2" plugin-id="Sprite" sid="909098946188328">
<members>
<member>btn_music</member>
<member>btn_Pause</member>
<member>btn_setting</member>
<member>Layer</member>
</members>
</family>
</families>
<layout-folder>
<layout>Layout 1.xml</layout>
</layout-folder>
<event-folder>
<event-sheet>Event sheet 1.xml</event-sheet>
<event-sheet>DrapDrop.xml</event-sheet>
<event-sheet>move.xml</event-sheet>
</event-folder>
<global-instances>
<global-instance type="SenaAI" uid="0">
<properties>
<campaign-id>G2810S1T30</campaign-id>
</properties>
</global-instance>
<global-instance type="Browser" uid="1" />
<global-instance type="Touch" uid="4">
<properties>
<use-mouse-input>Yes</use-mouse-input>
</properties>
</global-instance>
<global-instance type="Function" uid="9" />
<global-instance type="Audio" uid="16">
<properties>
<timescale-audio>Off</timescale-audio>
<saveload>All</saveload>
<play-in-background>No</play-in-background>
<positioned-audio></positioned-audio>
<panning-model>HRTF</panning-model>
<distance-model>Inverse</distance-model>
<listener-z-height>600</listener-z-height>
<reference-distance>600</reference-distance>
<maximum-distance>10000</maximum-distance>
<roll-off-factor>1</roll-off-factor>
</properties>
</global-instance>
</global-instances>
<sounds-folder>
<file name="click.ogg" />
<file name="correct.ogg" />
<file name="error-010-206498.ogg" />
<file name="immersivecontrol-button-click-sound-463065.ogg" />
</sounds-folder>
<music-folder />
<files-folder>
<file-folder name="Icons">
<file name="icon-16.png" />
<file name="icon-32.png" />
<file name="icon-114.png" />
<file name="icon-128.png" />
<file name="icon-256.png" />
<file name="loading-logo.png" />
</file-folder>
<file name="tdv_sdk.js" />
</files-folder>
</c2project>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2uistate>
<!--This is a UI state file - its content describes the user interface settings when the project was last open.
It is entirely optional and the project will load without it. If you are placing the project under source control,
you probably do not want to add any .uistate.xml files to the repository.-->
<configurations>
<active>
<configuration name="HTML5" />
</active>
<display name="HTML5" />
</configurations>
<open-tabs>
<layout order="0">Layout 1</layout>
<event-sheet order="2">DrapDrop</event-sheet>
<event-sheet order="3">move</event-sheet>
<event-sheet active="1" order="1">Event sheet 1</event-sheet>
</open-tabs>
<properties>
<property expanded="1" name="About" />
<property expanded="1" name="Project settings" />
<property expanded="0" name="Window Size" />
<property expanded="1" name="Configuration Settings" />
</properties>
<families-expanded root="1">
<family expanded="1" name="Family1" />
<family expanded="1" name="Family2" />
</families-expanded>
<folders-expanded>
<folder expanded="1" path="object-folder/" />
<folder expanded="1" path="layout-folder/" />
<folder expanded="1" path="event-folder/" />
<folder expanded="1" path="file-folder/" />
<folder expanded="1" path="sound-folder/" />
<folder expanded="1" path="music-folder/" />
<folder expanded="1" path="file-folder/Icons/" />
<folder expanded="1" path="animation-folder/btn_check/" />
<folder expanded="1" path="animation-folder/pause/" />
<folder expanded="1" path="animation-folder/resume/" />
<folder expanded="1" path="animation-folder/Slot/" />
<folder expanded="1" path="animation-folder/btn_WordItem/" />
<folder expanded="1" path="animation-folder/SenaaiKhoi/" />
<folder expanded="1" path="animation-folder/checker_wrong_correct/" />
<folder expanded="1" path="animation-folder/btn_setting/" />
<folder expanded="1" path="animation-folder/panel/" />
<folder expanded="1" path="animation-folder/btn_Pause/" />
<folder expanded="1" path="animation-folder/btn_music/" />
<folder expanded="1" path="animation-folder/panel_pause/" />
<folder expanded="1" path="animation-folder/Layer/" />
<folder expanded="1" path="animation-folder/NewWordpng/" />
<folder expanded="1" path="animation-folder/IMG/" />
</folders-expanded>
</c2uistate>