#include #include #include "engine.h" void printHelp() { std::cout << "ViBe3 Physics - Simulador de físicas avanzadas\n"; std::cout << "\nUso: vibe3_physics [opciones]\n\n"; std::cout << "Opciones:\n"; std::cout << " -w, --width Ancho de resolución (default: 1280)\n"; std::cout << " -h, --height Alto de resolución (default: 720)\n"; std::cout << " -f, --fullscreen Modo pantalla completa\n"; std::cout << " --help Mostrar esta ayuda\n\n"; std::cout << "Ejemplos:\n"; std::cout << " vibe3_physics # 1280x720 ventana\n"; std::cout << " vibe3_physics -w 1920 -h 1080 # 1920x1080 ventana\n"; std::cout << " vibe3_physics -w 1920 -h 1080 -f # 1920x1080 fullscreen\n"; } int main(int argc, char* argv[]) { int width = 0; int height = 0; bool fullscreen = false; // Parsear argumentos for (int i = 1; i < argc; i++) { if (strcmp(argv[i], "--help") == 0) { printHelp(); return 0; } else if (strcmp(argv[i], "-w") == 0 || strcmp(argv[i], "--width") == 0) { if (i + 1 < argc) { width = atoi(argv[++i]); if (width < 640) { std::cerr << "Error: Ancho mínimo es 640px\n"; return -1; } } else { std::cerr << "Error: -w/--width requiere un valor\n"; return -1; } } else if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--height") == 0) { if (i + 1 < argc) { height = atoi(argv[++i]); if (height < 480) { std::cerr << "Error: Alto mínimo es 480px\n"; return -1; } } else { std::cerr << "Error: -h/--height requiere un valor\n"; return -1; } } else if (strcmp(argv[i], "-f") == 0 || strcmp(argv[i], "--fullscreen") == 0) { fullscreen = true; } else { std::cerr << "Error: Opción desconocida '" << argv[i] << "'\n"; printHelp(); return -1; } } Engine engine; if (!engine.initialize(width, height, fullscreen)) { std::cout << "¡Error al inicializar el engine!" << std::endl; return -1; } engine.run(); engine.shutdown(); return 0; }