faire un labyrinthe sous director (lingo:) - Divers - Programmation
Marsh Posté le 08-01-2003 à 19:49:33
Pas trop le temps de répondre pour le moment mais en attendant jette un oeil ici :
http://www.nonoche.com/imaging/fr/index.html
Marsh Posté le 09-01-2003 à 10:05:45
merci lien tres interressant ( et que je ne connaissait pas)
malheureusement je debute dans les liste mais je vais en faire une priorite
Marsh Posté le 09-01-2003 à 11:10:13
Est-ce que tu fais un déplacement case par case (c'est-à-dire j'appuie sur flèche gauche donc je me déplace d'une case à gauche) ou continue (j'appuie sur flèche gauche et mon perso se déplace toujours à gauche tant que je laisse appuyé).
Marsh Posté le 09-01-2003 à 16:14:20
je veux ! je veux! c'est un bien grand mot, je fait surtout ce que je peut mais comme mon labyrinthe n'est deja pas tres grand (environ circoncis dans un 640x480 a cause de l'habillage graphique) le mode case a case me semble peu ludique alors j'ai prefere lui donner un continu...
il est peut etre temps de te donner le code ...
--------------------------la balle (sprite 5)
property vx, vy
global h, v
on beginsprite me
vx = 0
vy = 0
end
on collider me, dir
if dir = #g then
vx = 0
sprite(5).loch = h + 15
else if dir = #d then
vx = 0
sprite(5).loch = h - 15
end if
if dir = #h then
vy = 0
sprite(5).locv = v + 15
else if dir = #b then
vy = 0
sprite(5).locv = v - 15
end if
if dir = #w then
sound(1).play(member("applause" ))
go to frame 1
end if
end
on exitframe me
if keypressed(123) then
vx = vx - 10
if vx < -20 then
vx = -20
end if
else if keypressed(124) then
vx = vx + 10
if vx > 20 then
vx = 20
end if
end if
if keypressed(126) then
vy = vy - 10
if vy < -20 then
vy = -20
end if
else if keypressed(125) then
vy = vy + 10
if vy > 20 then
vy = 20
end if
end if
end
-------------mur x (associé a tout les murs horizontaux)
global h
on beginsprite me
sprite(me.spritenum).locZ = -100
h = 0
end
on exitframe me
if sprite 5 intersects me.spritenum then
sendsprite(3, #vie)
h = sprite(me.spritenum).loch
if sprite(5).loch < sprite(me.spritenum).loch then
sendsprite(5, #collider, #g)
else if sprite(5).loch > sprite(me.spritenum).loch then
sendsprite(5, #collider, #d)
end if
end if
end
end if
sprite(5).loch = sprite(5).loch + vx
sprite(5).locv = sprite(5).locv + vy
end
- la condition w (win) ce produit quand la boulle est en contact avec le sprite de l'arrivée
- j'ai mis que mur x car mur y est franchement tres identique
- si il manque un end ou un end if a la fin du script de la boulle c'est surement un PB de copier / coller (y 'as pas director sur les postes internet de mon ecole)
- sois indulgent ca fait 2 mois que j'essaye director a un rythme peu intensif (pas assez a mon gout)
NB: si QQ'un connait des bons bouquin pour commencer director ca m'interresse (ceux que j'ai vu a la fnac sont soit trops compliqué (faire un jeu en 3D entierement en lingo) soit vraiment trops simple)
Marsh Posté le 09-01-2003 à 16:51:44
mechkurt a écrit : je veux ! je veux! c'est un bien grand mot, je fait surtout ce que je peut mais comme mon labyrinthe n'est deja pas tres grand (environ circoncis dans un 640x480 a cause de l'habillage graphique) le mode case a case me semble peu ludique alors j'ai prefere lui donner un continu... |
Sinon j'ai trouvé un article qui t'aidera sans doute (le site en entier est une véritable MINE ! Bien plus intéressant qu'un bouquin à mon avis !).
http://www.director-online.com/acc [...] cfm?ID=815
Pas trop le temps de me plonger dans ton code là (mais à première vue il me semble bien compliqué pour ce que c'est)...
Marsh Posté le 09-01-2003 à 21:35:13
m'etonne pas que ce soit trops complique, j'arrete pas de rajouter des lignes pour essayer d'empecher cette &é"&é'?§! de boulle de traverser les murs
Marsh Posté le 10-01-2003 à 11:39:55
par exemple je suis obligé de plafonner la vitesse (au dessus de 20 il "n'intersect pas les murs" mais se teleporte de l'autre cote)
sinon l'article de director online est exactement ce qu'il me faut merci beaucoups, j'essaye ce week-end (il faudrat que je me plonge dans les listes car j'ai jamais utilisé ca avant)
Marsh Posté le 08-01-2003 à 10:23:05
je cherche un tutorial (ou un peu d'aide) pour faire un bete labyrinthe vue du dessus...
j'ai deja la partie graphique et je me heurte au PB des collision, sans trops rentrer dans les details je vous livre mon raisonement:
- quand la boulle n'est pas en contact avec un mur, deplacement assujeti au clavier
- si la boulle rencontre un mur (en gros: mur intersects boulle) le mur envoie a la balle un instruction collision avec comme parametre la direction (G/D ou H/B) par lequel elle arrive sur le mur et la position de ce mur.
NB: 2 codes different gere les collision vertical et horizontal
- quand la boulle est en "collision" j'ai un flag qui modifie son comportement afin de ne gere plus que 3 direction
mon code parait correct en theorie mais il arrive a certaine vitesse (ou lorsqu'on change la fleche de direction au moment du choc) que la balle traverse ce qui est un peu moyen pour un labyrinthe
si vous voulez mon code je peut le mettre ici (en tout cas la partie boulle et la partie mur) mais sinon si vous avez deja vu un tutorial bien fait et dans un lingo "begginer proof" ca m'interresse!