本文整理汇总了C++中SpaceStation::IsGroundStation方法的典型用法代码示例。如果您正苦于以下问题:C++ SpaceStation::IsGroundStation方法的具体用法?C++ SpaceStation::IsGroundStation怎么用?C++ SpaceStation::IsGroundStation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SpaceStation
的用法示例。
在下文中一共展示了SpaceStation::IsGroundStation方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: l_spacestation_get_ground_position
/*
* Method: GetGroundPosition
*
* Get latitude, longitude of a station on the ground or nil if this is an orbital station
*
* > latitude, longitude = station:GetGroundPosition()
*
* Returns:
*
* latitude - the latitude of the station in radians
* longitude - the longitude of the station in radians
*
* Examples:
*
* > -- Get ground position of L.A. when starting on Earth
* > local la = Game.player:GetDockedWith()
* > local lat, long = la:GetGroundPosition()
* > lat = math.rad2deg(lat)
* > long = math.rad2deg(long)
*
* Availability:
*
* July 2013
*
* Status:
*
* experimental
*/
static int l_spacestation_get_ground_position(lua_State *l)
{
SpaceStation *s = LuaObject<SpaceStation>::CheckFromLua(1);
if (!s->IsGroundStation())
return 0;
vector3d pos = s->GetPosition();
double latitude = atan2(pos.y, sqrt(pos.x*pos.x + pos.z * pos.z));
double longitude = atan2(pos.x, pos.z);
lua_pushnumber(l, latitude);
lua_pushnumber(l, longitude);
return 2;
}
示例2: Start
void Pi::Start()
{
WorldView *view = new WorldView();
Gui::Fixed *splash = new Gui::Fixed(Gui::Screen::GetWidth(), Gui::Screen::GetHeight());
Gui::Screen::AddBaseWidget(splash, 0, 0);
splash->SetTransparency(true);
const float w = Gui::Screen::GetWidth() / 2;
const float h = Gui::Screen::GetHeight() / 2;
const int OPTS = 5;
Gui::ToggleButton *opts[OPTS];
opts[0] = new Gui::ToggleButton(); opts[0]->SetShortcut(SDLK_1, KMOD_NONE);
opts[1] = new Gui::ToggleButton(); opts[1]->SetShortcut(SDLK_2, KMOD_NONE);
opts[2] = new Gui::ToggleButton(); opts[2]->SetShortcut(SDLK_3, KMOD_NONE);
opts[3] = new Gui::ToggleButton(); opts[3]->SetShortcut(SDLK_4, KMOD_NONE);
opts[4] = new Gui::ToggleButton(); opts[4]->SetShortcut(SDLK_5, KMOD_NONE);
splash->Add(opts[0], w, h-64);
splash->Add(new Gui::Label("New game starting on Earth"), w+32, h-64);
splash->Add(opts[1], w, h-32);
splash->Add(new Gui::Label("New game starting on Epsilon Eridani"), w+32, h-32);
splash->Add(opts[2], w, h);
splash->Add(new Gui::Label("New game starting on debug point"), w+32, h);
splash->Add(opts[3], w, h+32);
splash->Add(new Gui::Label("Load a saved game"), w+32, h+32);
splash->Add(opts[4], w, h+64);
splash->Add(new Gui::Label("Quit"), w+32, h+64);
splash->ShowAll();
int choice = 0;
Uint32 last_time = SDL_GetTicks();
float _time = 0;
do {
Pi::HandleEvents();
Render::PrepareFrame();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
float fracH = 1.0 / Pi::GetScrAspect();
glFrustum(-1, 1, -fracH, fracH, 1.0f, 10000.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
SDL_ShowCursor(1);
SDL_WM_GrabInput(SDL_GRAB_OFF);
draw_intro(view, _time);
Render::PostProcess();
Gui::Draw();
Render::SwapBuffers();
Pi::frameTime = 0.001*(SDL_GetTicks() - last_time);
_time += Pi::frameTime;
last_time = SDL_GetTicks();
// poll ui instead of using callbacks :-J
for (int i=0; i<OPTS; i++) if (opts[i]->GetPressed()) choice = i+1;
} while (!choice);
splash->HideAll();
Gui::Screen::RemoveBaseWidget(splash);
delete splash;
delete view;
InitGame();
if (choice == 1) {
/* Earth start point */
SBodyPath path(0,0,0);
Space::DoHyperspaceTo(&path);
//Frame *pframe = *(++(++(Space::rootFrame->m_children.begin())));
//player->SetFrame(pframe);
// XXX there isn't a sensible way to find stations for a planet.
SpaceStation *station = 0;
for (Space::bodiesIter_t i = Space::bodies.begin(); i!=Space::bodies.end(); i++) {
if ((*i)->IsType(Object::SPACESTATION)) { station = (SpaceStation*)*i; break; }
}
assert(station);
player->SetPosition(vector3d(0,0,0));
player->SetFrame(station->GetFrame());
player->SetDockedWith(station, 0);
MainLoop();
} else if (choice == 2) {
/* Epsilon Eridani start point */
SBodyPath path(1,0,2);
Space::DoHyperspaceTo(&path);
// XXX there isn't a sensible way to find stations for a planet.
SpaceStation *station = 0;
for (Space::bodiesIter_t i = Space::bodies.begin(); i!=Space::bodies.end(); i++) {
if ((*i)->IsType(Object::SPACESTATION)) {
station = (SpaceStation*)*i;
if (!station->IsGroundStation()) break;
}
}
assert(station);
player->SetPosition(vector3d(0,0,0));
player->SetFrame(station->GetFrame());
//.........这里部分代码省略.........
示例3: l_spacestation_attr_is_ground_station
/*
* Attribute: isGroundStation
*
* true if station is on the ground, false if its an orbital
*
* Availability:
*
* alpha 30
*
* Status:
*
* experimental
*/
static int l_spacestation_attr_is_ground_station(lua_State *l)
{
SpaceStation *s = LuaObject<SpaceStation>::CheckFromLua(1);
lua_pushboolean(l, s->IsGroundStation());
return 1;
}