コード例 #1
0
ファイル: game.cpp プロジェクト: Mafrosti/S_Invaders
Game::Game(){
	//initialise the invaders
	invader_group = new InvaderGroup(Position(50,450), Scale(20,15),
								15, MoveDistance(0,5,5,5), MoveRange(700,230,10,790), 11, 5, 2); //invader group
	//initialise the tank
    theTank = Tank("image/tank.png", Position(400,60), Scale(25,15), MoveDistance(0,0,10,10), 
								MoveRange(0,0,10,790),3); //tank

    for(int i = 0; i < 4; i++)
	{
		//initialise the shields
		theShield[i] = Shield("image/shield.png", Position(100+i*200,200), Scale(50,30), 10);
	}
    invader_last_time = -1;
    invader_current_time = -1;
    invader_step_time = 300; //300 ms
    bullet_last_time = -1;
    bullet_current_time = -1;
    bullet_step_time = 30; //30 ms
	//Assignment 4
	tank_last_time = -1;
	tank_last_milli = -1;
	tank_current_time = -1;
	tank_current_milli = -1;
	tank_step_time = 500; // 500 ms
    conti = true;
	srand(time(NULL));
	lose = false;
	theTank.readHighScore();
}
コード例 #2
0
ファイル: Vector.cpp プロジェクト: Karkasos/Core
template<class T> void Vector<T>::Remove(UInt offset)
{
	UInt length;
	Element* element;

	if(!IsEmpty())
	{
		length = Length();

		//If the offset is past the end, delete last
		if(offset >= length)
			offset = length - 1;

		element = _origin + offset;

		if(_ctorMode != CtorModeEnum::Pod)
			Destroy(element);

		if(element != _last - 1)
		{
			MoveRange(element, element + 1, _last);
			if(_ctorMode == CtorModeEnum::Always)
				Destroy(_last - 1);
		}

		--_last;
	}
}
コード例 #3
0
ファイル: Scroll.cpp プロジェクト: KnowNo/QQPCMgr
BOOL CScrollV::OnControlLButtonDown(UINT nFlags, CPoint point)
{
	if(!m_bShowScroll)
	{
		return FALSE;
	}

	enumButtonState buttonState = m_enButtonState;
	if (!m_bIsDisable)
	{
		if(m_rcBlock.PtInRect(point))
		{
			m_enButtonState = enBSDown;
			m_nDownTop = point.y;
		}
		else
		{
			int nRangeHeight = m_rc.Height() - 40;
			int nMove = m_nPageRange * nRangeHeight / m_nMaxRange;

			return MoveRange(point.y < m_rcBlock.top ? -nMove : nMove);
		}
	}
	
	if(buttonState != m_enButtonState)
	{
		UpdateControl();
		return true;
	}
	return false;
}
コード例 #4
0
ファイル: Scroll.cpp プロジェクト: KnowNo/QQPCMgr
// 消息响应
LRESULT CScrollV::OnMessage(UINT uID, UINT Msg, WPARAM wParam, LPARAM lParam)
{
	if(uID == BT_UP)
	{
		if(BUTTOM_UP == lParam)
		{
			CRect rcUpdate;
			rcUpdate.SetRectEmpty();
			MoveRange(-m_nRowRange);
		}
	}
	else if (uID == BT_DOWN)
	{
		if(BUTTOM_UP == lParam)
		{
			CRect rcUpdate;
			rcUpdate.SetRectEmpty();
			MoveRange(m_nRowRange);
		}
	}
	return 0L; 
}
コード例 #5
0
ファイル: Str.cpp プロジェクト: BlueMagnificent/Urho3D
void String::Insert(unsigned pos, char c)
{
    if (pos > length_)
        pos = length_;

    if (pos == length_)
        (*this) += c;
    else
    {
        unsigned oldLength = length_;
        Resize(length_ + 1);
        MoveRange(pos + 1, pos, oldLength - pos);
        buffer_[pos] = c;
    }
}
コード例 #6
0
ファイル: String.cpp プロジェクト: joewan/turso3d
void String::Insert(size_t pos, char c)
{
    if (pos > Length())
        pos = Length();
    
    if (pos == Length())
        (*this) += c;
    else
    {
        size_t oldLength = Length();
        Resize(Length() + 1);
        MoveRange(pos + 1, pos, oldLength - pos);
        Buffer()[pos] = c;
    }
}
コード例 #7
0
ファイル: Scroll.cpp プロジェクト: cubemoon/DuiVision
BOOL  CScrollV::OnControlMouseMove(UINT nFlags, CPoint point)
{		
	if(!m_bShowScroll)
	{
		return FALSE;
	}
	enumButtonState buttonState = m_enButtonState;
	BOOL bHover = m_bHover;
	if (!m_bIsDisable)
	{
		if(m_enButtonState != enBSDown)
		{
			if(!m_bMouseDown)
			{
				if(m_rc.PtInRect(point))
				{
					m_bHover = true;
					if(m_rcBlock.PtInRect(point))
					{
						m_enButtonState = enBSHover;
					}
					else
					{
						m_enButtonState = enBSNormal;
					}
				}
				else
				{
					m_bHover = false;
					m_enButtonState = enBSNormal;
				}
			}
		}
		else
		{
			m_nDownTop += MoveRange(point.y - m_nDownTop);
			return true;
		}
	}

	if(buttonState != m_enButtonState || !m_bUpdate || bHover != m_bHover)
	{
		SetUpdate(FALSE);
		UpdateControl();
		return true;
	}
	return false;
}
コード例 #8
0
ファイル: Vector.cpp プロジェクト: Karkasos/Core
template<class T> void Vector<T>::Remove(Element& element)
{
	if(!IsEmpty() && &element)
	{
		if(_ctorMode != CtorModeEnum::Pod)
			Destroy(&element);

		if(&element != _last - 1)
		{
			MoveRange(&element, &element + 1, _last);
			if(_ctorMode == CtorModeEnum::Always)
				Destroy(_last - 1);
		}

		--_last;
	}
}
コード例 #9
0
ファイル: Vector.cpp プロジェクト: Karkasos/Core
template<class T> void Vector<T>::Insert(Element& at, ConstElement& value)
{
	Int offset;
	Element* element;

	offset = &at - _origin;
	AutoAllocate();
	element = _origin + offset;

	MoveRange(element + 1, element, _last);
	++_last;

	if(_ctorMode == CtorModeEnum::Pod)
		*element = value;
	else
		Construct(element, &value);
}
コード例 #10
0
ファイル: Vector.cpp プロジェクト: Karkasos/Core
template<class T> void Vector<T>::Insert(UInt offset, ConstElement& value)
{
	UInt length = Length();
	Element* element;

	//If the offset is past the end, insert at end
	if(offset > length)
		offset = length;

	AutoAllocate();
	element = _origin + offset;

	MoveRange(element + 1, element, _last);
	++_last;

	if(_ctorMode == CtorModeEnum::Pod)
		*element = value;
	else
		Construct(element, &value);
}
コード例 #11
0
ファイル: Vector.cpp プロジェクト: Karkasos/Core
template<class T> void Vector<T>::Allocate(UInt capacity)
{
	Element* newOrigin;

	newOrigin = (Element*)Memory::Alloc(sizeof(Element) * capacity);

	if(!IsEmpty())
	{
		if(_ctorMode != CtorModeEnum::Always)
			Memory::Copy(_origin, newOrigin, sizeof(Element) * Length());
		else
		{
			MoveRange(newOrigin, _origin, _last);
			Destroy(_origin, _last);
		}
		Memory::Free(_origin);
	}

	_last = newOrigin + (_last - _origin);
	_end = newOrigin + capacity;
	_origin = newOrigin;
}