Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Installation et introduction au Quick Basic avec QB64


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Responsable 2D/3D/Jeux

    Installation et introduction au Quick Basic avec QB64
    Bonjour à tous,

    Vous connaissez certainement Papi Commando, ce jeu réalisé par Vetea :

    Vetea utilise QB64 comme langage de ce jeu et ce tutoriel vous propose de découvrir ce qu'est QB64, de l'installer et de faire vos premier pas dans le monde du Quick Basic : un langage simple permettant de faire des jeux. D'ailleurs, après avoir découvert le langage, un exemple de jeu vous ai donné à faire en exercice (et une correction est proposée pour vous guider dans le monde de la programmation).


    Bonne lecture.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Expert confirmé
    Bonjour,

    Excellent article d'initiation !!
    Je n'aurai pas fait mieux.
    J'espère que cela motivera la plupart d'entre vous, pour découvrir cette technologie.
    Développeur - Créateur Amateur de Jeux vidéos
    Visitez ma page dédiée
    Visitez mon espace Itch.io
    Mon canal Discord

  3. #3
    Membre émérite
    Bonjour,

    Vu la méthode pour switcher entre Joueur1 et Joueur2 , je suppose que la notion True/False n'existe pas ?

    De plus, il n'y a pas de typage.

    Si j'écris :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    monEntier = 1
    monEntier2 = 0.222222222
    monEntier3 = 100000000000


    Les trois variables sont alloués en mémoire de la même façon ?
    Si la réponse vous a été donnée, pensez au Tag .
    Un petit aide à se sentir utile. Merci.

    "La folie. C'est de faire et refaire la même chose en espérant que le résultat sera différent."
    Albert Einstein

  4. #4
    Expert confirmé
    Citation Envoyé par Miistik Voir le message
    Bonjour,

    Vu la méthode pour switcher entre Joueur1 et Joueur2 , je suppose que la notion True/False n'existe pas ?
    Bonjour Miistik,
    Exact, il n'existe pas de variable de type Booléenne.

    Mais on peut en créer une facilement en ajoutant ce code en même temps que la déclaration des variables du programme :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    CONST FALSE = 0, TRUE = NOT FALSE ' Constante bool‚enne


    Développeur - Créateur Amateur de Jeux vidéos
    Visitez ma page dédiée
    Visitez mon espace Itch.io
    Mon canal Discord

  5. #5
    Candidat au Club
    QB64 avec W8.1 64 bits uefi et gpt
    Bonjour tout le monde,

    je découvre cette version windows et je voulais savoir si elle était compatible avec l'intitulé.

    merci pour votre réponse.

    @+

  6. #6
    Expert confirmé
    Bonjour barmet,

    Oui, QB64 SDL est compatible avec votre version de Windows.
    Développeur - Créateur Amateur de Jeux vidéos
    Visitez ma page dédiée
    Visitez mon espace Itch.io
    Mon canal Discord

  7. #7
    Membre chevronné
    Le qbasic sous dos (et avant ça le basic sur Amstrad cpc 6128) ça me rappelle à quel point ma tendre enfance est loin ^^
    Le WIP de The last bastion, mon projet de jeu-vidéo (un TD en 3D)

    Mon portfolio / Ma page fb

  8. #8
    Candidat au Club
    Bonsoir tous,

    Je reviens vers vous après avoir subi tous les avatars de w8 et w8.1 (plantages, perte de données, rechargements et BSOD en quantité industrielle.
    Je commence depuis peu à regarder plus sérieusement QB64. Il est en effet à peu près compatible w8.1 (tout au moins pour mes applications) mais très loin du BASIC (GW ou QB), malgré les affirmations péremptoires de GALLEON à 95-100%.
    Etant donné le nombre impressionnant de modules à convertir et à écrire, et certaines difficultés de fonctionnement de QB64, je me pose des questions
    sur l'opportunité de persévérer ou de prendre un autre langage type FORTRAN.
    Il faudrait que je trouve un forum en français QB64 et w8/10 ou quelqu'un qui puisse me faire profiter de son expérience.
    Pourquoi ne développeriez-vous pas un forum sur Développez.net ? Je suis sûr que beaucoup seraient intéressés.

    barmet

  9. #9
    Inactif  
    Intéressant ce QB64

    Je viens de faire un petit test de pseudo-voxel:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    SCREEN 13: DEF SEG = &HA000
    DIM hei%(4096 - 1), col%(4096 - 1)
     
    'Generate palette
    OUT &H3C8, 0
    FOR z% = 0 TO 63: OUT &H3C9, z%: OUT &H3C9, z%: OUT &H3C9, z% \ 2: NEXT z%
    FOR z% = 0 TO 63: OUT &H3C9, z% \ 2: OUT &H3C9, z%: OUT &H3C9, z%: NEXT z%
     
    'Generate interesting height & color maps
    p% = 0
    FOR y% = 0 TO 63
        FOR x% = 0 TO 63
            d% = 15 * 15 - ((x% AND 31) - 16) ^ 2 - ((y% AND 31) - 16) ^ 2
            IF d% > 0 AND ((x% XOR y%) AND 32) THEN
                hei%(p%) = 64 - SQR(d%): col%(p%) = (x% + y%) * .5
            ELSE
                hei%(p%) = 64: col%(p%) = (COS(x% * .2) + SIN(y% * .3)) * 3 + 88
            END IF
            p% = p% + 1
        NEXT x%
    NEXT y%
     
    'Initialize starting position
    posx& = 0: posy& = 0: posz& = 40 * 65536: ang = 0: horiz& = -50
     
    r160 = 1 / 160
    dd& = 65536 * r160 'Increment size
    de& = dd& * 512 'Scan out 512 units
    sdz& = (100 - horiz&) * 65536 * r160
    DO
        cosang = COS(ang) * 65536: sinang = SIN(ang) * 65536
        dx& = sinang + cosang: dxi& = -sinang * r160
        dy& = sinang - cosang: dyi& = cosang * r160
     
        'For each column in 320*200 mode...
        FOR sx% = 0 TO 319
     
            'Fast ray trace! No *'s or /'s in here (\ 65536 is a shift)
            x& = posx&: y& = posy&: z& = posz&: dz& = sdz&: p& = sx% + 63680
            FOR d& = 0 TO de& STEP dd&
                x& = x& + dx&: y& = y& + dy&: z& = z& + dz&
                i% = (((x& * 64) AND &HFC00000) + (y& AND &H3F0000)) \ 65536
                h& = hei%(i%) * 65536
                DO WHILE h& < z&
                    POKE p&, col%(i%): p& = p& - 320&
                    z& = z& - d&: dz& = dz& - dd&
                LOOP
            NEXT d&
            dx& = dx& + dxi&: dy& = dy& + dyi&
     
            'Finish off rest of line
            DO WHILE p& >= 320: POKE p&, 0: p& = p& - 320: LOOP
        NEXT sx%
     
        'Move position & angle
        posx& = posx& + cosang * 1
        posy& = posy& + sinang * 1
        ang = ang + .005
     
     
        'Wait vsync
     
        WAIT &H3DA, 8
        WAIT &H3DA, 8, 8
     
     
    LOOP WHILE INKEY$ = ""


    Ca emule parfaitement l'ecran VGA avec écriture dans le buffer video à l'aide de POKE, pratique pour prototyper des algos de rendu.

    Ce langage me rappelle ma jeunesse, j'ai fait mes tout premiers jeux avec qu'est-ce que j'ai pu galérer avec les goto

###raw>template_hook.ano_emploi###