C#培训2019-10-23第七课方块移动 Form控制方块先后运动解决方案

一、我的思路:分成两部分来实现:

1、第20个方块移动之前:首先触发第一次:第一个方块移动;首先触发第二次:第一个和第二个方块移动;首先触发第三次:第一个第二个第三个方块移动;以此类推。
2、所有的都持续移动:触发一次,所有的方块都触发。

具体代码如下:

	void m_tmr1_Tick( object sender, EventArgs e )
		{
     
			 // 1、Delay trigger by PositionIndex
			if( m_PositionIndex < m_nObjectNumber ) {
     
			    for( int i = 0; i <= m_PositionIndex; i++ ) {
     
			        EventCenter.Move( m_AllObjtctDirectionArray[ i ], i );
			    }
			}

			// 2、All blocks keep moving after trigger
			if( m_PositionIndex > m_nObjectNumber - 1 ) {
     
			    for( int i = 0; i <= m_nObjectNumber - 1; i++ ) {
     
			        EventCenter.Move( m_AllObjtctDirectionArray[ i ], i );
			    }
			}
		}

二、解决方案:其实本身m_PositionIndex本身 就是一个旗标,可以利用它来直接控制移动哪个方块,当m_PositionIndex较小时,就移动它以及它之前的方块,这样就实现了顺序动作的目的。

	void m_tmr1_Tick( object sender, EventArgs e )
		{
     
			for( int i = 0; i <= m_PositionIndex; i++ ) {
     
				EventCenter.Move( m_AllObjtctDirectionArray[ i ], i );
			}
			if( m_PositionIndex < m_nObjectNumber-1 ) {
     
				m_PositionIndex++;
			}
		}

你可能感兴趣的:(Syntec,C#培训)