bugün
- dem parti3
- pkklıların salıverilmesine uludağ sözlüğün tepkisi7
- çocuğa tecavüz eden adamın kurşuna dizilmesi5
- spor yapmak2
- gocunun freddy travması6
- ayşen gruda4
- pkk lılara af çıkması5
- adnan oktar vs fethullah gülen3
- victor osimhen8
- pazar kahvaltı klasikleriniz6
- cansever16
- futbol24
- namuslu filmi3
- kışlık domates konservesi yapmak5
- behlül bihter sevişmesinin reyting rekoru kırması5
- 09 ağustos 2026 istanbul da sağanak ve rüzgar uyar2
- okanınçükü2
- anın görüntüsü10
- şort giyen genç kıza saldıran yaşlı kadın31
- aym memur emeklilerine seyyanen zam kararı3
- türkiye pazar günü yeni bir sabaha uyanacak6
- galatasaray ın yine başını alması2
- çinliler4
- sözlük yazarlarına gelen son mesaj2
- okan buruk4
- naif insanlar4
- çirkef galatasaray5
- özgür özel3
- a9 tv2
- pocoyo daki pato'nun çok yakışıklı olması3
- almanya11
- katlanır bisiklet2
- enflasyon hedefinin tutmaması4
- lisede kızlara şiir okuyanlar şimdi ne yapıyor3
- ülke gündemini umursamamak4
- 9 ağustos 2026 gaziantep depremi3
- magnezyum ve colagen kullanmak6
- galatasaray14
- dünyanın 10 da birinin solak olması5
- zorunlu eğitim8
- sabah kahvesi5
- vfb stuttgart7
- bir bayanı kötü adamların elinden kurtarmak5
- italya7
- kadınlar neden kötü araba kullanır sorunsalı14
- fc internazionale milano6
- galatasaray neden transfer yapamıyor16
- günlük tutan erkek10
- borussia dortmund5
- ocakta doğmuş adamdan madam mı olur sorunsalı2
görsel
1920x1080 piksel genişliğinde, siyah arkaplanda bir penceremiz olsun, bunu 15x15 piksellik kutularla karolara dönüştürüp, ızgara grid düzeni yaratalım. çizgiler 1 piksel genişliğinde beyaz olucak.
grid düzleminde, mouse cursor, üzerinde olduğu her karoyu kırmızıya,
yatay ve dikey eksende taradığı tüm karoları da sarıya boyasın.
ekranda rastgele bir karoyu yeşil seçelim.
ve bu yeşil alanın,
mouse cursor un olduğu kırmızı karoyu her tıkladığımızda,
en kısa yolu nasıl seçtiğini merak ediyorsanız eğer,
cevabı çok basit.
path-finder algoritması!
#include <SFML/Graphics.hpp>
#include <vector>
#include <cmath>
int main() {
// 1920x1080 window
sf::RenderWindow window(sf::VideoMode(1920, 1080), "15x15 Grid with Mouse Highlight and Character");
window.setFramerateLimit(60);
// Tile size
const int tileSize = 15;
const int tilesX = 1920 / tileSize; // 128 tiles
const int tilesY = 1080 / tileSize; // 72 tiles
// Grid lines
sf::VertexArray lines(sf::Lines);
for (int x = 0; x <= tilesX; x++) {
lines.append(sf::Vertex(sf::Vector2f(x * tileSize, 0), sf::Color::White));
lines.append(sf::Vertex(sf::Vector2f(x * tileSize, 1080), sf::Color::White));
}
for (int y = 0; y <= tilesY; y++) {
lines.append(sf::Vertex(sf::Vector2f(0, y * tileSize), sf::Color::White));
lines.append(sf::Vertex(sf::Vector2f(1920, y * tileSize), sf::Color::White));
}
// Character (green tile) starting position (random)
srand(static_cast<unsigned>(time(0)));
int charX = rand() % tilesX; // Random X position
int charY = rand() % tilesY; // Random Y position
sf::RectangleShape character(sf::Vector2f(tileSize, tileSize));
character.setFillColor(sf::Color::Green);
// Target position for the character (where the mouse clicks)
int targetX = charX;
int targetY = charY;
// Path history (to paint with transparent blue)
std::vector<sf::Vector2i> path;
sf::Color transparentBlue(0, 0, 255, 100); // Transparent blue (alpha=100)
// Game loop
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed)
window.close();
// Left mouse button click to set target
if (event.type == sf::Event::MouseButtonPressed && event.mouseButton.button == sf::Mouse::Left) {
sf::Vector2i mousePos = sf::Mouse::getPosition(window);
targetX = mousePos.x / tileSize;
targetY = mousePos.y / tileSize;
path.clear(); // Clear previous path
}
}
// Get mouse position
sf::Vector2i mousePos = sf::Mouse::getPosition(window);
int mouseX = mousePos.x / tileSize;
int mouseY = mousePos.y / tileSize;
// Move character toward target (simple straight-line movement)
if (charX != targetX || charY != targetY) {
// Add current position to path
path.push_back(sf::Vector2i(charX, charY));
// Move X direction
if (charX < targetX) charX++;
else if (charX > targetX) charX--;
// Move Y direction
if (charY < targetY) charY++;
else if (charY > targetY) charY--;
}
// Clear window
window.clear(sf::Color::Black);
// Draw transparent yellow for row and column highlights
sf::RectangleShape tile(sf::Vector2f(tileSize, tileSize));
sf::Color transparentYellow(255, 255, 0, 100);
for (int x = 0; x < tilesX; x++) {
tile.setPosition(x * tileSize, mouseY * tileSize);
tile.setFillColor(transparentYellow);
window.draw(tile);
}
for (int y = 0; y < tilesY; y++) {
tile.setPosition(mouseX * tileSize, y * tileSize);
tile.setFillColor(transparentYellow);
window.draw(tile);
}
// Draw the path (transparent blue)
for (const auto& pos : path) {
tile.setPosition(pos.x * tileSize, pos.y * tileSize);
tile.setFillColor(transparentBlue);
window.draw(tile);
}
// Draw character (green tile)
character.setPosition(charX * tileSize, charY * tileSize);
window.draw(character);
// Draw mouse-highlighted tile (red)
tile.setPosition(mouseX * tileSize, mouseY * tileSize);
tile.setFillColor(sf::Color::Red);
window.draw(tile);
// Draw grid lines on top
window.draw(lines);
// Update window
window.display();
}
return 0;
}
1920x1080 piksel genişliğinde, siyah arkaplanda bir penceremiz olsun, bunu 15x15 piksellik kutularla karolara dönüştürüp, ızgara grid düzeni yaratalım. çizgiler 1 piksel genişliğinde beyaz olucak.
grid düzleminde, mouse cursor, üzerinde olduğu her karoyu kırmızıya,
yatay ve dikey eksende taradığı tüm karoları da sarıya boyasın.
ekranda rastgele bir karoyu yeşil seçelim.
ve bu yeşil alanın,
mouse cursor un olduğu kırmızı karoyu her tıkladığımızda,
en kısa yolu nasıl seçtiğini merak ediyorsanız eğer,
cevabı çok basit.
path-finder algoritması!
#include <SFML/Graphics.hpp>
#include <vector>
#include <cmath>
int main() {
// 1920x1080 window
sf::RenderWindow window(sf::VideoMode(1920, 1080), "15x15 Grid with Mouse Highlight and Character");
window.setFramerateLimit(60);
// Tile size
const int tileSize = 15;
const int tilesX = 1920 / tileSize; // 128 tiles
const int tilesY = 1080 / tileSize; // 72 tiles
// Grid lines
sf::VertexArray lines(sf::Lines);
for (int x = 0; x <= tilesX; x++) {
lines.append(sf::Vertex(sf::Vector2f(x * tileSize, 0), sf::Color::White));
lines.append(sf::Vertex(sf::Vector2f(x * tileSize, 1080), sf::Color::White));
}
for (int y = 0; y <= tilesY; y++) {
lines.append(sf::Vertex(sf::Vector2f(0, y * tileSize), sf::Color::White));
lines.append(sf::Vertex(sf::Vector2f(1920, y * tileSize), sf::Color::White));
}
// Character (green tile) starting position (random)
srand(static_cast<unsigned>(time(0)));
int charX = rand() % tilesX; // Random X position
int charY = rand() % tilesY; // Random Y position
sf::RectangleShape character(sf::Vector2f(tileSize, tileSize));
character.setFillColor(sf::Color::Green);
// Target position for the character (where the mouse clicks)
int targetX = charX;
int targetY = charY;
// Path history (to paint with transparent blue)
std::vector<sf::Vector2i> path;
sf::Color transparentBlue(0, 0, 255, 100); // Transparent blue (alpha=100)
// Game loop
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed)
window.close();
// Left mouse button click to set target
if (event.type == sf::Event::MouseButtonPressed && event.mouseButton.button == sf::Mouse::Left) {
sf::Vector2i mousePos = sf::Mouse::getPosition(window);
targetX = mousePos.x / tileSize;
targetY = mousePos.y / tileSize;
path.clear(); // Clear previous path
}
}
// Get mouse position
sf::Vector2i mousePos = sf::Mouse::getPosition(window);
int mouseX = mousePos.x / tileSize;
int mouseY = mousePos.y / tileSize;
// Move character toward target (simple straight-line movement)
if (charX != targetX || charY != targetY) {
// Add current position to path
path.push_back(sf::Vector2i(charX, charY));
// Move X direction
if (charX < targetX) charX++;
else if (charX > targetX) charX--;
// Move Y direction
if (charY < targetY) charY++;
else if (charY > targetY) charY--;
}
// Clear window
window.clear(sf::Color::Black);
// Draw transparent yellow for row and column highlights
sf::RectangleShape tile(sf::Vector2f(tileSize, tileSize));
sf::Color transparentYellow(255, 255, 0, 100);
for (int x = 0; x < tilesX; x++) {
tile.setPosition(x * tileSize, mouseY * tileSize);
tile.setFillColor(transparentYellow);
window.draw(tile);
}
for (int y = 0; y < tilesY; y++) {
tile.setPosition(mouseX * tileSize, y * tileSize);
tile.setFillColor(transparentYellow);
window.draw(tile);
}
// Draw the path (transparent blue)
for (const auto& pos : path) {
tile.setPosition(pos.x * tileSize, pos.y * tileSize);
tile.setFillColor(transparentBlue);
window.draw(tile);
}
// Draw character (green tile)
character.setPosition(charX * tileSize, charY * tileSize);
window.draw(character);
// Draw mouse-highlighted tile (red)
tile.setPosition(mouseX * tileSize, mouseY * tileSize);
tile.setFillColor(sf::Color::Red);
window.draw(tile);
// Draw grid lines on top
window.draw(lines);
// Update window
window.display();
}
return 0;
}
Gündemdeki Haberler
Güncel Önemli Başlıklar