Example #1
0
        /*-------------------------------------------------------------------------
         * 描画 名前
         * ---------------------------------------------------------------------------*/
        private void draw_name_proc(Vector2 offset, LoopXImage image)
        {
            List <ShareShipListBB> list = ShareListBB;

            D3dBB2d.CullingRect crect = new D3dBB2d.CullingRect(image.Device.client_size);
            d3d_textured_font   font  = m_lib.device.textured_font;

            foreach (ShareShipListBB bb in list)
            {
                // バウンディングボックスで画面外かどうか調べる
                if (bb.IsCulling(offset, image.ImageScale, crect))
                {
                    continue;
                }

                foreach (ShareRoutes.ShareShip s in bb.List)
                {
                    if (s.Position.X < 0)
                    {
                        continue;
                    }
                    if (s.Position.Y < 0)
                    {
                        continue;
                    }

                    // 地図座標に変換
                    Vector2 pos0 = transform.game_pos2_map_pos(new Vector2(s.Position.X, s.Position.Y), image);
                    Vector2 pos  = image.GlobalPos2LocalPos(pos0, offset);

                    // 名前
                    Rectangle rect = font.MeasureText(s.Name, Color.Black);
                    rect.Width  += 4;
                    rect.Height += 4;

                    int     halh_x = rect.Width / 2;
                    Vector3 p      = new Vector3(pos.X - halh_x - 2, pos.Y - 3, 0.31f);
                    Vector2 size   = new Vector2(rect.Width, rect.Height);
                    m_lib.device.DrawFillRect(p, size, Color.FromArgb(128, 255, 255, 255).ToArgb());
                    m_lib.device.DrawLineRect(p, size, Color.Gray.ToArgb());
                    font.DrawTextC(s.Name, new Vector3(pos.X, pos.Y + 1, 0.31f), Color.Black);
                }
            }
        }
Example #2
0
        /*-------------------------------------------------------------------------
         * 그리기
         * ---------------------------------------------------------------------------*/
        private void draw_proc(Vector2 offset, LoopXImage image)
        {
            float size = image.ImageScale;

            if (size < 0.5)
            {
                size = 0.5f;
            }
            else if (size > 1)
            {
                size = 1;
            }
            Vector2 scale = new Vector2(size, size);

            D3dBB2d.CullingRect rect = new D3dBB2d.CullingRect(image.Device.client_size);
            m_lib.device.sprites.BeginDrawSprites(m_lib.icons.texture, offset, image.ImageScale, scale);
            foreach (DataListBB i in m_draw_list)
            {
                // 바운딩 박스で화면외かどうか조사
                if (i.IsCulling(offset, image.ImageScale, rect))
                {
                    continue;
                }
#if DRAW_POPUPS_BOUNDINGBOX
                d3d_bb2d.Draw(i.bb, image.device, 0.5f, offset, image.scale, Color.Blue.ToArgb());
#endif
                foreach (Data p in i.List)
                {
                    int index = p.IconIndex;
                    if (index < 0)
                    {
                        index = 0;
                    }
                    if (index > (int)icon_index.memo_4)
                    {
                        index = (int)icon_index.memo_4;
                    }

                    Vector3 pos = new Vector3(p.Position.X, p.Position.Y, 0.8f);
                    m_lib.device.sprites.AddDrawSpritesNC(pos, m_lib.icons.GetIcon(icons.icon_index.web_icon_0 + index));
                }
            }
            m_lib.device.sprites.EndDrawSprites();
        }
Example #3
0
        /*-------------------------------------------------------------------------
         * 描画
         * ---------------------------------------------------------------------------*/
        private void draw_proc(Vector2 offset, LoopXImage image)
        {
            List <ShareShipListBB> list = ShareListBB;

            D3dBB2d.CullingRect rect = new D3dBB2d.CullingRect(image.Device.client_size);
            foreach (ShareShipListBB bb in list)
            {
                // バウンディングボックスで画面外かどうか調べる
                if (bb.IsCulling(offset, image.ImageScale, rect))
                {
                    continue;
                }

#if DRAW_POPUPS_BOUNDINGBOX
                d3d_bb2d.Draw(bb.bb, image.device, 0.5f, offset, image.scale, Color.Red.ToArgb());
#endif
                foreach (ShareRoutes.ShareShip s in bb.List)
                {
                    if (s.Position.X < 0)
                    {
                        continue;
                    }
                    if (s.Position.Y < 0)
                    {
                        continue;
                    }

                    // 地図座標に変換
                    Vector2 pos0 = transform.game_pos2_map_pos(transform.ToVector2(s.Position), image);
                    Vector2 pos  = image.GlobalPos2LocalPos(pos0, offset);

                    // 船
                    icons.icon_index index = (s.State == State.in_the_sea)? icons.icon_index.myship: icons.icon_index.share_city;
                    m_lib.device.sprites.AddDrawSprites(new Vector3(pos.X, pos.Y, 0.31f), m_lib.icons.GetIcon(index));
                }
            }
        }