diff --git a/build/bin/mainV7.exe b/build/bin/mainV7.exe new file mode 100644 index 0000000..751d00d Binary files /dev/null and b/build/bin/mainV7.exe differ diff --git a/src/pieces/headers/piece_interface.hpp b/src/pieces/headers/piece_interface.hpp index 3513b83..8b22dc1 100644 --- a/src/pieces/headers/piece_interface.hpp +++ b/src/pieces/headers/piece_interface.hpp @@ -36,6 +36,7 @@ class PieceInterface{ rb::Vector3 globalPos; rb::rigidbody body; sf::Color color; + float transparency = 1.0; //canale alpha del pezzo virtual void update(sf::Clock cl) = 0; virtual sf::Shape* draw(ReferencePlane plane) = 0; @@ -43,6 +44,10 @@ class PieceInterface{ virtual void setDirection(Direction dir){ direction = dir; } + virtual bool setTransparency(float alpha){ + if (alpha < 0 || alpha > 1) return false; + transparency = alpha; + } }; diff --git a/src/pieces/methods/caviglia_class.cpp b/src/pieces/methods/caviglia_class.cpp index b7cc4c8..7acf43c 100644 --- a/src/pieces/methods/caviglia_class.cpp +++ b/src/pieces/methods/caviglia_class.cpp @@ -26,12 +26,13 @@ sf::Shape* Caviglia::draw(ReferencePlane plane){ switch (plane) { - case ReferencePlane::XZ: + case ReferencePlane::XZ : case ReferencePlane::XZN: { sf::Shape* shape = shapeXZ; shape->setRotation(sf::Angle(sf::radians(tmpRot[1]))); shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]}); shape->setScale({1,cos(float(tmpRot[0]))}); + shape->setFillColor(color*sf::Color(255,255,255,transparency*255)); return shape;} break; @@ -41,6 +42,7 @@ sf::Shape* Caviglia::draw(ReferencePlane plane){ shape->setRotation(sf::Angle(sf::radians(tmpRot[0]))); shape->setPosition({tmpPos[1]+globalPos[1],tmpPos[2]+globalPos[2]}); shape->setScale({1,cos(float(tmpRot[1]))}); + shape->setFillColor(color*sf::Color(255,255,255,transparency*255)); return shape;} break; diff --git a/src/pieces/methods/coscia_class.cpp b/src/pieces/methods/coscia_class.cpp index 4684921..cd510d0 100644 --- a/src/pieces/methods/coscia_class.cpp +++ b/src/pieces/methods/coscia_class.cpp @@ -25,17 +25,13 @@ sf::Shape* Coscia::draw(ReferencePlane plane){ switch (plane) { - case ReferencePlane::XZ: + case ReferencePlane::XZ : case ReferencePlane::XZN: { sf::Shape* shape = shapeXZ; shape->setRotation(sf::Angle(sf::radians(tmpRot[1]))); shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]}); - - //calcolo ridimensionamento dato da cos(x)-> questo per definire l'ancoraggio corretto del pivot shape->setScale({1,cos(float(tmpRot[0]))}); - //shape->setScale({1,(0.5* cos(float(tmpRot[0]*2)))+0.5}); - - + shape->setFillColor(color*sf::Color(255,255,255,transparency*255)); return shape;} break; @@ -44,10 +40,8 @@ sf::Shape* Coscia::draw(ReferencePlane plane){ sf::Shape* shape = shapeYZ; shape->setRotation(sf::Angle(sf::radians(tmpRot[0]))); shape->setPosition({tmpPos[1]+globalPos[1],tmpPos[2]+globalPos[2]}); - - //calcolo ridimensionamento dato da cos(x) -> questo per definire l'ancoraggio corretto del pivot + shape->setFillColor(color*sf::Color(255,255,255,transparency*255)); shape->setScale({1,cos(float(tmpRot[1]))}); - //shape->setScale({1,(0.5* cos(float(tmpRot[1]*2)))+0.5}); return shape;} break; diff --git a/src/pieces/methods/sensore_class.cpp b/src/pieces/methods/sensore_class.cpp index 4f0e82e..19d888d 100644 --- a/src/pieces/methods/sensore_class.cpp +++ b/src/pieces/methods/sensore_class.cpp @@ -60,12 +60,13 @@ sf::Shape* Sensore::draw(ReferencePlane plane){ switch (plane) { - case ReferencePlane::XZ: + case ReferencePlane::XZ : case ReferencePlane::XZN: { sf::Shape* shape = shapeXZ; shape->setRotation(sf::Angle(sf::radians(tmpRot[1]))); shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]}); + shape->setFillColor(color*sf::Color(255,255,255,transparency*255)); return shape;} break; @@ -74,6 +75,7 @@ sf::Shape* Sensore::draw(ReferencePlane plane){ sf::Shape* shape = shapeYZ; shape->setRotation(sf::Angle(sf::radians(tmpRot[0]))); shape->setPosition({tmpPos[1]+globalPos[1],tmpPos[2]+globalPos[2]}); + shape->setFillColor(color*sf::Color(255,255,255,transparency*255)); return shape;} break;