Birthday PurePunch

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
TazNormand
Messages : 1294
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Birthday PurePunch

Message par TazNormand »

Bonjour à toutes et tous

comme Falsam vous l'a fait remarqué dans son topic "Bon anniversaire à Purebasic", PureBasic a 15 ans.

C'est pourquoi j'organise un Birthday PurePunch, o̶ù̶ ̶i̶l̶ ̶n̶'̶y̶ ̶a̶ ̶r̶i̶e̶n̶ ̶à̶ ̶g̶a̶g̶n̶e̶r̶ ̶(̶p̶o̶u̶r̶ ̶l̶e̶ ̶m̶o̶m̶e̶n̶t̶)̶, et qui doit avoir un rapport avec Purebasic et/ou ses forums.

EDIT du 14 Octobre 2015 : Le concours est prolongé jusqu'au 15 novembre 2015 23h59, ce qui permettra au personnes qui on besoin de temps de finaliser leur projet, et à ceux qui hésitaient à participer de proposer un code.


EDIT du 29 Septembre 2015 : Un prix de 15€ (non réclamé et "ré-offert" par Falsam lors du précédent PurePunch, merci à lui et à Fred) est offert au gagnant, suivant les même règles que le précédent PurePunch :
Fred et Fantaisie Software offrent un lot d'une valeur de 15€, à valoir dans la boutique Thinkgeek ou un équivalent local (voir sur Amazon).


Je recopie/modifie ici les règles définies par Djes sur les anciens PurePunchs. Si quelques un veulent offrir quelque chose, un petit Message Privé à mon intention sera le bienvenu.

Personnellement, j'affectionne tout ce qui est OldSchool, donc lachez-vous sur les effets graphiques 2D, sur un remake de vieux jeu, de intro/cracktro etc...
English Translation for non french readers a écrit : Hello Mates

as Falsam as told us on this topic "Bon anniversaire à Purebasic", PureBasic is now 15 years old.

So , it's time for a "Birthday Punch", where there is nothing to win (at this moment), but which must be concerned by Purebasic and/or his forums.

I copy here the previous rules Djes established on old PurePunchs. If someone want to offer a prize, send me a little Private Message.

My own wishes are : all OldSchool computer stuff, so let your imagination run on 2D Demo FX, old game remake, intro/cracktro remake...
Les règles
  • 1° Le programme sera fait en Purebasic version 5.24 minimum mais 5.40 interdite, Version démo autorisée, les APIs sont autorisées mais pas l'ajout de bibliothèque utilisateur (userlib), Ogre, DirectX, OpenGL autorisés.
    2° Le source du programme fera au maximum 192 lignes de texte de 80 caractères max par ligne, réparties comme vous le souhaitez pour le code et les DATAs (voir la documentation). Il est possible de scinder son source en plusieurs fichiers texte, par exemple le code PB, plus un fichier pour les données, un shader Ogre, un fichier de préférences, des données XML, etc. Mais la taille des fichiers est cumulative et les règles s'appliquent : l'ensemble des fichiers concaténés ne doit faire que 192 lignes de texte, de 80 caractères maximum par ligne.
    3° Etre original, c'est à dire soit être une création complète, soit apporter quelque chose de nouveau à un code existant.
    Ne pas être néfaste.
    Aucun fichier binaire caché autorisé. Seules les fichiers "Image" max 1920x1080 autorisés et 5 maxi, ainsi qu'un fichier "musical" reconnu nativement par PureBasic (ogg/mp3/wav/xm/s3m/mod) 1Mo max.
    6° Il sera possible d'ajouter une ligne de code (non comptée) en début de source avertissant l'utilisateur d'une spécificité du programme (comme par exemple une attente ou la nécessité d'utiliser une bibliothèque sous-système particulière). Celle-ci devra être de la forme

    Code : Tout sélectionner

    MessageRequester("Information", "Message", #PB_MessageRequester_Ok)
    3 codes maximum par membre seront autorisés !!!
    Date et heure limite : 15 octobre 2015, 23:59:59 GMT
  • A la fin de la période, un fil pour le vote sera mis en place afin d'élire le meilleur programme. Seules les personnes inscrites sur le forum avant le 1er septembre 2015 pourront voter (3 points pour le 1er, 2 points pour le second, 1 point pour le troisième). Les votants pourront télécharger et désigner leurs trois programmes favoris jusqu'au 15 novembre à 23:59:59 GMT.
Comment poster
  • Postez le code dans le forum après y avoir ajouté et complété l'entête suivant (les lignes ne comptent pas dans les 192) :

Code : Tout sélectionner

;*****************************************************************************
;*
;* Birthday Punch : PureBasic 15 years of happiness
;* PureBasic 5.xx
;* 192 lines of 80 chars of code or data as you want
;*
;* Name     :  
;* Author   : 
;* Date     : 
;* Notes    :
;*
;*****************************************************************************
Bonne chance à tous les compétiteurs ! :)

PS: Les anciens PurePunchs sur le forum français
Lien vers le topic anglais : Birthday PurePunch on English Forum
Image
Image
Avatar de l’utilisateur
Vera
Messages : 45
Inscription : sam. 12/sept./2015 10:31
Localisation : Allemagne

Re: Birthday Punch

Message par Vera »

Magnifique entreprise - Merci à vous deux 8)

J'espère que je peux participer de nouveau ... et j'ai aussi une première idée ... et ce sera vert Image

àloé ~ Vera
Faites-moi savoir, s'il vous plaît, si mon français n'est pas assez compréhensible. ~ merci ~
Le texte encadré est d'un traducteur.
Avatar de l’utilisateur
Huitbit
Messages : 939
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Re: Birthday Punch

Message par Huitbit »

PurePunch :P ?

Il y en a qui ne vont pas pouvoir résister :lol: :lol: :lol:
Elevé au MSX !
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: Birthday PurePunch

Message par Micheao »

Je voudrais bien participer mais je sais pas codé d'animations .
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Birthday PurePunch

Message par microdevweb »

@Micheao,
Tu n'est pas obligé de code une animation jette un œil sur l’excellent tuto de Falsam
http://www.purebasic.fr/french/viewtopi ... hilit=bird tu apprendra beaucoup de chose
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: Birthday PurePunch

Message par SPH »

Micheao a écrit :Je voudrais bien participer mais je sais pas codé d'animations .
SANS DEC ! :mrgreen:
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: Birthday PurePunch

Message par Micheao »

Merci microdevweb pour le lien mais j'ai pas tout compris dans le code de falsam
Avatar de l’utilisateur
TazNormand
Messages : 1294
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Birthday PurePunch

Message par TazNormand »

Micheao a écrit :Je voudrais bien participer mais je sais pas codé d'animations .
Une animation simple n'est pas bien compliquée :
1° Ouvrir un écran graphique
2° initialiser variables (déplacement, taille écran...)
3° créer un sprite
4° faire une boucle jusqu'à évènement type clic souris/touche escape
4.1° dans la boucle, effacer l'écran
4.2° afficher le sprite aux coordonnées calculées et souhaitées
4.3° incrémenter ou décrémenter variables de déplacement
4.4° inverser les buffers
4.5° fin de la boucle par test évènement (clic ou escape par exemple)
5° fin du programme

Code : Tout sélectionner

;*****************************************************************************
;*
;* Mini tuto pour JB13/Micheo
;*
;*****************************************************************************

; initialiser quelques "composant" PB
InitKeyboard()
InitMouse()
InitSprite()

; taille de notre écran graphique
Global scrW.i=1024 ; largeur en pixels
Global scrH.i=768  ; hauteur en pixels

; variables de déplacement
x.i=scrW + 64 ; positions x correspond à largeur de notre écran + largeur du sprite
y.i=Int(scrH/2) ; position y correspond au milieu vertical de notre écran graphique

; ouvrir écran graphique
If OpenScreen(scrW,scrH,32,"Tuto simpliste")  
  ; on va déplacer notre sprite grace à x et y
  
  ; création du sprite
  CreateSprite(0,64,64,#PB_Sprite_AlphaBlending)
  StartDrawing(SpriteOutput(0))
  Box(0,0,64,32,RGB(Int(Random(255)),Int(Random(255)),Int(Random(255))))
  DrawText(5,10,"Micheao",RGB(255,128,64),RGB(0,0,0))  
  StopDrawing()

  ; on boucle jusqu'à ce que l'utilisateur clique sur le bouton gauche ou appuie sur la touche escape
  Repeat
    ; on efface l'écran avec un fond noir
    ClearScreen(RGB(0,0,0))
    
    ; on examine les entrées clavier et souris
    ExamineMouse()
    ExamineKeyboard()
    
    ; on affiche notre sprite    
    DisplaySprite(0,x,y)
    
    ; on décrémente x pour faire défiler vers la droite
    x-2 ; plus x est petit plus le scroll est lent, et donc plus x est grand plus c'est rapide
    
    ; on teste si notre sprite est sorti de l'écran par la droite
    ; c'est à dire position 0 moins taille du sprite (0-64 => -64)
    ; si c'est le cas on remet x à scrW+taille du sprite (1024+64=>1088)
    If x<-64
      x=scrW+64
    EndIf
        
    ; on inverse les buffers
    FlipBuffers()
  Until KeyboardPushed(#PB_Key_Escape) Or MouseButton(#PB_MouseButton_Left)
EndIf

End
Variante :

Code : Tout sélectionner

;*****************************************************************************
;*
;* Mini tuto pour JB13/Micheo
;*
;*****************************************************************************

; initialiser quelques "composant" PB
InitKeyboard()
InitMouse()
InitSprite()

; taille de notre écran graphique
Global scrW.i=1024 ; largeur en pixels
Global scrH.i=768  ; hauteur en pixels

; variables de déplacement
x.i=Int(scrW/2) ; positions x et y correspondend au centre de l'écran
y.i=Int(scrH/2)

; variable de décrémentation/incrémentation
pasX.i=-2
pasY.i=-2

; ouvrir écran graphique
If OpenScreen(scrW,scrH,32,"Tuto simpliste")  
  ; on va déplacer notre sprite grace à x et y
  
  ; création du sprite
  CreateSprite(0,64,32,#PB_Sprite_AlphaBlending)
  StartDrawing(SpriteOutput(0))
  Box(0,0,64,32,RGB(Int(Random(255)),Int(Random(255)),Int(Random(255))))
  DrawText(5,10,"Micheao",RGB(255,128,64),RGB(0,0,0))  
  StopDrawing()
  
  ; on boucle jusqu'à ce que l'utilisateur clique sur le bouton gauche ou appuie sur la touche escape
  Repeat
    ; on efface l'écran avec un fond noir
    ClearScreen(RGB(0,0,0))
    
    ; on examine les entrées clavier et souris
    ExamineMouse()
    ExamineKeyboard()
    
    ; on affiche notre sprite    
    DisplaySprite(0,x,y)
    
    ; on change les valeurs de x est y par palier de pasX et pasY
    x+pasX
    y+pasY
    
    ; on teste x et y pour que notre sprite rebondisse sur l'écran
    ; c'est à dire si x<0 ou x>(scrW - largeur sprite), alors on change de direction, 
    ; idem pour y mais par rapport à scrH et hauteur du sprite
    ; pour changer de direction on multiplie le pas par -1, comme ça si le pas vaut -2 (comme définit initialement)
    ; le multiplier par -1 lui permet de changer de signe, donc x ou y devient 2    
    If x<0 Or x>(scrW - 64)
      pasX=pasX * -1
    EndIf
    If y<0 Or y>(scrH - 32)
      pasY=pasY * -1
    EndIf
    
    ; on inverse les buffers
    FlipBuffers()
  Until KeyboardPushed(#PB_Key_Escape) Or MouseButton(#PB_MouseButton_Left)
EndIf

End
Ensuite, si tu es bon en trigo, tu peux faire des effets sur les mouvements x et y (sinusoide...)
Image
Image
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: Birthday PurePunch

Message par Micheao »

TazNormand je vais etudié ça

si jai bien lu le concours s'arrete le 15 octobre soit 4 jours avant mes 50 ans
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Birthday PurePunch

Message par microdevweb »

@Micheao, la difficulté est par après de réduire le code à 192 lignes. Petite astuce utilise les macros.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: Birthday PurePunch

Message par Micheao »

microdevweb a écrit :@Micheao, la difficulté est par après de réduire le code à 192 lignes. Petite astuce utilise les macros.
merci mais j'ai rien pigé aux macros , ni aux codes de taz Normand et de falsam
Avatar de l’utilisateur
Vera
Messages : 45
Inscription : sam. 12/sept./2015 10:31
Localisation : Allemagne

Re: Birthday PurePunch

Message par Vera »

Merci TazNormand, that is a nice starter to have :-)
One thing I'd like to point out. I've learned on the forum to always ExamineMouse() first before starting ExamineKeyboard(). The given reason was 'otherwise it ends up eating the mouse events'. If this still holds valid you might want to change the order, especially as it is a 'tuto'.


@Micheao,
I'm sure I'll never win and that is not what counts. It's all about sharing some joy and that doesn't have to be animated.
You also don't have to use macros nor do you have to shrink your code you only need to stay within the line limit.

Please join and enjoy what will come :-)
promt translation a écrit :Merci TazNormand, c'est un démarreur agréable pour avoir :-)
Une chose je voudrais montrer. J'ai appris sur le forum à toujours ExamineMouse () d'abord avant de commencer ExamineKeyboard (). La raison apportée était 'autrement elle finit par manger les événements de souris'. Si cela tient toujours valide vous pourriez vouloir changer l'ordre, d'autant plus que c'est un 'tuto'.

@Micheao,
Je suis sûr que je ne gagnerai jamais et ce n'est pas quels comtes. C'est tout du partage d'un peu de joie et cela ne doit pas être animé.
Vous ne devez pas aussi utiliser des macros vous ne devez non plus faire rétrécir votre code vous avez besoin de rester seulement dans la limite de ligne.

Rejoignez s'il vous plaît et appréciez ce qui viendra :-)
Faites-moi savoir, s'il vous plaît, si mon français n'est pas assez compréhensible. ~ merci ~
Le texte encadré est d'un traducteur.
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: Birthday PurePunch

Message par Micheao »

Spock a écrit :
Micheao a écrit :merci mais j'ai rien pigé aux macros , ni aux codes de taz Normand et de falsam
peut etre alors te faut t'il envisager une autre passion :)
le velo, la culture de pommes de terre, le dessin, la magie, les maquettes, la simulation de vol
ou meme l'heliciculture ... bref, les choix ne manquent pas , et toutes ces activités disposent de Forums
sur internet :)

je veux dire, il faut savoir renoncer, lorsqu'un truc n'est pas fait pour nous ;)

je pense que je pratique pas assez PB , je m'éparpille trop vers d'autres langages , je sais crée un sprite et l'afficher
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Birthday PurePunch

Message par falsam »

Micheao a écrit :je sais crée un sprite et l'afficher
Voila un bon début :wink:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: Birthday PurePunch

Message par Micheao »

je travail sur un Birthday PurePunch pour le concours
Verrouillé