mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-23 21:07:17 +00:00
flock following works better with animations
This commit is contained in:
parent
5e0bd401fc
commit
99fc9085ee
@ -191,21 +191,24 @@ namespace flocking {
|
|||||||
bool turn(int delta) {
|
bool turn(int delta) {
|
||||||
if(!on) return false;
|
if(!on) return false;
|
||||||
if(kind == kFlocking) simulate(delta), timetowait = 0;
|
if(kind == kFlocking) simulate(delta), timetowait = 0;
|
||||||
|
|
||||||
|
if(follow) {
|
||||||
|
|
||||||
if(follow == 1) {
|
if(follow == 1)
|
||||||
// follow bird0
|
View = spin(90 * degree) * inverse(vdata[0].m->pat) * View;
|
||||||
View = spin(90 * degree) * inverse(vdata[0].m->pat) * View;
|
|
||||||
optimizeview();
|
if(follow == 2) {
|
||||||
playermoved = false;
|
using namespace hyperpoint_vec;
|
||||||
}
|
hyperpoint h = Hypc;
|
||||||
|
for(int i=0; i<N; i++) h += tC0(vdata[i].m->pat);
|
||||||
|
h = normalize(h);
|
||||||
|
View = gpushxto0(h) * View;
|
||||||
|
}
|
||||||
|
|
||||||
if(follow == 2) {
|
|
||||||
using namespace hyperpoint_vec;
|
|
||||||
hyperpoint h = Hypc;
|
|
||||||
for(int i=0; i<N; i++) h += tC0(vdata[i].m->pat);
|
|
||||||
h = normalize(h);
|
|
||||||
View = gpushxto0(h) * View;
|
|
||||||
optimizeview();
|
optimizeview();
|
||||||
|
centerover.at = viewctr.at->c7;
|
||||||
|
compute_graphical_distance();
|
||||||
|
gmatrix.clear();
|
||||||
playermoved = false;
|
playermoved = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user