pearkes / gethub

A utility for cloning and fetching your remote git repositories from GitHub.
MIT License
217 stars 266 forks source link

how to shoot on direction of ship asteroids sfml #40

Open mahmoud31415 opened 4 years ago

mahmoud31415 commented 4 years ago

include <SFML/Graphics.hpp>

include

include

include

include <SFML/Audio.hpp>

include

include

using namespace std;

float d = 0.017453f;

float dd = 0.017453f; int main() { sf::Font font; if (!font.loadFromFile("/system/fonts/Roboto-Regular.ttf")) return EXIT_FAILURE;

int wx=1080,wy=2340; sf::RenderWindow app(sf::VideoMode(wx,wy),"my app");

float x=500,y=300; float xx=xx,yy=y; float dy=0,dx=0,angle=0; float dyy=0,dxx=0,anglee=0; bool go=false; int l=0; //////// the Ship sf::CircleShape ship(50,3); ship.setOutlineThickness(5); ship.setFillColor(sf::Color(0,0,0)); ship.setScale(1,1.4); ship.setOrigin(25,25); //////The buttons sf::CircleShape but(50,3); but.setScale(1,1.4); but.setFillColor(sf::Color(200,200,0)); vectorbutt(5); for(int i=0;i<5;i++) { butt[i]=but; butt[0].setPosition(200,100); butt[1].setPosition(150,350); butt[1].rotate(45); butt[2].setPosition(200,2000); butt[2].rotate(-90); } /////

//////////the fire

sf::CircleShape f(10);

vectorfire; fire.push_back(sf::CircleShape (f));

while(app.isOpen()) { sf::Event event; while(app.pollEvent(event)) { if(event.type == sf::Event::Closed) app.close(); } butt[3].setPosition(1000,500); butt[4].setPosition(1000,700);

for(int i=0;i<2;i++) if (event.type == sf::Event::TouchMoved) {

sf::Vector2i touchpos = sf::Touch::getPosition(0); fire.push_back(sf::CircleShape (f));

f.setPosition(ship.getPosition().x,ship.getPosition().y); l+=1; }

xx+=sin(angle)20; yy+=cos(angle)20; for(int j=0;j<fire.size();j+=1) {

// fire[j].setPosition(xx,yy); anglee=sin(angle); fire[j].move(anglee20,cos(angle)20); //fire[j].setPosition();

}

for(int i=0;i<=1;i++) if(sf::Touch::isDown(i)) { sf::Vector2i touchpo = sf::Touch::getPosition(1); butt[4].setPosition(touchpo.x,touchpo.y); sf::Vector2i touchpos = sf::Touch::getPosition(0); go=false; butt[3].setPosition(touchpos.x,touchpos.y);

}

if(butt[3].getGlobalBounds().intersects(butt[0].getGlobalBounds()))angle-=3; if(butt[3].getGlobalBounds().intersects(butt[1].getGlobalBounds()))angle+=3; if(butt[3].getGlobalBounds().intersects(butt[2].getGlobalBounds())||butt[4].getGlobalBounds().intersects(butt[2].getGlobalBounds()))go=true;

else go=false; if(butt[4].getGlobalBounds().intersects(butt[0].getGlobalBounds()))angle-=3; if(butt[4].getGlobalBounds().intersects(butt[1].getGlobalBounds()))angle+=3;

if(go) { dxx+=cos(angleedd)10; dyy+=sin(angleedd)10;

dx+=cos(angled)0.2; dy+=sin(angled)0.2;

} else { ////سرعة التوقف dx=0.99; dy=0.99;

}

int max=15; float sp=sqrt(dxdx+dydy); if(sp>max) { dx=max/sp; dy=max/sp; }

x+=dx; y+=dy;

if(x>1100)x=-100; if(y>2400)y=-100; if(x<-100)x=1100; if(y<-100)y=2400;

ship.setPosition(x,y); ship.setRotation(angle+90);

///////////// stringstream ss;
ss<< ship.getRotation(); string s; ss>>s; sf::Text text(s, font, 50); text.setPosition(100,5);

////shoing iny thing here draw

for(int i=0;i<fire.size();i++) { app.draw(fire[i]);

} for(int i=0;i<3;i++) app.draw(butt[i]); app.draw(text); app.draw(ship); app.display(); } return 0; }