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); }
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); }
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); }
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); }
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); }
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]); } } }
void drawRoomEditor(void) { projectCamera(&editorCamera); glLoadIdentity(); glPushMatrix(); glScalef32(editorScale,editorScale,editorScale); transformCamera(&editorCamera); drawEditorRoom(&editorRoom); drawEntities(); drawSelection(NULL); glPopMatrix(1); drawContextButtons(); glFlush(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(); }
/* 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); */ }
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); } }