Ejemplo n.º 1
0
void displayHUD(Object * ship, SDL_Texture * font, uint32_t timer)
{
    Object * temp;
    char buffer[BUFFER_SIZE] = {0};
    int previous = 0;
    SDL_Rect bar;

    /* Set the HUD bar */
    bar.x = 0;
    bar.y = 0;
    bar.w = Global->screenWidth;
    bar.h = Global->screenTop;

    setWindowColor(0, 51, 102, 0xFF);
    SDL_RenderFillRect(Global->renderer, &bar);
    setWindowColor(0x0, 0x0, 0x0, 0xFF);

    /* Display score text */
    strncpy(buffer, "Score", BUFFER_SIZE);
    temp = createTextObject(font, buffer, FONT_LARGE, 1.0);

    positionTextObject(temp, 0, 0);

    /* Display score number */
    previous = (temp->x + ((countObjects(temp) + 5 - snprintf(buffer, BUFFER_SIZE, "%d", score)) * temp->clip.w * 0.5 * temp->scale));
    freeObjects(temp);
    temp = createTextObject(font, buffer, FONT_LARGE, 1.0);

    positionTextObject(temp, previous, 0);

    /* Display lives text */
    previous += getTextObjectLength(temp, 5);
    freeObjects(temp);
    strncpy(buffer, "Lives", BUFFER_SIZE);
    temp = createTextObject(font, buffer, FONT_LARGE, 1.0);

    positionTextObject(temp, previous, 0);

    /* Display lives number */
    previous = (temp->x + ((countObjects(temp) + 3 - snprintf(buffer, BUFFER_SIZE, "%d", ship->lives)) * temp->clip.w * 0.5 * temp->scale));
    freeObjects(temp);
    temp = createTextObject(font, buffer, FONT_LARGE, 1.0);

    positionTextObject(temp, previous, 0);    
    freeObjects(temp);

    /* Display Timer */
    snprintf(buffer, BUFFER_SIZE, "%d", timer);
    temp = createTextObject(font, buffer, FONT_LARGE, 1.0);

    positionTextObject(temp, ((Global->screenWidth - (countObjects(temp) * temp->clip.w))), 0);
    freeObjects(temp);
}
Ejemplo n.º 2
0
void displayTextMiddle(SDL_Texture * font, char * text, objectType type, float scale)
{
    Object * temp = createTextObject(font, text, type, scale);

    positionTextObject(temp, (((Global->screenWidth - Global->screenRight) / 2) + Global->screenLeft) - (getTextObjectLength(temp, 0) / 2), (((Global->screenHeight - Global->screenBottom) / 2) + Global->screenTop) - (temp->clip.h / 2));
    freeObjects(temp);
}
Ejemplo n.º 3
0
/* Assumes 'label' object exists and is zeroed. */
void createLabel(AppInfo *app, char *text, LabelInfo *label)
{
   char *substring;
   TextObject *t;
   
   if ((!app) || (!text)) {
      return;
   }
   label->fullText = strdup(text);
   label->multiText = createTextObject(app, label->fullText);
   t = label->multiText;
   substring = strchr(label->fullText, '\n');
   while (NULL != substring) {
      *(substring++) = '\0';
      t->next = createTextObject(app, substring);
      if (t->next) {
	 t = t->next;
      }
      substring = strchr(substring, '\n');
   }
}
Ejemplo n.º 4
0
GameState::GameState(StateManager* _stateManager) : State(_stateManager), tileSize(64.0f, 64.0f), playerPosition(0.0f, 4.0f), ballPosition(0.0f, 0.0f), ballVelocity(0.0f, 0.1f),
													ballSize(40.0f, 40.0f), playerSize(150, 35.0f), tilesSize(90.0f, 40.0f)
{
	tileAmount = 10;

	boxWorld = new b2World(yam2d::vec2(0.0f, 0.0f));
	boxWorld->SetAllowSleeping(false);
	contactListener = new ContactListener();
	boxWorld->SetContactListener(contactListener);

	map = new yam2d::Map(tileSize.x, tileSize.y);

	background = new yam2d::Layer(map, "Background", 1.0f, true, true);
	objects = new yam2d::Layer(map, "Objects", 1.0f, true, false);

	map->addLayer(yam2d::Map::BACKGROUND0, background);
	map->addLayer(yam2d::Map::MAPLAYER0, objects);

	backgroundObject = createSpriteGameObject("Textures/menu_background.png", 1280.0f, 720.0f);
	
	playerObject = createSpriteGameObject("Textures/player.png", playerSize.x, playerSize.y);
	PhysicsBody* Playerbody = new PhysicsBody(playerObject, boxWorld, 1.0f, 1.0f);
	Playerbody->setBoxFixture(playerSize / tileSize, yam2d::vec2(0.0f, 0.0f), playerObject->getRotation(), true);
	playerObject->addComponent(Playerbody);
	playerObject->setName("Player");
	playerObject->getComponent<PhysicsBody>()->getBody()->SetTransform(playerPosition, 0.0f);

	ballObject = createSpriteGameObject("Textures/ball.png", ballSize.x, ballSize.y);
	PhysicsBody* ballBody = new PhysicsBody(ballObject, boxWorld, 1.0f, 1.0f);
	ballBody->setCircleFixture((ballSize.x / tileSize.x) / 2 , true);
	ballObject->addComponent(ballBody);
	ballObject->setName("Ball");
	ballObject->getComponent<PhysicsBody>()->getBody()->SetTransform(ballPosition, 0.0f);

	for (int i = 0; i < tileAmount; i++)
	{
		tileObjects.push_back(createSpriteGameObject("Textures/tile.png", tilesSize.x, tilesSize.y));
		objects->addGameObject(tileObjects.back());
		PhysicsBody* tileBody = new PhysicsBody(tileObjects.back(), boxWorld, 1.0f, 1.0f);
		tileBody->setBoxFixture(tilesSize / tileSize, yam2d::vec2(0.0f, 0.0f), tileObjects.back()->getRotation(), true);
		tileObjects.back()->addComponent(tileBody);
		tileObjects.back()->setName("Tile");
		tileObjects.back()->getComponent<PhysicsBody>()->getBody()->SetTransform(yam2d::vec2(-3.0f + 2 * i, -2.0f), 0.0f);
	}

	textObject = createTextObject();
	textObject->setPosition(8.0f, -5.0f);

	background->addGameObject(backgroundObject);
	objects->addGameObject(playerObject);
	objects->addGameObject(ballObject);
	objects->addGameObject(textObject);
}
Ejemplo n.º 5
0
GameLevelState::GameLevelState(StateManager* _stateManager) : State(_stateManager), playerPosition(0.0f, 4.0f), ballPosition(0.0f, 0.0f), ballVelocity(0.0f, 0.1f),
ballSize(40.0f, 40.0f), playerSize(150, 35.0f)
{
	map = new yam2d::TmxMap();
	compFac = new CustomComponentFactory();
	compFac->setCurrentMap(map);
	contactListener = new ContactListener();
	compFac->getPhysicsWorld()->SetContactListener(contactListener);
	if (map->loadMapFile("Maps/test_map.tmx", compFac))
	{
		map->getCamera()->setPosition(yam2d::vec2(map->getWidth() / 2.0f, map->getHeight() / 2.0f));
	}
	else
	{
		msgstream("Error loading TmxMap!");
		stateManager->setState(new MainMenuState(stateManager));
	}
	tileSize = yam2d::vec2(map->getWidth(), map->getHeight());

	yam2d::Map::LayerMap layers = map->getLayers();
	yam2d::Layer::GameObjectList goList;
	for (unsigned i = 0; i < layers.size(); i++)
	{
		if (layers[i])
		{
			goList = layers[i]->getGameObjects();
			for (unsigned i = 0; i < goList.size(); i++)
			{
				tileObjects.push_back(goList[i]);
			}
		}
	}
	for (unsigned i = 0; i < tileObjects.size(); i++)
	{
		if (tileObjects[i]->getName() == "Player")
		{
			playerObject = tileObjects[i];
		}
		else if (tileObjects[i]->getName() == "Ball")
		{
			ballObject = tileObjects[i];
		}
	}

	tileAmount = tileObjects.size() - 3; //3 = ball, player, background
	textObject = createTextObject();
	textObject->setPosition(tileSize.x - tileSize.x * 0.15f, tileSize.y - tileSize.y * 0.85f);

	map->getLayer("Tiles")->addGameObject(textObject);
}
Ejemplo n.º 6
0
int16 Op_AddMessage() {
	int16 color = popVar();
	int16 var_2 = popVar();
	int16 var_4 = popVar();
	int16 var_6 = popVar();
	int16 var_8 = popVar();
	int16 overlayIdx = popVar();

	if (!overlayIdx)
		overlayIdx = currentScriptPtr->overlayNumber;

	if (color == -1) {
		color = findHighColor();
	} else {
		if (CVTLoaded) {
			color = cvtPalette[color];
		}
	}

	createTextObject(&cellHead, overlayIdx, var_8, var_6, var_4, var_2, color, masterScreen, currentScriptPtr->overlayNumber, currentScriptPtr->scriptNumber);

	return 0;
}
Ejemplo n.º 7
0
void callRelation(menuElementSubStruct *pMenuElement, int nObj2) {
	if (pMenuElement == NULL)
		return;

	menuElementSubStruct* pCurrent = pMenuElement;

	while (pCurrent != NULL) {
		int ovlIdx = pCurrent->ovlIdx;
		int header = pCurrent->header;

		linkDataStruct* pHeader = &overlayTable[ovlIdx].ovlData->arrayMsgRelHeader[header];

		if (pHeader->obj2Number == nObj2) {
			// REL
			if (pHeader->type == RT_REL) {
				if (currentScriptPtr) {
					attacheNewScriptToTail(&relHead, ovlIdx, pHeader->id, 30, currentScriptPtr->scriptNumber, currentScriptPtr->overlayNumber, scriptType_REL);
				} else {
					attacheNewScriptToTail(&relHead, ovlIdx, pHeader->id, 30, 0, 0, scriptType_REL);
				}

				if ((narratorOvl > 0) && (pHeader->trackX != -1) && (pHeader->trackY != -1)) {
					actorStruct* pTrack = findActor(&actorHead, narratorOvl, narratorIdx, 0);

					if (pTrack) {
						animationStart = false;

						if (pHeader->trackDirection == 9999) {
							objectParamsQuery naratorParams;
							getMultipleObjectParam(narratorOvl, narratorIdx, &naratorParams);
							pTrack->x_dest = naratorParams.X;
							pTrack->y_dest = naratorParams.Y;
							pTrack->endDirection = direction(naratorParams.X, naratorParams.Y, pTrack->x_dest, pTrack->y_dest, 0, 0);
						} else if ((pHeader->trackX == 9999) && (pHeader->trackY == 9999)) {
							objectParamsQuery naratorParams;
							getMultipleObjectParam(narratorOvl, narratorIdx, &naratorParams);
							pTrack->x_dest = naratorParams.X;
							pTrack->y_dest = naratorParams.Y;
							pTrack->endDirection = pHeader->trackDirection;
						} else {
							pTrack->x_dest = pHeader->trackX;
							pTrack->y_dest = pHeader->trackY;
							pTrack->endDirection = pHeader->trackDirection;
						}

						pTrack->flag = 1;

						autoTrack = true;
						userEnabled = 0;
						changeScriptParamInList(ovlIdx, pHeader->id, &relHead, 0, 9998);
					}
				}
			} else if (pHeader->type == RT_MSG) { // MSG
				int obj1Ovl = pHeader->obj1Overlay;
				if (!obj1Ovl)
					obj1Ovl = ovlIdx;

				int x = 60;
				int y = 40;

				if (pHeader->obj1Number >= 0) {
					objectParamsQuery params;
					getMultipleObjectParam(obj1Ovl, pHeader->obj1Number, &params);

					if (narratorOvl > 0) {
						if ((pHeader->trackX != -1) && (pHeader->trackY != -1) && (pHeader->trackX != 9999) && (pHeader->trackY != 9999)) {
							x = pHeader->trackX - 100;
							y = pHeader->trackY - 150;
						} else {
							getMultipleObjectParam(narratorOvl, narratorIdx, &params);
							x = params.X - 100;
							y = params.Y - 150;
						}
					} else if (params.scale >= 0) {
						x = params.X - 100;
						y = params.Y - 40;
					}

					if (pHeader->obj1NewState != -1) {
						objInit(obj1Ovl, pHeader->obj1Number, pHeader->obj1NewState);
					}
				}

				if (currentScriptPtr) {
					createTextObject(&cellHead, ovlIdx, pHeader->id, x, y, 200, findHighColor(), masterScreen, currentScriptPtr->overlayNumber, currentScriptPtr->scriptNumber);
				} else {
					createTextObject(&cellHead, ovlIdx, pHeader->id, x, y, 200, findHighColor(), masterScreen, 0, 0);
				}

				userWait = 1;
				autoOvl = ovlIdx;
				autoMsg = pHeader->id;

				if ((narratorOvl > 0) && (pHeader->trackX != -1) && (pHeader->trackY != -1)) {
					actorStruct* pTrack = findActor(&actorHead, narratorOvl, narratorIdx, 0);

					if (pTrack) {
						animationStart = false;

						if (pHeader->trackDirection == 9999) {
							objectParamsQuery naratorParams;
							getMultipleObjectParam(narratorOvl, narratorIdx, &naratorParams);
							pTrack->x_dest = naratorParams.X;
							pTrack->y_dest = naratorParams.Y;
							pTrack->endDirection = direction(naratorParams.X, naratorParams.Y, pTrack->x_dest, pTrack->y_dest, 0, 0);
						} else if ((pHeader->trackX == 9999) && (pHeader->trackY == 9999)) {
							objectParamsQuery naratorParams;
							getMultipleObjectParam(narratorOvl, narratorIdx, &naratorParams);
							pTrack->x_dest = naratorParams.X;
							pTrack->y_dest = naratorParams.Y;
							pTrack->endDirection = pHeader->trackDirection;
						} else {
							pTrack->x_dest = pHeader->trackX;
							pTrack->y_dest = pHeader->trackY;
							pTrack->endDirection = pHeader->trackDirection;
						}

						pTrack->flag = 1;

						autoTrack = true;
						userWait = 0;
						userEnabled = 0;
						freezeCell(&cellHead, ovlIdx, pHeader->id, 5, -1, 0, 9998);
					}
				}
			}
		} else {
			linkedRelation = pMenuElement;
		}

		pCurrent = pCurrent->pNext;
	}
}
Ejemplo n.º 8
0
void
QTACDraw::textButton_clicked (void)
{
    createTextObject (QTACHART_OBJ_TEXT);
}
Ejemplo n.º 9
0
void
QTACDraw::labelButton_clicked (void)
{
    createTextObject (QTACHART_OBJ_LABEL);
}