2 Incheckningar 9654592cd5 ... 529e0d3367

Upphovsman SHA1 Meddelande Datum
  xlxin 529e0d3367 开发:增加对元素收集到另外一个元素的动作配置 2 år sedan
  xlxin 5b862fe14e 开发:支持播放特效时的声音配置 2 år sedan

+ 2 - 0
datacpp/dataManager.cpp

@@ -227,6 +227,7 @@ void DataManager::changeAnimTable(QString elem, QString newData, int row, int co
     else if(column == 1) elements[elem]->statusEffect[row].res = newData;
     else if (column == 2) elements[elem]->statusEffect[row].timeline = newData;
     else if (column == 3) elements[elem]->statusEffect[row].zOrder = newData;
+    else if (column == 4) elements[elem]->statusEffect[row].audio = newData;
 }
 void DataManager::copyAnim(QString elem, QString animName, int copyIndex)
 {
@@ -235,6 +236,7 @@ void DataManager::copyAnim(QString elem, QString animName, int copyIndex)
     anim.res = copyData.res;
     anim.timeline = copyData.timeline;
     anim.zOrder = copyData.zOrder;
+    anim.audio = copyData.audio;
     elements[elem]->statusEffect.push_back(anim);
 }
 

+ 3 - 0
datacpp/elemPropertyData.cpp

@@ -168,6 +168,7 @@ void ElemPropertyData::readStatusEffect(const QJsonArray &arr)
         anim.res = animObj["res"].toString();
         anim.timeline = animObj["timeline"].toString();
         anim.zOrder = animObj["zOrder"].toString();
+        anim.audio = animObj["audio"].toString();
         statusEffect.append(anim);
     }
 }
@@ -183,6 +184,7 @@ QJsonArray ElemPropertyData::writeStatusEffect() const
         animObj["res"] = anim.res;
         animObj["timeline"] = anim.timeline;
         animObj["zOrder"] = anim.zOrder;
+        animObj["audio"] = anim.audio;
         animArray.append(animObj);
     }
     return animArray;
@@ -464,6 +466,7 @@ QJsonObject ElemPropertyData::exportAnim() const
         animObj["showCcbi"] = DataManager::getFileName(statusEffect[i].res);
         animObj["showAnim"] = statusEffect[i].timeline;
         animObj["localZOrder"] = statusEffect[i].zOrder.toInt();
+        animObj["audio"] = statusEffect[i].audio;
         json.insert(statusEffect[i].name,animObj);
     }
     return json;

+ 1 - 0
datahpp/elemPropertyData.h

@@ -28,6 +28,7 @@ public:
         QString res;
         QString timeline;
         QString zOrder;
+        QString audio;
         StatusEffect(QString animName):name(animName),res("双击添加资源文件"),timeline("尚未选择"),zOrder("0"){}
     };
     QVector<StatusEffect> statusEffect;

+ 12 - 0
file/template.json

@@ -42,6 +42,10 @@
                 {
                         "name":"特殊消",
                         "id":"stampBeat"
+                },
+                {
+                        "name":"收集到",
+                        "id":"collect"
                 }
         ],
         "action_template":[
@@ -59,6 +63,14 @@
                                 "生成类型":{"id":"type","type":"input"},
                                 "生成数量":{"id":"num","type":"input"}
                         }
+                },
+                {
+                        "name":"收集到特定类型元素",
+                        "id":"collect",
+                        "fields":{
+                                "元素类型":{"id":"target","type":"input"},
+                                "到达之后的特效":{"id":"efx","type":"list", "src":"animations"}
+                        }
                 }
         ]
 }

+ 8 - 1
statusEffectAnim.cpp

@@ -11,7 +11,7 @@ StatusEffectAnim::StatusEffectAnim(QWidget *parent) :
 {
     ui->setupUi(this);
     this->setAcceptDrops(true);
-    ui->tableWidget_animation->setHorizontalHeaderLabels({"名称","资源","时间线","z-Order"});
+    ui->tableWidget_animation->setHorizontalHeaderLabels({"名称","资源","时间线","z-Order","音效"});
 }
 
 StatusEffectAnim::~StatusEffectAnim()
@@ -73,6 +73,7 @@ void StatusEffectAnim::setUi(QString elem)
         QComboBox* timeline = createTimelineBox(i.timeline,i.res);
         ui->tableWidget_animation->setCellWidget(rowNum,2,timeline);
         ui->tableWidget_animation->setItem(rowNum,3,new QTableWidgetItem(i.zOrder));
+        ui->tableWidget_animation->setItem(rowNum,4,new QTableWidgetItem(i.audio));
     }
 }
 void StatusEffectAnim::on_pushButton_addAnimation_clicked()
@@ -94,6 +95,7 @@ void StatusEffectAnim::on_pushButton_addAnimation_clicked()
     ui->tableWidget_animation->setItem(rowNum,1,res);
     ui->tableWidget_animation->setCellWidget(rowNum,2,createBox("尚未选择",{}));
     ui->tableWidget_animation->setItem(rowNum,3,new QTableWidgetItem("0"));
+    ui->tableWidget_animation->setItem(rowNum,4,new QTableWidgetItem(""));
     DataManager::getInstance()->addAnim(currentElem,animName);
 }
 
@@ -138,6 +140,10 @@ void StatusEffectAnim::on_tableWidget_animation_itemChanged(QTableWidgetItem *it
         }
         std::cout<<"z-Order值发生改变,新值为:"<<zOrder<<std::endl;
         DataManager::getInstance()->changeAnimTable(currentElem,nZOrder,row,3);
+    } if(column == 4){
+        QString audio = item->text();
+        std::cout<<"音效发生改变,新值为:"<<qPrintable(audio)<<std::endl;
+        DataManager::getInstance()->changeAnimTable(currentElem,audio,row,4);
     }
 }
 
@@ -191,5 +197,6 @@ void StatusEffectAnim::on_pushButton_copyAnim_clicked()
     QComboBox* timeline = createTimelineBox(animData.timeline,animData.res);
     ui->tableWidget_animation->setCellWidget(rowNum,2,timeline);
     ui->tableWidget_animation->setItem(rowNum,3,new QTableWidgetItem(animData.zOrder));
+    ui->tableWidget_animation->setItem(rowNum,4,new QTableWidgetItem(animData.audio));
 }
 

+ 2 - 1
statusEffectAnim.ui

@@ -20,12 +20,13 @@
       <number>0</number>
      </property>
      <property name="columnCount">
-      <number>4</number>
+      <number>5</number>
      </property>
      <column/>
      <column/>
      <column/>
      <column/>
+     <column/>
     </widget>
    </item>
    <item>