CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J'aide les personnes dans DarkBasic Pro

Qosimo
Qosimo
Niveau 37
27 décembre 2006 à 16:14:08

Hello !

Pour le rebond, Timorite a déjà répondu.

Pour la question du bond, si ça peux vous aider, voici le principe du mouvement balistique.

Prenons un exemple tout simple : un canon qui tire un boulet horizontalement. Notre boulet évolue dans un espace à deux dimension, mais nous pouvons séparer son déplacement en deux autres distinct, un sur l´axe des x et un sur l´axe des y. Il aura donc deux variables pour définir sa position : une x et une y. Pour trouver x, voici la "formule" :

position X (au temps t) = (Vitesse du boulet * t) + Position d´origine sur l´axe des x.

Note : on appelle ce type de déplacement un MRU, c.a.d. un mouvement rectiligne uniforme. Cela signifie en gros que la vitesse est constante (dans la réalité, il y aurait encore les forces de frotement, mais nous ferons abstraction).

Pour trouver Y, c´est un petit peu plus compliqué. En effet, cette fois le mouvement ne sera plus un simple MRU, mais un MRUA, c.a.d. un Mouvement rectiligne uniformément accéléré, car il existe une force sur l´axe des y qui accèlère l´objet vers le bas : la gravité.

Voici l´équation d Y :

position Y (au temps t) = (0.5*Gravité*(t^2)) + vitesse d´origine * t + position d´origine sur l´axe des y.

Cela devrait vous donner un joli mouvement balistique.

J´ai fait par hasard un test hier soir,un jeu tout simple pour vérifier qaue ça marche : Un pirate, sur une montagne, qui doit tirer sur un bateau (imobile) dans l´eau en bas. Ca fonctione bien :)

Pour indication, la gravité terrestre est de 9.81 Newton par KG.

Après, mais ceci n´est qu´une hypothèse, je suppose que pour déplacer un personnage, tu crées deux variables : une avec sa vitesse sur l´axe de x et une avec sa vitesse sur l´axe des y, et tu introduit ça dans les équation si dessous. Cela revient au même que de créer un vecteur de déplacement et de le projeter via la trigonométrie sur les axes x et y [ dans un cas orthonormé ].

Voilà, j´espère que vous avez compris.

Timorite
Timorite
Niveau 10
27 décembre 2006 à 16:26:14

Salut Qosimo.

Je vois que tu as sorti tes cours de physique. Je ne sais pas si ces formules peuvent être utiles dans l´élaboration d´un code, mais en tout cas ça explique bien le mouvement du projectile. :ok:

Qosimo
Qosimo
Niveau 37
27 décembre 2006 à 16:57:08

Hihi...

Ouai, c´est aussi ce que je me demande. Alors j´ai l´intention d´essayer ça un de ces jours... Je suis en vacances ces temps. Je vais essayer de créer un petit jeu genre Mario mais sans scrolling, juste sur un écran, avec un seul niveau, en fait le minimum pour essayer de créer un personnage au mouvement "réalistes". Ce qui me gène dans ma méthode, c´est que je me demande s´il elle fonctionne pas "trop" bien : par exemple, dans mario, tu peux, pendant un saut, appliquer une légère force afin de maitriser un peu ton déplacement. Je sais pas trop comment faire ça. Enfin, je vais essayer, je verrai bien ce que ça donne... :)

Qosimo
Qosimo
Niveau 37
28 décembre 2006 à 15:13:14

Comme promis, voici le début de mes tests. Ce premier programme gère seulement les déplacements gauche/droite grâce aux forces. La prochaine étape est les déplacements sur l´axe des Y.

J´ai essayé de commenter un minimum le code, mais si vous voulez plus d´explication, n´hésitez pas à me demander. D´ailleur, si vous pensez pouvoir faire plus simple, n´hésitez pas à faire part de vos méthode. C´est comme ça qu´on apprend :)

Qosimo
Qosimo
Niveau 37
28 décembre 2006 à 15:13:54

remstart
Super Box Land
Un petit programme pour tester les déplacements de personnages.
Ce programme ne nécessite aucun média, car le tout est créé à partit d´instructions DBPro.
remend

set window off

`variables de couleurs
bleu = rgb(0,0,255)
vert = rgb(0,255,0)
rouge = rgb(255,0,0)
brun = rgb(210,190,160)

`variables générales

`permet de gérer le sable
boxx = 0
boxy = 400
boxw = 640
boxh = 80

`permet de gérer le personnage
`général
mariox = 100 `coordonée x d´origine du personnage (là où il commence au début)
marioy = 384 `coordonée y d´origine du personnage (là où il commence au début)
mariow = 16 `largeur
marioh = 16 `hauteur

`cette partie gère la physique de l´axe des X
marioforcex = 1 `en augmentant cette valeur, mario accélère plus rapidement.
mariovitessex = 0 `ne pas toucher cette valeur, car mario commence immobile au début du jeu.
mariovitessemaxpositiv = 2 `en augmentant cette valeur, mario aura une vitesse de pointe plus élevée
mariovitessemaxnegativ = -2

repeat
`affichage des éléments fixes :
box 0,0,640,400,bleu,bleu,bleu,bleu `ciel
box boxx,boxy,boxx+boxw,boxy+boxh,brun,brun,brun,brun `sable

`PHYSIQUE SUR L´AXE DES X

`fonctionnement : si on appuie sur droite, on accélère la vitesse par la force, à condition que la vitesse maximum
`mariovitessemaxpositiv ne soit pas atteinte.
if ((rightkey()=1) AND (mariovitessex < mariovitessemaxpositiv))
mariovitessex = mariovitessex + marioforcex
endif
`même principe pour la touche gauche
if ((leftkey()=1) AND (mariovitessex > mariovitessemaxnegativ))
mariovitessex = mariovitessex - marioforcex
endif
`ceci ramène les forces à 0 si on ne donne aucune direction à mario
if ((leftkey()=0) AND (rightkey() = 0) AND (mariovitessex <> 0))
if mariovitessex < 0 then mariovitessex = mariovitessex +1
if mariovitessex > 0 then mariovitessex = mariovitessex -1
endif

`la nouvelle position vaut : ancienne position (sur les X) + vitesse (sur les X)
mariox = mariox + mariovitessex

`PHYSIQUE SUR L´AXE DES Y

`en cours de rédaction !! !

if mariox > 640 then mariox = 1 `mario ne sort pas de l´écran
if mariox < -16 then mariox = 640 `idem

box
mariox,marioy,mariox+mariow,marioy+marioh,rouge,ro
uge,rouge,rouge `mario

`INSTRUCTION POUR LE DEBUGGAGE

xstring$ = "Vitesse X = " + str$(mariovitessex)
ystring$ = "Vitesse Y = " + str$(mariovitessey#) `inutile pour le moment

text 100,100,xstring$
text 100,120,ystring$

text 300,100,str$(mariox) `simplement les coordonnées
text 300,120,str$(marioy)
until returnkey()=1

Timorite
Timorite
Niveau 10
28 décembre 2006 à 18:12:13

J´ai pas encore testé le code mais à vue de nez y´a rien à redire. C´est un bon début. :oui:

Qosimo
Qosimo
Niveau 37
30 décembre 2006 à 11:46:58

Ouai, pour l´instant ça a l´air de fonctionner. Bon, pour l´instant, le seul problème est que l´effet d´accélération n´est pas visible, ce qui est d´ailleurs normal vu que la vitesse passe de 1 à 2 frames par seconde en seulement 1 frame ! Je me demande si je vais essayer de faire une accélération plus lente, ce qui donnerait une maniabilité genre sonic, ou si je fais une maniabilité genre mario, avec une seul vitesse, plus un bouton de course. Je vais y réfléchir.

Actuellement, je suis un peu aux prises de la gravité (sans faire de jeux de mots). J´hésite entre deux méthodes :

-la gravité agit en permanence, et quand mon perso touche un sol, c´est à dire quand il y a collision, le déplacement est annulé.
-le deuxième, la gravité agit seulement quand il n´y a pas de contact avec le sol.

Je crois que la première est meilleur, je vais plutôt dans cette direction.

Voilà, à plus :)

[_Pator_]
[_Pator_]
Niveau 10
30 décembre 2006 à 14:23:37

Merci pour vos réponses :ok:

the_huntress
the_huntress
Niveau 34
06 janvier 2007 à 19:48:55

Eh beh voilà ca fait 2ans que j´étais sur ton topic et ca continue, c´est bien de voir qu´il n´a pas coulé :D

pxidr
pxidr
Niveau 7
27 mars 2007 à 08:20:03

Un petit up ne ferait de mal à personne :ok:
J´aurais une question à propos de la création d´un fondu de transition ^^

UDun
UDun
Niveau 10
27 mars 2007 à 17:19:52

Quelle genre de question ? Quelques détails ? :)

pxidr
pxidr
Niveau 7
07 avril 2007 à 19:32:39

Dsl du retard ^^
En fait la transition en fondu d´une image vers une autre...

Pseudo supprimé
Pseudo supprimé 07 avril 2007 à 19:43:08

Salut, j´ai un petit problème. J´arrive pas à comprendre comment on utilise la commande set current bitmap. Merci de m´aider.

Pseudo supprimé
Pseudo supprimé 09 juin 2007 à 19:50:20

salut,
sous DB, si on veux utiliser comme map un fichier 3ds, on est donc obligé de gerer les collisions soit même ?
Parceke g modeliser mon labo de chimie et jvoudrais me balader dedant après, ya les moteur de rendu temps réel mais sont pas gratuits.

Sinon i vous aez une astuce pour convertir du 3ds en bsp ?. ..
j´me demandait si on pouvais pas convertir du 3dsmax sortie en .map puis sur radian en bsp ?

a tt

waragamer
waragamer
Niveau 10
03 juillet 2007 à 18:45:39

:salut:
avant de penser a acheter ce truc je voudrais savoir:
1. on peux faire quoi comme jeux?
2. c´est facile a comprendre ou ta des codes de 5 page pour faire un truc simple comme avancer?
3. Ya des tuto simple pour commencer?^^(francais ou anglais peux importe)

UDun
UDun
Niveau 10
03 juillet 2007 à 19:09:29

1/ Tout type de jeu "raisonnable" est réalisable. FPS, stratégie en 3D, 2D...

J´ai justement terminé mon jeu en Dark Basic Pro, si tu veux jeter un coup d´oeil :
http://www.pc-infogame.com

2/ Au niveau du code, c´est vraiment simple. Avancer un objet, c´est juste utiliser : move object ID_Objet, Distance... C´est un langage très accessible et bien documenté. Je te conseille de tester la version démo pour t´en rendre compte.

3/ Tutos simples ? Pleins d´exemples sont fournis avec le logiciel. La communauté est aussi très active sur le forum officiel.

waragamer
waragamer
Niveau 10
03 juillet 2007 à 21:17:52

^^ merci :D
j´avait essayer le flash mais c´est imcompréensible :o))
ca doit ressembler a ame maker donc ca doit être relativement facile
:merci:

UDun
UDun
Niveau 10
04 juillet 2007 à 14:01:03

Ouais ça reste assez simple mais pas autant que Game Maker ou FPS Creator. Ca reste de la programmation classique (boucles, structures, tableaux...) mais sans éditeur de niveaux, graphiques...

waragamer
waragamer
Niveau 10
04 juillet 2007 à 15:31:40

quand je l´ouvre ya que un gross collone ou faut écrire les codes :O
ya pas un truc ou tu entre tes modele 2D/3D?

UDun
UDun
Niveau 10
04 juillet 2007 à 15:43:07

Ah non y a pas d´éditeur graphique, d´interface... enfin seulement un éditeur de code ^^

Pour utiliser tes modèles, il faut simplement utiliser la commande load object "chemin", ID dans une boucle :

load object "modeles.X", 1

Do

sync
Loop

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware