⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spritecollection.cpp

📁 Source code (C++) of the Icebloxx game for Symbian OS UIQ3.x
💻 CPP
字号:
/*
 * Copyright (C) 2002 Robert Ernst <robert.ernst@linux-solutions.at>
 *
 * This file may be distributed and/or modified under the terms of the
 * GNU General Public License version 2 as published by the Free Software
 * Foundation and appearing in the file LICENSE.GPL included in the
 * packaging of this file.
 *
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 *
 * See COPYING for GPL licensing information.
 *
 */

#include "SpriteCollection.h"
#include <eikenv.h>
#include <icebloxx.mbg>

SpriteCollection::SpriteCollection()
{
	CEikonEnv* env = CEikonEnv::Static();
	TInt loop;
	for(loop=0;loop<8;loop++)
	{
		m_block[loop]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxBlock1+loop));
	}

	for(loop=0;loop<8;loop++)
	{
		m_block_coin[loop]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxBlock_coin1+loop));
	}

	m_coin[0]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxCoin));
	m_coin[1]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxCoinmask));

	for(loop=0;loop<8;loop++)
	{
		m_dead[loop]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxDead1+loop));
	}

	for(loop=0;loop<5;loop++)
	{
		m_flame[loop][0]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxFlame1+loop));
		m_flame[loop][1]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxFlame1mask+loop));
	}

	m_happy_penguin=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxHappy_penguin));
	m_intro =static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxIntro));

	m_live =static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxLive));
	m_penguin = static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxPenguin));
	for(loop=0;loop<3;loop++)
	{
		m_penguin_up[loop]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxPenguin_up1+loop));
		m_penguin_down[loop]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxPenguin_down1+loop));
		m_penguin_left[loop]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxPenguin_left1+loop));
		m_penguin_right[loop]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxPenguin_right1+loop));
	}

	m_points[0][0]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxPoints1));
	m_points[1][0]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxPoints2));
	m_points[0][1]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxPoints1mask));
	m_points[1][1]=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxPoints2mask));

	m_wall=static_cast<QPixmap*>(env->CreateBitmapL(_L("*"),EMbmIcebloxxWall));
}

SpriteCollection::~SpriteCollection()
{
	TInt loop;
	for(loop=0;loop<8;loop++)
	{
		delete m_block[loop];
		delete m_block_coin[loop];
		delete m_dead[loop];
	}


	delete m_coin[0];
	delete m_coin[1];
	
	for(loop=0;loop<5;loop++)
	{
		delete m_flame[loop][0];
		delete m_flame[loop][1];

	}
	delete m_happy_penguin;
	delete m_intro;
	
	delete m_live;
	delete m_penguin;
	
	for(loop=0;loop<3;loop++)
	{
		delete m_penguin_up[loop];
		delete m_penguin_down[loop];
		delete m_penguin_left[loop];
		delete m_penguin_right[loop];
		}

	delete m_points[0][0];
	delete m_points[1][0];
	delete m_points[0][1];
	delete m_points[1][1];

	delete m_wall;
}

void SpriteCollection::drawBlock(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, m_block[state]);
}

void SpriteCollection::drawBlockCoin(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, m_block_coin[state]);
}

void SpriteCollection::drawCoin(QPainter &painter, int x, int y)
{
    painter.drawPixmapMask((KMajorPart*x)/KDividor, y, m_coin[0],m_coin[1]);
}

void SpriteCollection::drawDead(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, m_dead[state]);
}

void SpriteCollection::drawFlame(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmapMask((KMajorPart*x)/KDividor, y, m_flame[(state > 4) ? 8 - state : state][0],m_flame[(state > 4) ? 8 - state : state][1]);
}

void SpriteCollection::drawHappyPenguin(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, state ? m_happy_penguin : m_penguin);
}

void SpriteCollection::drawIntro(QPainter &painter, int x, int y)
{
    painter.drawPixmap(x, y, m_intro);
}

void SpriteCollection::drawLive(QPainter &painter, int x, int y)
{
    painter.drawPixmap(x, y, m_live);
}

void SpriteCollection::drawPenguin(QPainter &painter, int x, int y)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, m_penguin);
}

void SpriteCollection::drawPenguinUp(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, m_penguin_up[(state > 2) ? 4 - state : state]);
}

void SpriteCollection::drawPenguinDown(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, m_penguin_down[(state > 2) ? 4 - state : state]);
}

void SpriteCollection::drawPenguinLeft(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, m_penguin_left[(state > 2) ? 4 - state : state]);
}

void SpriteCollection::drawPenguinRight(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, m_penguin_right[(state > 2) ? 4 - state : state]);
}

void SpriteCollection::drawPoints(QPainter &painter, int x, int y, int state)
{
    painter.drawPixmapMask((KMajorPart*x)/KDividor, y, m_points[state][0],m_points[state][1]);
}

void SpriteCollection::drawWall(QPainter &painter, int x, int y)
{
    painter.drawPixmap((KMajorPart*x)/KDividor, y, m_wall);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -