Jump to content

Search the Community

Showing results for tags 'sdl'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Discussions communautaires
    • Annonces importantes
    • Suggestions
    • Postulation
    • Présentation des membres
    • Discussions générales
    • Multimédias
    • Jeux vidéos
    • Actualités
    • Aide / Support
    • Études
    • Archives
  • Informatique
    • Projets des membres
    • Autres / Divers / Découvertes
    • Crypto-monnaie(s)
    • Réseaux
    • Gestion de serveur
    • Système d'exploitation : Smartphone
    • Système d'exploitation : Ordinateur
  • Programmation
    • Projets des membres
    • Développement web
    • Développement de logiciels
    • Développement d'applications pour smartphones
    • Outils du développeur
    • Aide / Support
  • Emulation
  • Partenariats

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Skype


Site web


AIM


MSN


ICQ


Yahoo


Jabber


Tox


Centres d'interêts


Localisation


Study level

Found 6 results

  1. bonjour à tous les melinyeliens Je suis Antoine Pinet 20 ans, (pseudo: cegdd) J'ai commencé à apprendre le langage C grâce au défunt site du zéro, et au livre dudit langage de matéo21 il y a environ 5/6 ans. Évidemment il y a eu des pauses mais je pense avoir acquis assez de connaissances dans ce langage pour mener ce projet a son terme. Ce projet a été commencé il y a maintenant 2 ans. Il a beaucoup changé . Ou plutôt ÉVOLUÉ . Il se nomme Reconquête Salvatrice, c'est un jeu en 2D vue dessus et de coté (pas en même temps hein !) en ligne et hors ligne (pas en même temps non plus !) Reconquête Salvatrice est comme dit au dessus, écrit en C et utilise les librairies: SDL2.0.1 SDL_image 2.0 SDL-ttf 2.0.12 pthread Le projet est composé de 4 parties : le launcher [obselète] [en attente] le jeu [codé] [a jour] [disponible sur notre site] le serveur [codé] [a jour] [non disponible] le site web [codé] [a jour] [ www.reconquete-salvatrice.fr ] Le jeu commence par une page de log qui vous demande de connecter un personnage précédemment créé ou d'en créer un. Le jeu est instancié en carte et en époque, chaque carte possède sa propre époque, arme etc .. Nous somme donc libre sur la carte en vue de dessus. Les combats sont en temps réel mais NE sont PAS sur la même instance que la carte. (je suis clair ? ) En gros, ça lance un combat comme dans un pokemon mais en temps réel vue de coté donc pas de tour par tour. Chaque joueur connecté à internet voit les autres joueurs sur la carte. Objectifs: L'objectif est d'avoir un jeu stable, multiplateforme et peuplé. (Ben oui ! Un jeu multijoueur désert n'as pas d’intérêt) Le rêve serais d'être disponible GRATUITEMENT sur steam et sur les gestionnaire de paquet UNIX Il y a encore du travail je le sais ! Voici la liste des choses a faire dans cet ordre : Fenêtre de dialogue [Fait] Chat[fait] Inventaire [fait] crafting[fait] Mode arcade[fait] ajout de monstres et d'attaques Et tant d'autres ... =D Je ne vois que dire ... alors place aux images !! la page de log : la carte du jeu : les interfaces : Le jeu est disponible ici sur le site ici : Reconquête Salvatrice ou en pièce jointe avec le poste vu que votre forum le permet =) non vu qu'il n'accepte pas les .rar :/ J’attends vos retours de tests et questions avec impatience.
  2. bonjour bonjour ! pour j'ai codé un petit algorithme qui me permet de tester si notre personnage fait face à une image ou non. le tout avec une marge dynamique pour les non-initié à la SDL, la structure SDL_Rect contient les coordonnées : x, y, w et h d'une image. j'ai crois donc qu'il est important de vous le faire partager bool colisionfromage(SDL_Rect lanceur, SDL_Rect recepteur, SDL_Rect curseur, double marge) { double degre, degre2, diff; int difx, dify; difx = (lanceur.x + lanceur.w/2) - (curseur.x + curseur.w/2); //calcul de la difference en pixel dify = (lanceur.y + lanceur.h/2) - (curseur.y + curseur.h/2); //entre le lanceur et le pointeur de la souris degre = atan2(dify, difx);//obtention de l'angle en radian difx = (lanceur.x + lanceur.w/2) - (recepteur.x + recepteur.w/2); //calcul de la difference en pixel entre dify = (lanceur.y + lanceur.h/2) - (recepteur.y + recepteur.h/2); //le lanceur et l'objectif degre2 = atan2(dify, difx);//obtention de l'angle en radian degre *= 57.296;//conversion en degre degre2 *= 57.296; degre += 180; //ajustement pour passer d'un systeme (-180/180) à un systeme (0/360) degre2 += 180; diff = degre-degre2;//calcul de la différence if (diff < 0) //si diff est négatif, on le passe en positif { diff *= -1; } if (diff <= 0 || diff >= marge/2) //si la différence est plus grande que la marge, nous retournons FAUX { return FALSE; } return TRUE; } si vous avez des questions / remarques, comme d'habitude, je vous écoute ! edit : je sais que ce code a un défaut, le calcul de la différence ne marche pas si l'un est <360 et l'autre >0. mais je ne sais pas comment gérer ça simplement. des idées ?
  3. Salut tout le monde ! en exclusivité pour mes chers Melinyens ... comment installer la bibliothèque SDL2 et ses filles sur code::blocks (windows x32 / x64) ! j'avais dis que je n'expliquerais pas cela pour plusieurs raisons : je ne suis pas un professionnel des installations de bibliothèques je ne vous garanti donc pas la propreté de l'installation. il existe déjà des tutoriels qui traitent ce sujet. (et même des templates tout fait sur develloppez.com !) mais ... je vois beaucoup trop de personnes qui me demandent des conseils là dessus donc je me lance ! 1) le téléchargement : pour être complet vous allez avoir besoin des bibliothèque cité ci-dessous : La SDL : https://www.libsdl.org/download-2.0.php La SDL_image : https://www.libsdl.org/projects/SDL_image/ La SDL_ttf : https://www.libsdl.org/projects/SDL_ttf/ La SDL_mixer : http://www.libsdl.org/projects/SDL_mixer/ sur chaque pages, vous prendrez ce lien : 2) le positionnement des fichiers : maintenant que vous avez tout téléchargé, vous devriez avoir des fichiers en ".tar.gz", décompressez les avec votre logiciel de compression/décompression habituel. les dossiers ainsi obtenu devrais ressembler a ça : ouvrez le dossier entouré en rouge. ne prenez pas les dossiers en x64 même si votre ordinateur est en x64 ! (bien entendu je m’adresse ici a un public tout aussi amateur que moi. si vous savez ce que vous faites et que votre compilateur est en x64, faites ce qu'il vous plait ) copiez maintenant dans chacune des bibliothèque précédemment téléchargées le dossier "include", "bin" et "lib" et fusionnez les avec ceux du compilateur que vous devriez trouver à l'emplacement montré ci-dessous : 3) la configuration : et maintenant ... CODE::BLOCKS !!! créez un nouveau projet vierge "empty project", puis allez dans : vous devriez avoir cette fenêtre ----------------------------------| | assurez vous d'être bien dans la racine ici ! | | v----------------------------------------------------- v vous devez maintenant en premier, cliquer sur "add" et écrire "mingw32", puis parcourir vos fichiers pour lui indiquer tout les fichiers ".a" que vous voyez ci-dessus. Dans le même ordre ! mais ce n'est pas fini ! vous devez ensuite ajouter les dossiers "lib" et "include" de votre compilateur, comme montré ci-dessous ! et enfin : TADAM ! ! ! votre projet est maintenant configuré ! il reste cependant un toouuuuuuut petit détail, pour pouvoir lancer votre ".exe", vous devez copier à coté du .exe toutes les ".dll" que vous trouverez dans le dossier "bin" de chaque bibliothèque ajoutée. et voila ! n'hésitez pas à poser des questions ou à me dire si vous trouvez une erreur. pour essayer la configuration, je vous invite à lire le premier tutoriel sur la SDL2
  4. cegdd

    [TUTO] SDL 2.0

    Bonjour à tous, Ce tuto a pour but de vous apprendre les bases de la bibliotheque SDL, et plus précisément la 2.0. Les exemples de codes seront rédigés en C car c'est le language dans lequel est écris la SDL, bien que la SDL suporte le C++ et dispose de bindings pour le C#, le Pascal et le Python. j'imagine donc que vous maitrisez votre langage pour la suite. Code minimal Pour tester l'installation et expliquer les premières fonctions voici un code de base. int main (int argc, char *argv[]) { SDL_Init (SDL_INIT_VIDEO); SDL_Window *screen; SDL_Renderer *renderer; screen = SDL_CreateWindow("tuto", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_RESIZABLE); renderer = SDL_CreateRenderer(screen, -1, SDL_RENDERER_ACCELERATED); SDL_RenderPresent(renderer); SDL_Delay(2000); SDL_Quit(); return 0; } SDL_Init (SDL_INIT_VIDEO); Fonction initialisant la sdl. retour : retourne une valeur négative en cas d'erreur. paramètres : SDL_INIT_TIMER sous-système temps SDL_INIT_AUDIO sous-système audio SDL_INIT_VIDEO sous-système video SDL_INIT_JOYSTICK sous-système pour joystick SDL_INIT_HAPTIC sous-système pour le tactile SDL_INIT_GAMECONTROLLER sous-système mannette de jeu SDL_INIT_EVENTS sous-système pour les évènement SDL_INIT_EVERYTHING tout les sous-système au dessus SDL_INIT_NOPARACHUTE ne prend pas en compte les signaux comme SIGSEGV SIGPIPE etc DANGEREUX SDL_CreateWindow("tuto", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_RESIZABLE); fonction créant la fenêtre de notre programme. retour : retourne un pointeur vers la structure "SDL_Window" nouvellement créée. paramètres : le titre de la fenêtre le point x de la fenêtre ou "SDL_WINDOWPOS_CENTERED" et "SDL_WINDOWPOS_UNDEFINED" le point y de la fenêtre ou "SDL_WINDOWPOS_CENTERED" et "SDL_WINDOWPOS_UNDEFINED" la taille horizontale de la fenêtre la taille verticale de la fenêtre encore des flags que voici : SDL_WINDOW_FULLSCREEN plein écran SDL_WINDOW_FULLSCREEN_DESKTOP plein écran a la résolution du bureau SDL_WINDOW_OPENGL fenêtre de contexte pour OpenGL SDL_WINDOW_SHOWN fenêtre visible SDL_WINDOW_HIDDEN fenêtre invisible SDL_WINDOW_BORDERLESS fenêtre sans contour SDL_WINDOW_RESIZABLE fenêtre redimensionnable SDL_WINDOW_MINIMIZED fenêtre minimisée SDL_WINDOW_MAXIMIZED fenêtre agrandie SDL_WINDOW_INPUT_GRABBED window has grabbed input focus SDL_WINDOW_INPUT_FOCUS window has input focus SDL_WINDOW_MOUSE_FOCUS window has mouse focus SDL_WINDOW_FOREIGN pas de fenêtre SDL_WINDOW_ALLOW_HIGHDPI fenêtre en mode High-DPI (SDL2.0.1 ou plus) SDL_CreateRenderer(screen, -1, SDL_RENDERER_ACCELERATED); Créer un renderer (le renderer est la vue, la surface que l'on va afficher à l'écran). retour : retourne un pointeur vers la structure "SDL_Renderer" nouvellement créée. paramètres: le pointeur vers la structure SDL_Window créée précédemment. j'aurais aimé vous expliquer mais malheureusement aucune doc ou tuto n'est clair là dessus du coup, ne vous en occupez pas et donnez -1 comme argument. ce sont encore des flags, vous pouvez en mettre plusieurs. SDL_RENDERER_SOFTWARE rendu calculé par le CPU SDL_RENDERER_ACCELERATED rendu calculé par le GPU (grosse nouveauté de la SDL2.0) SDL_RENDERER_PRESENTVSYNC rendu synchronisé avec le taux de rafraichissement de votre écran SDL_RENDERER_TARGETTEXTURE rendu pour texture SDL_RenderPresent(renderer); fonction affichant le rendu sur l'écran paramètre : le pointeur vers la structure SDL_Renderer créée précédemment. SDL_Delay(2000); fonction qui met le programme en pause pendant x milisecondes paramètre: le nombre de milisecondes SDL_Quit(); fonction qui ferme la sdl explication : si vous lancez ce code, vous devriez avoir une fenêtre noire pendant 2 secondes. c'est tout à fait normal. à bientôt
  5. cegdd

    [TUTO] SDL2.0 #2

    Bonjour à tous ! ça fait un moment que j'en parle, voici la suite du premier cours sur la SDL2 ! malheureusement le temps me manque, le peu de temps dont je dispose, je n'ais pas de connexion internet. la solution la plus simple est donc d'écrire le code source du cours en le SURcommentant le code source qui vas suivre vous montre étape par étape comment animer le personnage de rayman® grâce a la SDL2. //pour le type bool #include <stdbool.h> //pour les atexit #include <stdlib.h> //pour les printf #include <stdio.h> //les includes SDL #include <SDL2/SDL.h> #include <SDL2/SDL_image.h> int main () { //initialisation de la sdl if (SDL_Init (SDL_INIT_VIDEO) < 0) { printf("erreur SDL_Init: %s\n", SDL_GetError()); return EXIT_FAILURE; } atexit(SDL_Quit); //initialisation de la sdl_image if (IMG_Init(IMG_INIT_PNG) < 0) { printf("erreur IMG_Init: %s\n", SDL_GetError()); return EXIT_FAILURE; } atexit(IMG_Quit); //contexte d'affichage SDL_Window *screen; //tampon de rendu SDL_Renderer *renderer; //position de l'écran, de rayman et des différents sprites de rayman SDL_Rect pecran, prayman; SDL_Rect raymantiles[16]; unsigned int temps, tempsbride = 0, tempsanim = 0, index, anim = 0; bool droite = true; //initialisation des positions pecran.x = 0; pecran.y = 0; prayman.w = 120; prayman.h = 136; for(index = 0 ; index < 6 ; index++) { raymantiles[index].x = index*60; raymantiles[index].y = 1100; raymantiles[index].w = 60; raymantiles[index].h = 68; } for(index = 0 ; index < 6 ; index++) { raymantiles[index+6].x = index*60; raymantiles[index+6].y = 68+1100; raymantiles[index+6].w = 60; raymantiles[index+6].h = 68; } for(index = 0 ; index < 4 ; index++) { raymantiles[index+12].x = index*60; raymantiles[index+12].y = 136+1100; raymantiles[index+12].w = 60; raymantiles[index+12].h = 68; } //suppression du curseur de souris SDL_ShowCursor(SDL_DISABLE); //création de la fenêtre screen = SDL_CreateWindow("Rayman_like", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 0, 0, SDL_WINDOW_FULLSCREEN_DESKTOP); //création du tampon de rendu renderer = SDL_CreateRenderer(screen, -1, SDL_RENDERER_ACCELERATED); //récupération de la taille de l'écran SDL_GetWindowSize(screen , &pecran.w , &pecran.h); //mise en position de rayman prayman.x = (pecran.w/2)-(prayman.w/2); prayman.y = (pecran.h*0.65)-(prayman.w/2); // chargement des images SDL_Texture *fond = IMG_LoadTexture(renderer, "fond.jpg"); SDL_Texture *rayman = IMG_LoadTexture(renderer, "rayman.png"); //test d'erreur a la création de la fenêtre, du tampon de rendu et des images. (fonction critiques qui peuvent rencontrer des erreurs if (screen == NULL || renderer == NULL || fond == NULL || rayman == NULL) { printf("erreur: %s\n", SDL_GetError()); return EXIT_FAILURE; } //entrée en boucle principale while(1) { //récupération du temps temps = SDL_GetTicks(); //si le programme tourne depuis "x" ms, on quitte; if (temps >= 7000) { break; } //test pour changer le sprite d'animation si "x" ms sont écoulées if (temps - tempsanim >= 60) { //sauvegarde du temps actuel pour la prochaine itération tempsanim = temps; //sprite suivant anim++; //si le dernier sprite est atteint, on reviens au premier if(anim == 16){anim = 0;} } //bride pour sinchro ecran ~60fps if (temps - tempsbride >= 16) { //assignation du temps actuel pour la prochaine itération tempsbride = temps; //si rayman touche la bordure d'écran a droite, il fait demi tour ! if (prayman.x + prayman.w >= pecran.w) { droite = false; } //si il touche la bordure gauche, il fait de même. else if (prayman.x <= 0) {droite = true;} //vidage du tampon de rendu SDL_RenderClear(renderer); //copie du fond sur le tampon SDL_RenderCopy(renderer, fond, NULL, &pecran); //si rayman vas à gauche if (!droite) { //décrémentation horizontale de la position de rayman. prayman.x -= 5; //copie de rayman (en inversant le sens de l'image) sur le tampon SDL_RenderCopyEx(renderer, rayman, &raymantiles[anim], &prayman, 0,NULL, SDL_FLIP_HORIZONTAL); } //sinon else { //incrémentation horizontale de la position de rayman. prayman.x += 5; //copie de rayman sur le tampon SDL_RenderCopy(renderer, rayman, &raymantiles[anim], &prayman); } //affichage du tampon de rendu sur l'écran. SDL_RenderPresent(renderer); } else { // si l'écran ne suis pas, ont fait une pause. // cela permet de grandement libérer le CPU. SDL_Delay(5); } } //programme terminé return EXIT_SUCCESS; } si vous compilez chez vous, vous devriez avoir un résultat s'approchant de ça: https://www.youtube.com/watch?v=fTFRiKdBPec (a noter qu'ici le déplacement était au clavier et non automatique) pour tout commentaire ou question, je suis présent pour vous répondre voici les fichiers pour ceux qui voudrais le compiler et le modifier pour s’entraîner ----> ICI
  6. Petite suggestion pour vous proposer un tuto sur la SDL2, tuto dont les exemples seront en C pour deux raisons: c'est le langage originel de la SDL. c'est le seul langage que je maitrise. Je pense passer l'étape de l'installation, car beaucoup de personnes sont bloquées à cette étape et un bon tuto bien complet existe déjà sur développez.com ici : http://alexandre-laurent.developpez.com/tutoriels/sdl-2/installation-et-configuration/ Donc avant de penser à un plan de construction du tuto, je veux juste vous demander si ça vous intéresse. Alors ? Ça vous intéresse ?
×
×
  • Create New...