protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { IEntityAccessor accessor = EntityAccessorFactory.Create(EntityAccessorTypes.WebForm); Administrator admin = Administrator.FindAll()[0]; accessor .SetConfig(EntityAccessorOptions.AllFields, true) .SetConfig(EntityAccessorOptions.ItemPrefix, "field") .SetConfig(EntityAccessorOptions.Container, this) .Write(admin, null); Administrator admin2 = new Administrator(); accessor.Read(admin2, null); Debug.Assert(admin.ID == admin2.ID); Debug.Assert(admin.Name == admin2.Name); Debug.Assert(admin2.DisplayName == null); // Label只能写不能读 Debug.Assert(admin2.FriendName == admin2.FriendName); Debug.Assert(admin.Logins == admin2.Logins); Debug.Assert(admin.IsEnable == admin2.IsEnable); Debug.Assert(Math.Abs((admin.LastLogin - admin2.LastLogin).Ticks) < TimeSpan.FromSeconds(1).Ticks); Debug.Assert(admin.RoleID == admin2.RoleID); Debug.Assert(admin.RoleName == admin2.RoleName); //Debug.Assert(admin.SSOUserID == admin2.SSOUserID); } }
/// <summary>1フレーム分の描画処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> /// <param name="graphics">グラフィック データ。</param> public void draw(IEntityAccessor accessor, Graphics graphics) { Score score = (Score)accessor.entity; graphics.spriteBatch.DrawString(graphics.spriteFont, "HISCORE: " + score.highest.ToString(), new Vector2(0, 560), Color.Black); }
/// <summary>1フレーム分の描画処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> /// <param name="graphics">グラフィック データ。</param> public virtual void draw(IEntityAccessor accessor, Graphics graphics) { Character.CharacterAccessor chr = (Character.CharacterAccessor)accessor; graphics.spriteBatch.Draw(graphics.gameThumbnail, chr.position, null, chr.color, 0f, new Vector2(Graphics.RECT * 0.5f), chr.size / Graphics.RECT, SpriteEffects.None, 0f); }
/// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public override void setup(IEntityAccessor accessor) { Character.CharacterAccessor chr = (Character.CharacterAccessor)accessor; chr.color = Color.White; chr.size = SIZE; chr.position = defaultPosition; amount = DEFAULT_AMOUNT; }
/// <summary>1フレーム分の描画処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> /// <param name="graphics">グラフィック データ。</param> public void draw(IEntityAccessor accessor, Graphics graphics) { Score score = (Score)accessor.entity; graphics.spriteBatch.DrawString(graphics.spriteFont, "SCORE: " + score.now.ToString(), new Vector2(300, 560), Color.Black); StateHiScoreOnly.instance.draw(accessor, graphics); }
/// <summary>1フレーム分の描画処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> /// <param name="graphics">グラフィック データ。</param> public void draw(IEntityAccessor accessor, Graphics graphics) { graphics.spriteBatch.DrawString( graphics.spriteFont, "SAMPLE 1", new Vector2(200, 100), Color.Black, 0f, Vector2.Zero, 5f, SpriteEffects.None, 0f); graphics.spriteBatch.DrawString(graphics.spriteFont, "PUSH SPACE KEY.", new Vector2(340, 400), Color.Black); }
public JsClr(IJintVisitor visitor) { _global = visitor.Global; _propertyGetter = visitor.PropertyGetter; _fieldGetter = visitor.FieldGetter; _entityAccessor = visitor.EntityAccessor; value = null; }
/// <summary>1フレーム分の更新処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public void update(IEntityAccessor accessor) { mgrTask.update(); createEnemy(accessor); if (mgrEnemy.hitTest(player) && !player.damage(1)) { accessor.entity.nextState = SceneTitle.instance; } }
/// <summary> /// 1フレーム分の更新を行う時に呼び出されます。 /// </summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public override void update(IEntityAccessor accessor) { if (accessor.counter >= HOMING_LIMIT) { accessor.entity.nextState = StateEnemyStraight.homing; } Character.CharacterAccessor chr = (Character.CharacterAccessor)accessor; initVelocity(chr, chr.velocity.Length()); base.update(accessor); }
/// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public override void setup(IEntityAccessor accessor) { Character.CharacterAccessor chr = (Character.CharacterAccessor)accessor; chr.counter = 0; chr.size = SIZE; chr.color = color; if (!chr.entity.contains) { start(chr); } }
/// <summary> /// 敵機を作成します。 /// </summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> private void createEnemy(IEntityAccessor accessor) { int counter = accessor.counter; if (counter % (int)MathHelper.Max(60 - counter * 0.01f, 1) == 0) { mgrEnemy.create(counter * 0.001f); if (Score.instance.add(10)) { player.damage(-1); } } }
/// <summary>1フレーム分の更新処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public override void update(IEntityAccessor accessor) { Character.CharacterAccessor chr = (Character.CharacterAccessor)accessor; chr.velocity = createVelocity(); Vector2 prev = chr.position; base.update(accessor); if (!chr.entity.contains) { chr.position = prev; chr.velocity = Vector2.Zero; } }
/// <summary>1フレーム分の更新処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public void update(IEntityAccessor accessor) { KeyboardState keyState = KeyStatus.instance.keyboardState; IState nextState = null; if (keyState.IsKeyDown(Keys.Escape)) { nextState = StateEmpty.instance; } if (keyState.IsKeyDown(Keys.Space)) { // ゲーム開始 nextState = ScenePlay.instance; } accessor.entity.nextState = nextState; }
public ExecutionVisitor(Options options, IScriptEngineContext context) { this.scriptEngineContext = context; this.methodInvoker = context.GetMethodInvoker(this);//new CachedMethodInvoker(this); this.propertyGetter = new CachedReflectionPropertyGetter(methodInvoker); this.constructorInvoker = new CachedConstructorInvoker(methodInvoker); this.typeResolver = context.GetTypeResolver();//new CachedTypeResolver(); this.fieldGetter = new CachedReflectionFieldGetter(methodInvoker); _entitiyAccessor = new EntityAccessor(); GlobalScope = new JsObject(); Global = new JsGlobal(this, options); GlobalScope.Prototype = Global as JsDictionaryObject; EnterScope(GlobalScope); CallStack = new Stack<string>(); }
/// <summary>使用Request参数填充entity</summary> /// <param name="entity"></param> protected virtual void FillEntityWithRequest(IEntity entity) { if (entity == null || HttpContext.Current == null || HttpContext.Current.Request == null) { return; } // 借助Http实体访问器,直接把Request参数读入到实体里面 IEntityAccessor accessor = EntityAccessorFactory.Create(EntityAccessorTypes.Http); // 这里的异常不需要暴露到外部 try { accessor.Read(entity); } catch { } }
protected void fieldID_Click(object sender, EventArgs e) { IEntityAccessor accessor = EntityAccessorFactory.Create(EntityAccessorTypes.WebForm); Administrator admin2 = new Administrator(); accessor .SetConfig(EntityAccessorOptions.AllFields, true) .SetConfig(EntityAccessorOptions.ItemPrefix, "field") .SetConfig(EntityAccessorOptions.Container, this) .Read(admin2, null); Debug.Assert(admin2.Name != null); Debug.Assert(admin2.DisplayName == null); // Label只能写不能读 Debug.Assert(admin2.RoleName != null); Debug.Assert(admin2.RoleID != 0); Debug.Assert(admin2.Logins > 0); Debug.Assert(admin2.Password != null); Debug.Assert(admin2.LastLogin - DateTime.MinValue > TimeSpan.FromDays(1)); Debug.Assert(admin2.ID != 0); }
public ClrEntityDescriptor(IEntityAccessor entityAccessor, IGlobal global, JsDictionaryObject owner, string name) : base(owner, name) { _entityAccessor = entityAccessor; _global = global; }
/// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public void teardown(IEntityAccessor accessor) { }
/// <summary>1フレーム分の描画処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> /// <param name="graphics">グラフィック データ。</param> public void draw(IEntityAccessor accessor, Graphics graphics) { mgrTask.draw(graphics); }
/// <summary>1フレーム分の更新処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public virtual void update(IEntityAccessor accessor) { Character.CharacterAccessor chr = (Character.CharacterAccessor)accessor; chr.position += chr.velocity; }
/// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public abstract void setup(IEntityAccessor accessor);
public static TW Create(IEntityAccessor <T> accessor, ITransactionContextBase context) => (TW)Activator.CreateInstance(typeof(TW), accessor, context);
/// <summary>1フレーム分の更新処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public void update(IEntityAccessor accessor) { }
public TestWrapper(IEntityAccessor <Entity> accessor, ITransactionContextBase context) : base(accessor, context) { }
/// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public void teardown(IEntityAccessor accessor) { mgrTask.reset(); Score.instance.reset(); }
/// <summary>1フレーム分の描画処理を実行します。</summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> /// <param name="graphics">グラフィック データ。</param> public void draw(IEntityAccessor accessor, Graphics graphics) { }
/// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public void setup(IEntityAccessor accessor) { Score.instance.drawNowScore = false; }
/// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// <param name="accessor">この状態を適用されたオブジェクトへのアクセサ。</param> public void setup(IEntityAccessor accessor) { }
public EntityWrapper(IEntityAccessor <T> accessor, ITransactionContextBase context) : base(accessor) { Context = context ?? throw new ArgumentNullException(nameof(context)); }
public TestGenericWrapper(IEntityAccessor <T> accessor, ITransactionContextBase context) : base(accessor, context) { }
public EntityAccessorWrapper(IEntityAccessor <T> accessor) { _accessor = accessor ?? throw new ArgumentNullException(nameof(accessor)); }