import QtQuick 2.0
import "morris.js" as Morris
Image {
id: board;
source: "board.svg";
width: 320; height: 320;
property real pw : parent!=null?parent.width:width;
property real ph : parent!=null?parent.height:height;
transform: [
Scale {
id: scale; xScale: yScale;
yScale: Math.min(board.pw/board.width,board.ph/board.height);},
Translate {
x: (board.pw-board.width*scale.xScale)/2;
y: (board.ph-board.height*scale.yScale)/2;}]
property real t;
NumberAnimation on t {
id: anim;
running: false;
from: 0;
to: 1;
duration: 300;
}
Connections {
target: anim;
onRunningChanged: {
if (!anim.running) {
Morris.animFinished();
}
}
}
Repeater {
id: pieceView
model: [];
Image {
source: modelData.player == "red" ? "red.svg" : "black.svg";
opacity: ((modelData.currPos!=null?1:0)*board.t)+((modelData.prevPos!=null?1:0)*(1-board.t));
x: (Morris.posIdToX(modelData.currPos!=null?modelData.currPos:modelData.prevPos)*board.t)+(Morris.posIdToX(modelData.prevPos!=null?modelData.prevPos:modelData.currPos)*(1-board.t))-width/2;
y: (Morris.posIdToY(modelData.currPos!=null?modelData.currPos:modelData.prevPos)*board.t)+(Morris.posIdToY(modelData.prevPos!=null?modelData.prevPos:modelData.currPos)*(1-board.t))-height/2;
}
}
Repeater {
id: targetView
model: [];
Image {
source: "target.svg";
x: Morris.posIdToX(modelData)-width/2;
y: Morris.posIdToY(modelData)-height/2;
MouseArea {
anchors.fill: parent;
onClicked: Morris.selectTarget(modelData);
}
}
}
Component.onCompleted: {
Morris.setupGame();
}
}