コード例 #1
0
ファイル: Panel.cpp プロジェクト: DassiShenkar/ConsoleForm
void Panel::setStartPosition(int x, int y)
{
	vector<Control*>::iterator it;
	for (it = items.begin(); it != items.end(); it++)
	{
		(*it)->setStartPosition((*it)->getStartX() + x, (*it)->getStartY() + y);
	}
	setStartX(getStartX() + x);
	setStartY(getStartY() + y);

}
コード例 #2
0
ファイル: player.c プロジェクト: MorganAU/Lockes-Adventures
/* Initialise le héros */
void initializePlayer(int newLevel)
{
    /* PV à 3 */

    player.lifeMax = 9875;
    player.life = 9875;

    /* Timer d'invincibilité */
    player.invincibleTimer = 0;
    player.timerTouch = 20;

    /* Indique l'état et la direction de notre héros */
    player.direction = DOWN;
    player.state = IDLE_DOWN;

    /* Indique le numéro de la frame où commencer */
    player.frameNumber = 0;

    /* ... la valeur de son chrono au timer */
    player.frameTimer = TIME_BETWEEN_2_FRAMES_PLAYER;

    /* ... et son nombre de frame max */
    player.frameMax = 9;

    player.x = getBeginX();
    player.y = getBeginY();

    /* On réinitialise les coordonnées de la caméra si on change de niveau */
    if(newLevel)
    {
        setStartX(getBeginX());
        setStartY(getBeginY());
    }

    /* Hauteur et largeur de notre héros */
    player.w = PLAYER_WIDTH;
    player.h = PLAYER_HEIGHT;

    /* Variables nécessaires au fonctionnement de la gestion des collisions */
    player.timerMort = 0;

    /* Réinitialise les monstres */
    /* Libère le sprite des monstres */
    resetMonsters();

}
コード例 #3
0
ファイル: BitmapFont.cpp プロジェクト: Stellaris-code/Rayfun
void BitmapFont::setStartX(int startX, const std::string& glyphs)
{
    for (auto& glyph : glyphs)
        setStartX(startX, glyph);
}
コード例 #4
0
ファイル: BitmapFont.cpp プロジェクト: Stellaris-code/Rayfun
void BitmapFont::setStartXs(const std::vector<int>& startXs, unsigned int initialGlyphIndex)
{
    for (unsigned int i{ 0 }; i < startXs.size(); ++i)
        setStartX(startXs[i], initialGlyphIndex + i);
}
コード例 #5
0
ファイル: BitmapFont.cpp プロジェクト: Stellaris-code/Rayfun
void BitmapFont::setStartXs(int startX, unsigned int numberOfGlyphs, unsigned int initialGlyphIndex)
{
    for (unsigned int i{ 0 }; i < numberOfGlyphs; ++i)
        setStartX(startX, initialGlyphIndex + i);
}
コード例 #6
0
ファイル: player.c プロジェクト: MorganAU/Lockes-Adventures
void centerScrollingOnPlayer(void)
{
    /* Nouveau scrolling à sous-boîte limite :
    Pour éviter les effets de saccades dus à une caméra qui se centre
    automatiquement et constamment
    sur le joueur, on crée
    une "boîte" imaginaire autour du joueur.
    Quand on dépasse un de ses bords (en haut, en bas, à gauche ou à
    droite), on scrolle.
    Mais là encore, au lieu de centrer sur le joueur, on déplace
    simplement la caméra jusqu'à arriver au joueur.
    On a choisi la valeur de 3 pixels pour pouvoir avoir le plaisir
    d'aller plus vite que le cameraman
    On accélère aussi la vitesse de la caméra
    en cas de chute rapide (pour ne pas
    perdre le joueur de vue non plus. */

    int cxperso = player.x + player.w / 2;
    int cyperso = player.y + player.h / 2;
    int xlimmin = getStartX() + LIMITE_X;
    int xlimmax = xlimmin + LIMITE_W;
    int ylimmin = getStartY() + LIMITE_Y;
    int ylimmax = ylimmin + LIMITE_H;

    /* Effet de retour en arrière quand on est mort :
    Si on est très loin de la caméra, plus loin que le bord
    de la map, on accélère le scrolling : */
    if(cxperso < getStartX()) setStartX(getStartX() - 30);

    /* Si on dépasse par la gauche, on recule la caméra de 3 pixels (vous
    pouvez modifier cette valeur) */
    if(cxperso < xlimmin) setStartX(getStartX() - 3);

    /* Effet de retour en avant quand on est mort (au
    cas où le joueur s'amuse à faire le niveau à rebours
    après une checkpoint) :
    Si on est très loin de la caméra, plus loin que le bord
    de la map, on accélère le scrolling : */
    if(cxperso > getStartX() + SCREEN_WIDTH) setStartX(getStartX() + 30);

    /* Si on dépasse par la droite, on avance la caméra de 3 pixels (vous
    pouvez modifier cette valeur) */
    if(cxperso > xlimmax) setStartX(getStartX() + 3);

    /*Si on arrive au bout de la map à gauche, on stoppe le scrolling */
    if(getStartX() < 0) setStartX(0);

    /* Si on arrive au bout de la map à droite, on stoppe le scrolling à la
    valeur Max de la map - la moitié d'un écran (pour ne pas afficher du noir). */
    else if(getStartX() + SCREEN_WIDTH >= getMaxX())
        setStartX(getMaxX() - SCREEN_WIDTH);

    /* Si on dépasse par le haut, on remonte la caméra de 3 pixels (vous
    pouvez modifier cette valeur) */
    if(cyperso < ylimmin) setStartY(getStartY() - 3);

    /* Si on dépasse par le bas, on descend la caméra de 3 pixels (vous
    pouvez modifier cette valeur) */
    if(cyperso > ylimmax) setStartY(getStartY() + 3);

    /*Si on arrive au bout de la map en haut, on stoppe le scrolling */
    if (getStartY() < 0) setStartY(0);

    /*Si on arrive au bout de la map en bas, on stoppe le scrolling à la
    valeur Max de la map - la moitié d'un écran (pour ne pas afficher du noir). */
    else if (getStartY() + SCREEN_HEIGHT >= getMaxY())
        setStartY(getMaxY() - SCREEN_HEIGHT);

}