본문 바로가기

동방프로젝트

남방 임시

#include "Enemy.h"
#include <functional>
#include <windows.h>

//water setup
void Enemy::setup(float max_enemy_shoot_interval, 
ofImage * enemy_img) 
{
img = enemy_img;
width = img->getWidth();
height = img->getHeight();
pos.x = middlepoint1;
pos.y = middlepoint2 - 4 * height;
speed = 8;
// amplitude = ofRandom(max_enemy_amplitude);
shoot_interval = ofRandom(0.5, max_enemy_shoot_interval);

start_shoot = ofGetElapsedTimef();
backnforth = 0;
enemymoving = -1;
}

void Enemy::update() {
if (enemymoving == -1)
{
pos.y += speed;
// pos.y += amplitude * cos(ofGetElapsedTimef());
// pos.x += amplitude * sin(ofGetElapsedTimef());
if (abs(pos.y - middlepoint2) < 8)
enemymoving = 0;
}

actualTime = ofGetElapsedTimef();

if (enemymoving != -1)
{
// enemymoving = 1;
//when_tomove = ofRandom(5000, 5200);

// printf("%f, %d\n", actualTime, enemymoving);
if ((int)actualTime % 5 == 0 && enemymoving == 0)
{
// printf("%f\n", actualTime);
movex = ofRandom(-100, 100);
movey = ofRandom(-30, 30);
// movex = ofRandom(-middlepoint1 / 5,
// middlepoint1 / 5);
// movey = ofRandom(-middlepoint2 / 10,
// middlepoint2 / 10);
motox = pos.x;
motoy = pos.y;
enemymoving = 1;
}

if (enemymoving == 1)
{
if (movex < 0)
movex_speed = -1;
else
movex_speed = 1;

if (movey < 0)
movey_speed = -1;
else
movey_speed = 1;

// printf("%f, %f, %f, %f,  %d %d\n",
// abs(motox-movex), pos.x,
// abs(motoy - movey), pos.y,
// movex_speed, movey_speed);
// while (abs(motox+movex-pos.x) > 1 &&
// abs(motoy+movey-pos.y) > 1)
if(abs(motox + movex - pos.x) > 1)
{
pos.x += movex_speed;
}
if (abs(motoy + movey - pos.y) > 1)
{
pos.y += movey_speed;
}


// printf("%f %f\n", abs(motox + movex - pos.x),
// abs(motoy + movey - pos.y));
if (abs(motox + movex - pos.x) <= 1 ||
abs(motoy + movey - pos.y) <= 1)
{
enemymoving = 0;
}
}
checkBoundary();
}
}

void Enemy::checkBoundary() 
{
if (pos.x < leftscreen + (img->getWidth()) / 2)
pos.x = leftscreen + (img->getWidth()) / 2;
if (pos.x > leftscreen + rightscreen - (img->getWidth()) / 2)
pos.x = leftscreen + rightscreen - (img->getWidth()) / 2;
if (pos.y < upscreen + (img->getHeight()) / 2)
pos.y = upscreen + (img->getHeight()) / 2;
if (pos.y > upscreen + downscreen - (img->getHeight()) / 2)
pos.y = upscreen + downscreen - (img->getHeight()) / 2;
}

void Enemy::draw(){
img->draw(pos.x - width / 2, pos.y - width / 2);
}

bool Enemy::time_to_shoot()
{
if (ofGetElapsedTimef() - start_shoot > shoot_interval)
{
start_shoot = ofGetElapsedTimef();
// printf("?? %f\n", start_shoot);
return true;
}

return false;
}

//////////////////

 

 

'동방프로젝트' 카테고리의 다른 글

c2005 link 문제  (0) 2020.11.25
남방요척몽 깃허브 주소  (2) 2020.09.08
갤러리  (4) 2020.08.19
스피너  (0) 2020.08.19
실습11-1)그리드뷰  (0) 2020.08.19