制作小型迷你C#和自定义框架

时间:2016-02-04 17:10:01

标签: c# xna

来自stackoverflow的人们,

我正在制作一个小型迷你游戏,其中包含一个与C#配合使用的自定义框架,它基于XNA(如果你能帮助我,可以用xna-way编写)。

基本上我有几个圈子,比方说6,我需要“标记”第一个,之后点击透明的一个我需要创建另一个,但点击最后一个标记后它将返回并删除一个(图片更容易理解)。

我会上传一张小图片来说明(很难解释,我不是母语为英语的人)。

我相信我必须使用一个数组并根据顺序标记它,但我仍然没有丢失:(

很抱歉,如果问得太多,我一整天都在努力! ps:这是一排! 图片: http://imgur.com/B2zdf5q

更新:这是迄今为止我所拥有的。现在它正在工作!!

 private void CircleController()
{
    Debug.Log("Marked circles:" + markedCircles);
    Debug.Log("Sum Circles: " + sumCircle);

    List<CGameObject> mArray = CCircleManager.inst().getGameObjectList();

    for (int i = 0; i < mArray.Count; i++)
    {
        CCircle aCircle = mArray[i] as CCircle;

        if (aCircle.getOrder() < sumCircle)
        {
            aCircle.setMarked(true);

        }
        else
        {
            aCircle.setMarked(false);

        }


    }


    for (int i = 0; i < mArray.Count; i++)
    {

        CCircle aCircle = mArray[i] as CCircle;
        CCircle initCircle = mArray[0] as CCircle;

        if (aCircle.getOrder() == sumCircle)
        {
            aCircle.setPostSelected(true);
        }

        if (aCircle.getOrder() != sumCircle)
        {
            aCircle.setPostSelected(false);
        }
        if (aCircle.collides(mPointer) && CMouse.firstPress() && !aCircle.isMarked())
        {
            markedCircles++;
            sumCircle++;

        }
        if (aCircle.collides(mPointer) && CMouse.firstPress() && aCircle.isMarked())
        {
            markedCircles--;
            sumCircle--;

        }

    }
}

1 个答案:

答案 0 :(得分:0)

可能只需要一个整数circlesMarked来存储视图中有多少个圆圈。如果circlesMarked == 0然后显示您的第一行(在链接的图片中),如果circlesMarked == 1则显示一个标记的圆圈,右侧有一个透明圆圈,依此类推。这可以通过for循环来完成。

存储最后(最右侧)标记的圆圈(如果适用)的位置以及透明圆圈的位置,以便您知道点击的处理位置。然后,只需在1中添加或减去circlesMarked,具体取决于他们点击的位置。 XNA的Render方法应相应地更新视图,并且您有一个包含当前标记的圈数的变量。