Esempio n. 1
0
void MiniMap::draw(const AGRect &r)
{
//  CTRACE;
  AGRect mr=r.project(getRect());
  if(mustUpdate)
    mTexture=AGTexture(mSurface);
  mustUpdate=false;
  getScreen().blit(mBG,mr);
  mr.x+=8;
  mr.y+=8;
  mr.w-=16;
  mr.h-=16;
  
  getScreen().blit(mTexture,mr);
  
  drawEntities(mr.getPosition());
/*
  // draw viewing Rect  
  float sx0=mViewRect.x;
  
  AGRect vr(;
  vr=
  
  getScreen().drawRect(AGRect(*/
}
void encGameDraw(Display *d, cell grid[H][W], int printHint, char hintWord[HINTLENGTH], int resetsent, char letter) {
  int line = 0;
  char ascii_code[LENGTH];

  drawBackground(d, BG_ENC);
  fprintf(OUTPUT, "hint word%s\n", hintWord);
  drawEntities(d, grid);

  line += drawString(d, fontdata, INTROSTRING, SCRNSTARTX, SCRNSTARTY, normal,0);

  if ((letter >= 'a') && (letter <= 'z')){
     sprintf(ascii_code, "Ascii Code: %c=%d", letter- LOW_TO_CAP, letter- LOW_TO_CAP);
     drawString(d, fontdata, ascii_code, SCRNSTARTX+(12*FNTWIDTH), SCRNSTARTY+(15*FNTHEIGHT), normal,0);
  }
  if(resetsent==1){
    line += drawString(d, fontdata, "RESET SIGNAL SENT", SCRNSTARTX,
      SCRNSTARTY + line, warning,0);
  }
  if(printHint==1){
    line += drawString(d, fontdata, "\nHINT:", SCRNSTARTX,
      SCRNSTARTY + line, normal,0);
    drawString(d, fontdata, hintWord, SCRNSTARTX,
      SCRNSTARTY + line, normal,0);
  }
  drawString(d, fontdata, (char*)"EXIT", 177, 410, yellow,1);
  drawString(d, fontdata, (char*)"EXIT", 879, 410, yellow,1);
  drawFrame(d, REFRESH_RATE);
}
Esempio n. 3
0
void cOutput::drawFrameUnitSelection(Uint32 ticks)
{
    drawMap();
    drawEntities();
    if(pUnitSelectionInputs->doDrawRect){ drawSelectionRectangle(&(pUnitSelectionInputs->DrawRect)); }

    if(selectedNumber > 0)
    {
        drawUnitHud(ticks);
    }
    else if(selectedBuildings > 0)
    {
        ///TODO
        //drawBuildingHud();
    }

    if(drawAoe != -1)
    {
        applyDrawAoe((pMousePosition->X)/TILE_WIDTH,(pMousePosition->Y)/TILE_HEIGHT,drawAoe);
    }
    // Draw the cursor
    cSurface::Draw(mScreen,cursorGraphic[pUnitSelectionInputs->cursorType],pMousePosition->X+CURSOR_OFFSET_X,pMousePosition->Y+CURSOR_OFFSET_Y);

    //Show the new screen
    SDL_Flip(mScreen);
}
Esempio n. 4
0
void lobbyDraw(Display *d, cell grid[H][W])
{
  drawBackground(d,BG_LOBBY);
  drawEntities(d, grid);
  drawString(d, fontdata, (char*)"LEARN BINARY", 680, 240, yellow,1);
  drawString(d, fontdata, (char*)"COMPUTER QUIZ", 360, 400, yellow,1);

  drawFrame(d, REFRESH_RATE);
}
Esempio n. 5
0
File: draw.c Progetto: zear/g-ball
void drawInGame()
{
	char joyInfo[10]; // temporary

	drawBackground(0, 0, 0);	
	drawMap();
	drawEntities();

	//sprintf(joyInfo, "x:%d\ny:%d\n", SDL_JoystickGetAxis(joy, 0), SDL_JoystickGetAxis(joy, 1));
	//drawText(joyInfo, 250, 200, &FontSmall);
}
Esempio n. 6
0
void SquareMap::draw(BITMAP *dest, bool drawObstacle)
{
	Rectangle oldClip;
	oldClip.clipToRect(dest);
	cameraScreenRect.rectToClip(dest);

	if (mapLayers[0]) drawLayer(dest, drawObstacle, mapLayers[0]);
	drawEntities(dest);
	if (mapLayers[1]) drawLayer(dest, drawObstacle, mapLayers[1]);
	drawAirborneEntities(dest);

	oldClip.rectToClip(dest);
}
Esempio n. 7
0
void drawAllEntities()
{
  int i;
  int entsUsed;
  int numberofEnts;

  numberofEnts=numents+10;
  entsUsed = 0;
  for (i = 0 ;i < MAXENTITIES  ;i++)
  {
    if(entsUsed >= numberofEnts) break;
    if (EntityList[i].used != 0)
    {
      entsUsed++;
      drawEntities(&EntityList[i]);
    }
  }
}
Esempio n. 8
0
void drawRoomEditor(void)
{
	projectCamera(&editorCamera);
	glLoadIdentity();
	
	glPushMatrix();		
		glScalef32(editorScale,editorScale,editorScale);
		transformCamera(&editorCamera);

		drawEditorRoom(&editorRoom);
		drawEntities();
		drawSelection(NULL);
	glPopMatrix(1);

	drawContextButtons();
	
	glFlush(0);
}
Esempio n. 9
0
void Renderer::render(GLFWwindow *window, double t, double dt)
{
    Vf2 projection_dims = getProjectionDimensions(gamestate->window_size.x, gamestate->window_size.y);
    M4x4<float> view_mat = getViewMatrix();
    // TODO(scott): this should be cached and not recalculated every frame
    M4x4<float> projection_mat = M4x4<float>::orthographicProj(0, projection_dims.x, 0, projection_dims.y, -1, 1);
    
    glViewport(0, 0, gamestate->window_size.x, gamestate->window_size.y);
    glClear(GL_COLOR_BUFFER_BIT);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, projection_dims.x, 0, projection_dims.y, -1, 1);

    glMatrixMode(GL_MODELVIEW);
    
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glEnableClientState(GL_VERTEX_ARRAY);
    
    glEnable(GL_TEXTURE_2D);

    glBindBuffer(GL_ARRAY_BUFFER, vbo_id);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo_id);

    glTexCoordPointer(num_texcoord_vertex, GL_FLOAT, sizeof(GLfloat) * (num_position_vertex + num_texcoord_vertex), (float*)(sizeof(GLfloat)*num_position_vertex));
    glVertexPointer(num_position_vertex, GL_FLOAT, sizeof(GLfloat) * (num_position_vertex + num_texcoord_vertex), NULL);
    
    drawTilemap(view_mat, projection_mat);
    drawEntities(view_mat, projection_mat);
    
    glDisable(GL_TEXTURE_2D);

    glDisableClientState(GL_VERTEX_ARRAY);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    
    glfwSwapBuffers(window);
    glfwPollEvents();
}
Esempio n. 10
0
/* Main display function */
void glfwDraw (GLFWwindow *window)
{
    ModelTrans.loadIdentity();
    SetModelStat();

    safe_glEnableVertexAttribArray(h_aPosition);

    glBindBuffer(GL_ARRAY_BUFFER, GrndBuffObj);
    safe_glVertexAttribPointer(h_aPosition, 3, GL_FLOAT, GL_FALSE, 0, 0);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, GIndxBuffObj);

    SetMaterial(0);

    safe_glEnableVertexAttribArray(h_aNormal);
    glBindBuffer(GL_ARRAY_BUFFER, GNBuffObj);
    safe_glVertexAttribPointer(h_aNormal, 3, GL_FLOAT, GL_FALSE, 0, 0);

    /* draw!*/
    glDrawElements(GL_TRIANGLES, g_GiboLen, GL_UNSIGNED_SHORT, 0);
    safe_glDisableVertexAttribArray(h_aPosition);

    //DRAW THE DANCING CYLINDER HERE!!
    btTransform pla;
    PlaceModel(playerMesh, GetLookAt().x, GetLookAt().y - 1, GetLookAt().z, .25, .1, .25, 1);
    //END OF DANCING CYLINDER CODE HERE!!
    SetMaterial(2);
    drawSelectedObject();
    drawEntities();

    //Draw Cubes, ??????????
    SetupCube(plsRndr().getX(),plsRndr().getY(),plsRndr().getZ(),5,60,1,1,1);
    for(float i=.05; i<1; i+=.0075) {
        srand(physGetPlayerX());
        float x = physGetPlayerX()*(1-i)+grapplingHookLocation().x*i;
        float y = physGetPlayerY()*(1-i)*(1-i)+grapplingHookLocation().y*i*i;
        float z = physGetPlayerZ()*(1-i)+grapplingHookLocation().z*i;
        SetupCube(x,y,z,5,rand()/300.0,.15,.15,.15);
    }

    SetMaterial(2);

    //draw phys cubes
    vector<btRigidBody*> loopable = getVecList();
    srand(0);
    for(int i = 0; i<loopable.size(); i++) {
        btTransform trans;
        loopable[i]->getMotionState()->getWorldTransform(trans);
        //printf("actual is %f %f %f\n",trans.getOrigin().getX(),trans.getOrigin().getY(),trans.getOrigin().getZ());

        if(!i)
            PlaceModel(*(Mesh*)(loopable[i]->getUserPointer()), trans.getOrigin().getX(),trans.getOrigin().getY(),trans.getOrigin().getZ(),.15*SCALE,-.05*SCALE,.15*SCALE,1);
        else
            PlaceModel(*(Mesh*)(loopable[i]->getUserPointer()), trans.getOrigin().getX(),trans.getOrigin().getY(),trans.getOrigin().getZ(),.1*SCALE,.1*SCALE,.1*SCALE, 0);
        // SetupCube(trans.getOrigin().getX(),trans.getOrigin().getY(),trans.getOrigin().getZ(),2,0,2,2,2);
    }


    ///render spherse
    /*
       btTransform trans;
       fallRigidBody->getMotionState()->getWorldTransform(trans);
       std::cout << "sphere height: " << trans.getOrigin().getY() << " sphere x:"<<trans.getOrigin().getX()<< " sphere z:"<< trans.getOrigin().getZ() <<std::endl;
       SetupCube(trans.getOrigin().getX(),trans.getOrigin().getY(),trans.getOrigin().getZ(),2,60,2,2,2);
       fallRigidBodyb->getMotionState()->getWorldTransform(trans);
       SetupCube(trans.getOrigin().getX(),trans.getOrigin().getY(),trans.getOrigin().getZ(),2,60,2,2,2);
       FRBbuilding->getMotionState()->getWorldTransform(trans);
       SetupCube(trans.getOrigin().getX(),trans.getOrigin().getY(),trans.getOrigin().getZ(),3,0,2,2,2);
    */
}
Esempio n. 11
0
void GameState::onDraw(sf::RenderTarget& target) {
    float w = target.getSize().x;
    float h = target.getSize().y;
    m_renderTextures[0].clear();
    m_renderTextures[1].clear();

    sf::RenderTarget& t = m_renderTextures[0];

    target.clear();
    t.clear(sf::Color(80, 80, 80));

    // backdrop
    // t.setView(t.getDefaultView());
    // sf::RectangleShape backdrop(sf::Vector2f(t.getSize()));
    // backdrop.setFillColor(sf::Color(100, 150, 255));
    // backdrop.setFillColor(sf::Color(40, 40, 40));
    // auto shader = Root().resources.getShader("backdrop");
    // shader->setParameter("size", sf::Vector2f(t.getSize()));
    // shader->setParameter("time", getTime());
    // t.draw(backdrop, shader.get());

    setView(t);
    int backTiles = 50;
    float s = 4.0;

    auto tex = Root().resources.getTexture("cave-1");
    tex->setRepeated(true);
    sf::Sprite back(*tex.get());
    back.setTextureRect(sf::IntRect(0, 0, tex->getSize().x * backTiles, tex->getSize().y * backTiles));
    back.setScale(s / tex->getSize().x, s / tex->getSize().y);
    back.setPosition(m_center.x * 0.2, m_center.y * 0.2);
    back.setOrigin(tex->getSize().x / 2 * backTiles, tex->getSize().y / 2 * backTiles);

    auto levelColor = {
        sf::Color(100, 20, 0),
        sf::Color(100, 120, 200),
        sf::Color(250, 200, 0),
        sf::Color(255, 0, 128)
    };
    back.setColor(*(levelColor.begin() + (m_currentLevel) % levelColor.size()));
    t.draw(back);

    s = 8.0;
    tex = Root().resources.getTexture("perlin");
    tex->setRepeated(true);
    back.setTexture(*tex.get(), false);
    back.setTextureRect(sf::IntRect(0, 0, tex->getSize().x * backTiles, tex->getSize().y * backTiles));
    back.setScale(s / tex->getSize().x, s / tex->getSize().y);
    back.setOrigin(tex->getSize().x / 2 * backTiles, tex->getSize().y / 2 * backTiles);
    back.setColor(sf::Color(128, 128, 128));
    back.setPosition(m_center.x * 0.1, m_center.y * 0.1);
    t.draw(back, sf::BlendMultiply);

    s = 8.0;
    back.setScale(s / tex->getSize().x, s / tex->getSize().y);
    back.setPosition(0, 0);
    back.setColor(sf::Color(255, 255, 255, 80));
    back.setPosition(-m_center.x * 0.2, -m_center.y * 0.2);
    t.draw(back, sf::BlendAdd);

    s = 8.0;
    back.setScale(s / tex->getSize().x, s / tex->getSize().y);
    back.setPosition(-m_center.x * 0.3, -m_center.y * 0.3);
    back.setColor(sf::Color(255, 255, 255, 255));
    t.draw(back, sf::BlendMultiply);

    // draw
    setView(t);
    drawEntities(t);

    setView(m_renderTextures[1]);
    float f = - 0.2;
    back.setColor(sf::Color(255, 255, 255, 150));
    back.setPosition(m_center.x * f + m_time * f * 1.5, m_center.y * f);
    m_renderTextures[1].draw(back, sf::BlendAdd);

    sf::Sprite sprite;
    sprite = sf::Sprite(m_renderTextures[1].getTexture());
    Root().resources.getShader("fog")->setParameter("size", sf::Vector2f(m_renderTextures[1].getSize()));
    t.setView(sf::View(sf::FloatRect(0, h, w, -h)));
    t.draw(sprite, sf::RenderStates(sf::BlendAdd, sf::RenderStates::Default.transform, sf::RenderStates::Default.texture, Root().resources.getShader("fog").get()));

    // post-processing
    target.setView(sf::View(sf::FloatRect(0, h, w, -h)));
 
    auto pixel          = Root().resources.getShader("pixel");
    auto verticalBlur   = Root().resources.getShader("blur-vertical");
    auto horizontalBlur = Root().resources.getShader("blur-horizontal");

    horizontalBlur->setParameter("blurSize", 2.5 / w);
    verticalBlur->setParameter("blurSize", 2.5 / h);
    // pixel->setParameter("center", m_center.x, m_center.y);
    pixel->setParameter("size", w, h);

    m_renderTextures[0].setView(m_renderTextures[0].getDefaultView());
    m_renderTextures[1].setView(m_renderTextures[1].getDefaultView());
    m_renderTextures[0].setSmooth(true);
    m_renderTextures[1].setSmooth(true);

    if(m_shadersEnabled) {
        sprite = sf::Sprite(m_renderTextures[0].getTexture());
        m_renderTextures[1].draw(sprite, horizontalBlur.get());

        sprite = sf::Sprite(m_renderTextures[1].getTexture());
        m_renderTextures[0].draw(sprite, verticalBlur.get());

        sprite = sf::Sprite(m_renderTextures[0].getTexture());
        target.draw(sprite, pixel.get());
    } else {
        sprite = sf::Sprite(m_renderTextures[0].getTexture());
        target.draw(sprite);
    }

    // help
    setView(target);
    if(m_currentHelp != "" && m_helpProgress > 0 && m_helpProgress < 1) {
        float fade = glm::smoothstep(0.f, 0.1f, m_helpProgress) - glm::smoothstep(0.9f, 1.f, m_helpProgress);
        float wobble = sin(m_time * 5);

        float alpha = fade;
        float angle = tween::Cubic().easeIn(1 - fade, 0, 1, 1) * 0.2;
        float scale = (0.6 + 0.01 * wobble) * m_pixelSize;

        std::string texture = "help-" + m_currentHelp;
        auto tex = Root().resources.getTexture(texture);
        if(tex) {
            sf::Sprite sprite(*tex.get());
            glm::vec2 ang(-1, 0);
            glm::vec2 pos = m_player->position() - glm::vec2(0, 1.1f) + ang - glm::rotate(ang, angle);
            sprite.setPosition(pos.x, pos.y);
            sprite.setOrigin(tex->getSize().x / 2, tex->getSize().y / 2);
            sprite.setColor(sf::Color(255, 255, 255, 255 * alpha));
            sprite.setScale(scale, scale);
            sprite.setRotation(wobble + thor::toDegree(angle));
            target.draw(sprite);
        }
    }

    // message
    target.setView(target.getDefaultView());
    if(m_message != "") {
        float alpha = fmin(1, fmax(0, m_messageTime)) * fmin(1, fmax(0, 4 - m_messageTime));
        alpha = tween::Cubic().easeOut(alpha, 0, 1, 1);

        sf::Text text;
        text.setFont(* Root().resources.getFont("default"));
        text.setCharacterSize(36);
        text.setString(m_message);
        text.setStyle(sf::Text::Bold);
        text.setPosition(sf::Vector2f(target.getSize().x / 2 - text.getLocalBounds().width / 2, target.getSize().y * 0.8 - fabs(sin(m_time)) * 20));
        text.setColor(sf::Color(255, 255, 255, 255 * alpha));

        sf::Vector2f b(10, 5);
        sf::RectangleShape rect(sf::Vector2f(text.getLocalBounds().width + 2 * b.x, text.getLocalBounds().height * 1.5 + 2 * b.y));
        rect.setPosition(text.getPosition() - b);
        rect.setFillColor(sf::Color(0, 0, 0, 100 * alpha));

        target.draw(rect);
        target.draw(text);
    }

    if(Root().debug) {
        sf::Text text;
        text.setFont(* Root().resources.getFont("mono"));
        text.setCharacterSize(20);
        text.setString(std::to_string(getFPS()) + " FPS");
        text.setPosition(sf::Vector2f(10, 10));
        text.setColor(sf::Color(255, 255, 255, 100));
        target.draw(text);
    }

    if(m_levelFade) {
        sf::RectangleShape rect(sf::Vector2f(target.getSize()));
        rect.setFillColor(sf::Color(0, 0, 0, 255 * m_levelFade));
        target.draw(rect);
    }
}