Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
shot/shot.cpp
- Committer:
- el19zf
- Date:
- 2020-04-14
- Revision:
- 5:6774b7272e85
- Parent:
- 4:b12a49f0b730
- Child:
- 6:dce38fe4e092
File content as of revision 5:6774b7272e85:
#include "shot.h" const int shots[4][3][3] = { { {1,1,0}, {1,1,0}, {0,0,1}, }, { {1,0,0}, {1,1,1}, {1,0,0}, }, { {1,1,1}, {0,1,0}, {0,1,0}, }, { {0,1,0}, {1,1,1}, {0,1,0}, } }; shot::shot() { } shot::~shot() { } void shot::init(N5110 &lcd) { _p.resize(50); int index = rand_type(); for (std::vector<shot_posandtype>::iterator i = _p.begin(); i < _p.end(); i++) { int num_dir = rand()%4; if (num_dir == 0) { (*i).x = (WIDTH/2-1); (*i).y = 0; } if (num_dir == 1) { (*i).x = (WIDTH/2-1); (*i).y = (HEIGHT-3); } if (num_dir == 2) { (*i).x = 0; (*i).y = (HEIGHT/2-1);} if (num_dir == 3) { (*i).x = (WIDTH-3); (*i).y = (HEIGHT/2-1);} printf("pos = %d,%d\n",(*i).x,(*i).y); } for (std::vector<shot_posandtype>::iterator i = _p.begin(); i < _p.end(); i++) { (*i).type = rand() % 4; (*i).dir = rand() % 8; lcd.drawSprite((*i).x,(*i).y,3,3,(int*)shots[(*i).type]); } } int shot::rand_dir() { //srand(time(NULL)); /*int d_num = rand() % 8; //randomise initial direction if (d_num == 0) { d = N; } else if (d_num == 1) { d = NE; } else if (d_num == 2) { d = E; } else if (d_num == 3) { d = SE; } else if (d_num == 4) { d = S; } else if (d_num == 5) { d = SW; } else if (d_num == 6) { d = W; } else { d = NW;}*/ //int d = rand() % 4;//randomise initial direction //return d; } int shot::rand_type() { srand(time(NULL)); int type = rand() % 4;//set 4 type of shot return type; } void shot::gen_shot() { /*int num_dir = rand_type();//up down left right if (num_dir == 0) { _p.x = (WIDTH/2-1); _p.y = 0; //up //if(dir == 1) {_p.x -= 1; _p.y +=1; }else //if(dir == 2) {_p.x += 0; _p.y +=1; }else //{_p.x += 1; _p.y +=1; } } if (num_dir == 1) { _p.x = (WIDTH/2-1); _p.y = (HEIGHT-3);} //down if (num_dir == 2) { _p.x = 0; _p.y = (HEIGHT/2-1);} //left if (num_dir == 3) { _p.x = (WIDTH-3); _p.y =(HEIGHT/2-1);} //right //printf("random num = %d\n",num_dir);*/ _p.resize(10); int index = rand_type(); for (std::vector<shot_posandtype>::iterator i = _p.begin(); i < _p.end(); i++) { int num_dir = rand()%4; if (num_dir == 0) { (*i).x = (WIDTH/2-1); (*i).y = 0; } if (num_dir == 1) { (*i).x = (WIDTH/2-1); (*i).y = (HEIGHT-3); } if (num_dir == 2) { (*i).x = 0; (*i).y = (HEIGHT/2-1);} if (num_dir == 3) { (*i).x = (WIDTH-3); (*i).y = (HEIGHT/2-1);} printf("pos = %d,%d\n",(*i).x,(*i).y); } } void shot::update(N5110 &lcd) { for (std::vector<shot_posandtype>::iterator i = _p.begin(); i < _p.end(); i++) { if ((*i).dir == 0) { (*i).x +=0; (*i).y +=1; } else if ((*i).dir == 1) { (*i).x +=1; (*i).y +=1; } else if ((*i).dir == 2) { (*i).x +=1; (*i).y +=0; } else if ((*i).dir == 3) { (*i).x +=1; (*i).y -=1; } else if ((*i).dir == 4) { (*i).x +=0; (*i).y -=1; } else if ((*i).dir == 5) { (*i).x -=1; (*i).y -=1; } else if ((*i).dir == 6) { (*i).x -=1; (*i).y -=0; } else if ((*i).dir == 7) { (*i).x -=1; (*i).y +=1; } lcd.drawSprite((*i).x,(*i).y,3,3,(int*)shots[(*i).type]); } } void shot::draw(N5110 &lcd){ /*for (std::vector<shot_posandtype>::iterator i = _p.begin(); i < _p.end(); i++) { (*i).type = rand() % 4; (*i).dir = rand() % 8; lcd.drawSprite((*i).x,(*i).y,3,3,(int*)shots[(*i).type]); //if ((*i).type == 1) { lcd.drawSprite((*i).x,(*i).y,3,3,(int*)shot2);} //if ((*i).type == 2) { lcd.drawSprite((*i).x,(*i).y,3,3,(int*)shot3);} //if ((*i).type == 3) { lcd.drawSprite((*i).x,(*i).y,3,3,(int*)shot4);} }*/ }