csharp GraphicTrackerを使用してRPG风シンボルの移动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp GraphicTrackerを使用してRPG风シンボルの移动相关的知识,希望对你有一定的参考价值。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.EngineCore;
namespace MappingApplication_CS
{
public partial class Form1 : Form
{
double g_X;
double g_Y;
IGraphicTracker g_pGraphicTracker;
IGraphicTrackerSymbol g_pGraphicTrackerSymbol1;
IGraphicTrackerSymbol g_pGraphicTrackerSymbol2;
int g_ID;
bool g_Flag;
public Form1()
{
InitializeComponent();
//GraphicTrackerの初期化
g_pGraphicTracker = new GraphicTrackerClass();
g_pGraphicTracker.Initialize(axMapControl1.Map as IBasicMap);
string path = @".\saga.png";
string path2 = @".\saga2.png";
g_pGraphicTrackerSymbol1 = g_pGraphicTracker.CreateSymbolFromPath(path, path);
g_pGraphicTrackerSymbol2 = g_pGraphicTracker.CreateSymbolFromPath(path2, path2);
IPoint pPoint = new PointClass();
pPoint.PutCoords(0, 0);
g_X = 1278000;
g_Y = 341000;
g_ID = g_pGraphicTracker.Add(pPoint as IGeometry, g_pGraphicTrackerSymbol1);
g_pGraphicTracker.SetOrientationMode(g_ID, esriGTOrientation.esriGTOrientationFixed);
//Timerイベント
Timer timer = new Timer();
timer.Interval = 1000;
timer.Tick += new EventHandler(timer1_Tick);
timer.Start();
}
//現在のマウスカーソル位置の座標をステータスバーに表示する
private void axMapControl1_OnMouseMove(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseMoveEvent e)
{
string x = System.Convert.ToString(e.mapX);
string y = System.Convert.ToString(e.mapY);
toolStripStatusLabel1.Text = "X: " + x + " " + "Y: " + y;
}
//タイマー イベント ハンドラ
private void timer1_Tick(object sender, EventArgs e)
{
if (g_Flag == true)
{
g_pGraphicTracker.SetSymbol(0, g_pGraphicTrackerSymbol1);
g_Flag = !g_Flag;
}
else
{
g_pGraphicTracker.SetSymbol(0, g_pGraphicTrackerSymbol2);
g_Flag = !g_Flag;
}
g_pGraphicTracker.MoveTo(g_ID, g_X, g_Y, 0.0);
}
private void axMapControl1_OnKeyDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnKeyDownEvent e)
{
switch (e.keyCode)
{
//8キー
case (int)104:
g_Y += 50;
break;
//2キー
case (int)98:
g_Y -= 50;
break;
//4キー
case (int)100:
g_X -= 50;
break;
//6キー
case (int)102:
g_X += 50;
break;
}
}
}
}
以上是关于csharp GraphicTrackerを使用してRPG风シンボルの移动的主要内容,如果未能解决你的问题,请参考以下文章
csharp 图片框の中で余白を考虑して计算
csharp 文字列を指定した长さで分割する。
csharp FPSを意识したループ处理の部分コード
csharp 透过した色を绮丽に表示できるパネル
csharp [ClosedXMLでExcel帐票] Excelで帐票のテンプレートを作成しておくことで,Excel帐票を作成します。ヘッダやフッタはExcelに记载した$ {templatename
csharp 指定したの型接口をすべて取得するメソッド