本文整理汇总了C++中Case::getI方法的典型用法代码示例。如果您正苦于以下问题:C++ Case::getI方法的具体用法?C++ Case::getI怎么用?C++ Case::getI使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Case
的用法示例。
在下文中一共展示了Case::getI方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pv
/**
Affiche le monstre la ou il doit etre sur la case, avec le bon angle et la bonne position
affiche également les points de vie du moob
*/
void afficheMonstre (sf::RenderWindow &App, sf::Sprite &SpriteMoob ,Monstre* monMoob,int cote, int offSetX, int offSetY , std::list<Tour*> &listTour)
{
using namespace std;
Case* caseMoob = monMoob->CaseCourante();
drawHexagoneIJ ( caseMoob->getI() , caseMoob->getJ(), SpriteMoob, cote, offSetX, offSetY);
//sf::Shape pv = sf::RectangleShape (0,0, 0+monMoob->getPV()/2 ,0,5,sf::Color::Black);
sf::RectangleShape pv (sf::Vector2f(5,monMoob->getPV()/2));
pv.setFillColor(sf::Color::Black);
/// Moche
drawHexagoneIJ ( caseMoob->getI() , caseMoob->getJ(), pv, cote, offSetX, offSetY);
// on centre le moob
int etape;
Direction dtion = monMoob->quelleDirection(etape);
// on bouge en fonction de la direction
double moobOffSetX=0,moobOffSetY=0,moobAvancement;
if ( etape == 0)
{
moobAvancement = ((1000-monMoob->getAvancement())/1000)*cote*(sqrt(3));
}
else
{
moobAvancement = ((500-monMoob->getAvancement())/1000)*cote*(sqrt(3));
}
double angle = 0;
switch (dtion)
{
case Est : {
moobOffSetX = moobAvancement;
moobOffSetY =0;
angle = -90;
if ( etape == 0)
{
moobOffSetX -= (sqrt(3)/2) *cote;
}
break;}
case NordEst : {
moobOffSetX = moobAvancement / 2 ;
moobOffSetY = -moobAvancement * (sqrt(3)/2) ;
if ( etape == 0)
{
moobOffSetX -= (sqrt(3)/2) *cote /2;
moobOffSetY += (sqrt(3)/2) *cote *(sqrt(3)/2);
}
angle = -30;
break;}
case NordOuest : {
moobOffSetX = -moobAvancement / 2 ;
moobOffSetY = -moobAvancement * (sqrt(3)/2) ;
if ( etape == 0)
{
moobOffSetX += (sqrt(3)/2) *cote /2;
moobOffSetY += (sqrt(3)/2) *cote *(sqrt(3)/2);
}
angle = 30;
break;}
case Ouest : {
moobOffSetX = - moobAvancement;
moobOffSetY = 0;
if ( etape == 0)
{
moobOffSetX += (sqrt(3)/2) *cote;
}
angle = 90;
break;}
case SudOuest : {
angle = 160;
moobOffSetX = -moobAvancement / 2 ;
moobOffSetY = moobAvancement * (sqrt(3)/2) ;
if ( etape == 0)
{
moobOffSetX += (sqrt(3)/2) *cote /2;
moobOffSetY -= (sqrt(3)/2) *cote *(sqrt(3)/2);
}
break;}
case SudEst: {
angle = -160;
moobOffSetX = moobAvancement / 2 ;
moobOffSetY = moobAvancement * (sqrt(3)/2) ;
if ( etape == 0)
{
moobOffSetX -= (sqrt(3)/2) *cote /2;
//.........这里部分代码省略.........
示例2: main
//.........这里部分代码省略.........
if ( ! boost::geometry::disjoint(cursorInView,getRing(bouton2)))
{
bouton2.setFillColor(overColor+bouton2couleur) ;
}
// boucle event
sf::Event event;
while (window.getWindow().pollEvent(event))
{
// Close window : exit
if (event.type == sf::Event::Closed)
{
// semble buger
saveMap(terrain,fichier);
window.getWindow().close();
}
if (event.type == sf::Event::MouseButtonReleased )
{
cursorInView = window.getCursorInView(EnumElementsWindow::Menu, cursorInWindow);
if ( ! boost::geometry::disjoint(cursorInView,getRing(bouton1)))
{
cout << "bouton 1";
}
if ( ! boost::geometry::disjoint(cursorInView,getRing(bouton2)))
{
cout << "bouton2";
}
}
if (event.type == sf::Event::MouseButtonPressed)
{
if (event.mouseButton.button == sf::Mouse::Right)
{
// si on est sur un case connue du terrain
if ( nullptr != terrain.getCase(ijSelection.x,ijSelection.y) )
{
std::cout << terrain.getCase(ijSelection.x,ijSelection.y) <<endl;
vectConstruct.push_back(unique_ptr<Cible>(new Cible(terrain.getCase(ijSelection.x,ijSelection.y),100)));
std::cout << "__" << vectConstruct.size() << "__";
}
}
}
}
if ( sf::Mouse::isButtonPressed(sf::Mouse::Left))
{
if ( vectConstruct.size() > 0)
vectConstruct.erase(vectConstruct.begin());
}
// affichage de la map
for ( Case& caseRef : terrain )
{
// affichage des case
placePositionableIJ ( caseRef.getI() , caseRef.getJ() , polygon, window.getCote());
window.draw(polygon,EnumElementsWindow::Jeu);
text.setString(patch::to_string(caseRef.getI())+","+patch::to_string(caseRef.getJ()));
placePositionableIJ ( caseRef.getI() ,caseRef.getJ() , text, window.getCote());
window.draw(text,EnumElementsWindow::Jeu);
}
for (auto &positio : vectConstruct )
{
Case* uneCase = positio->getPosition();
if ( nullptr != uneCase )
{
placePositionableIJ ( uneCase->getI() , uneCase->getJ() , polygonBleu, window.getCote());
window.draw(polygonBleu,EnumElementsWindow::Jeu);
}
}
int cpt = 0;
for (Case& uneCase : terrain )
{
if ( uneCase.getOccupe() )
cpt++;
}
// placePositionableIJ ( ijSelection.x ,ijSelection.y, *PolygonRose, cote, offSetX, offSetY);
//app.draw(*PolygonRose);
window.draw(fondView,EnumElementsWindow::Menu);
window.draw(bouton1,EnumElementsWindow::Menu);
window.draw(bouton2,EnumElementsWindow::Menu);
window.getWindow().display();
}
return 0;
}