Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 2013
-
4 févr. 2009 à 12:54
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 2013
-
17 mai 2009 à 22:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 17 mai 2009 à 22:12
ne t'inquiète pas, j'ai laisser les 2 versions dans le zip ^^
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 15 mai 2009 à 18:59
Je vais pleurer si tu utilises plus mes compos ...
lol
Malheureusement, ce sera pas ajourd' hui non plus que je pourrais tester cette super source!
A+
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 8 avril 2009 à 01:52
j'ai été trop vite pour faire la source BASSMedia sans la TcySimpleGauge de Maurico ,
il faut retirer des uses cyBaseMeasure, cyCustomGauge, cySimpleGauge
et dans procedure TMainForm.ProgressBarFxOnChange (Sender : TObject)
il faut remplacer case TcySimpleGauge(Sender).Tag of par
case TTrackBar(Sender).Tag of
désolé ;)
PS : je changerais ça demain ... ou au moins fin de semaine :)
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 6 avril 2009 à 23:50
désolé du double post : pour voir la capture il faut vider le cache du browser (ou sous FF : ctrl+F5 )
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 6 avril 2009 à 23:47
Maj plus ou moins importantes :
La source BASSMedia (Mixer ) est moins complet que mon précédent mais ce n'était pas le but , il permet toute fois de réaliser un mix avec tous les effets décrits plus haut
La source Flamme a aussi changé (ajout d'une musique de fond en midi pour montrer comment charger un plugin avec BASS )
la capture ne passe pas :(
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 28 févr. 2009 à 17:19
Voila , MAJ correspondante à la version de la lib utilisé pour mon jeu de shoot le canard !
Je viens de remarquer qu'il y a des constantes DECORATION , GRAVITY et autres dans uSprites (ce sont d'anciennes constante que je n'utilise plus , il ne faut pas en tenir compte )
Flamme et Animation&Sound sont nouveaux , le reste n'a pas changé ...
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 15 févr. 2009 à 16:20
oui, j'ai noté ce détail mais on retrouve malgré çà les mêmes vitesses entre les ballons...
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 15 févr. 2009 à 14:36
je ne comprends pas très bien ce que tu veux faire ?!
Dans ZTest , la vitesse du ballon est choisie au moment de sa création de manière aléatoire, puis ne change plus ..., juste son signe qui change (+ ou - )
Par contre l'indice Z augmente à chaque collision avec la fenêtre ...
Mais tu peux a tout moment modifier cela ;)
Tout est possible !
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 15 févr. 2009 à 13:58
ah si, un tuc dans le Ztest, les ballons lents sont tous à la même vitesse et les rapides également..
Et si on tentait de mettre une vitesse aléatoire entre deux limites ?
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 15 févr. 2009 à 13:43
@cantador : regarde les commentaires de debiars et les miens(l'avant dernier au fait ) % à cette source , il y a une petite erreur que je n'ai pas encore corrigée dans le zip...
mais comme c'est minime, j'attends la prochaine MAJ pour corriger tout ça ;)
pour les idées de programmes, c'est ce que j'espérais ...
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 15 févr. 2009 à 13:20
Excellent les p'tits ballons Nicolas___ !
ça donne plein d'idées d'autres programmes..
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 15 févr. 2009 à 12:10
j'abandonne les rotations , il y a vraiment trop de problèmes vis à vis des collisions...
Ou il faudrait que j'arrive à trouver un exemple de "pixels detections" compréhensible et rapide !
Je suis en train d'essayer d'y greffer une partie sonore dessus (avec la librairie BASS bien sûr ) , en simple son il n'y a pas de problèmes mais quand je veux gérer des sons 3d (qui seront joué % à la position X et Y des sprites , et ou forcement un "Listener" devra être positionné (le joueur en l'occurrence ;) ) , je galère encore un peu !)
Un peu de new pour dire que je n'ai pas arrêter le projet mais que la prochaine évolution est plus longue que prévue ...
(Je suis surtout en train de coder de facon que mon ancien code soit encore bon , pas comme la dernière fois ... )
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 11 févr. 2009 à 19:33
oui j'ai vu ce petit problème dans simple move , il est présent dans flamme aussi. j'allais le changer .
Ton dernier commentaire n'était pas passé quand j'ai écrit le miens !
tu dois faire comme ca si tu veux qu'il soit "killer" quand il sort de l'écran :
cTop..cRight: kill;
ou tu testes chaque cas et tu appelles kill
cTop : kill;
cBottom: kill;
cLeft: kill;
cRight: kill;
et bien sur ne pas oublier d'appeler RemoveKillSprite ...
je changerais demain, je n'ai pas trop le temps ce soir ...
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 11 févr. 2009 à 18:40
tu as vu les exemples que j'ai ajouté ?
mais je n'avais pas parler de ce cas , c'est vrai ...
Debiars
Messages postés285Date d'inscriptionlundi 16 juin 2003StatutMembreDernière intervention11 février 2018 11 févr. 2009 à 18:36
Petit gag dans SimpleMove : les ballons sortant à droite et en haut n'était pas décompté donc, je présume, not killed...
J'ai donc, dans la procedure TBallon.CollideClientRect,
remplacé "cBottom ..cLeft : Kill;" par "cTop..cRight : Kill;" et ça gaze!
Debiars
Messages postés285Date d'inscriptionlundi 16 juin 2003StatutMembreDernière intervention11 février 2018 11 févr. 2009 à 18:03
Mille excuses! Je viens de trouver... je cherchais dans TSprite au lieu de TSpriteEngine!!?"!
Ca m'étonnait aussi...
Debiars
Messages postés285Date d'inscriptionlundi 16 juin 2003StatutMembreDernière intervention11 février 2018 11 févr. 2009 à 17:54
Ca y est, j'ai réussi à faire courir un chat... mais pour rendre le fond transparent, j'ai dû le colorier en fuschia, comme tes images. N'est-il pas possible d'imposer une couleur de transparence quelconque? En tout cas je n'ai rien trouvé dans ce sens.
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 10 févr. 2009 à 23:50
J'ai mis plusieurs petits exemples, j'espère qu'ils te seront utiles ...
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 10 févr. 2009 à 15:08
La luminosité de l'écran joue aussi un rôle important dans ce cas là ,trop sombre on ne voit rien ...
Debiars
Messages postés285Date d'inscriptionlundi 16 juin 2003StatutMembreDernière intervention11 février 2018 10 févr. 2009 à 14:38
Merci pour le tube*, avec alpha = 50 c'est bon.
*tube : petit tuyau :-)
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 10 févr. 2009 à 13:20
je viens de coder un petite fonction pour Activer , Désactiver l'alphablend pour te montrer , mais je viens de me rendre compte d'1 petit problème, il faut que j'y regarde de plus près ...
De plus , il faut toujours que je règle ce petit problème :
// msdn : Device does not support any of these capabilities.
if GetDeviceCaps(ACanvas.Handle,SHADEBLENDCAPS)= 0 then
isSupportAlphaBlend := false
else
isSupportAlphaBlend := true;
isSupportAlphaBlend := true;
vu que GetDeviceCaps me renvoit toujours false, je force isSupportAlphaBlend à true ... Je vois ça après les cours.
Je suis (depuis quelques temps déjà) en train de revoir mon code et de le commenter , je mettrais plus d'exemples (basiques et évolués)
De plus je suis en train de faire 1 petit jeu plus complet , ca servira pas mal pour comprendre les mécanismes
Attention :
Il y a une (petite) faute dans le projet Flamme :
SpriteEngine.Sort:=True; est inutile dans le Timer
vu qu'a chaque fois que l'on ajoute 1 objet dans le moteur, il trie la liste sur Z et que dans ce cas ci , contrairement à ZTest , la coordonnée Z des Flammes reste constante , il n'y a pas besoin de le re-trier!
En tout cas , merci pour l'appréciation , j'avais un peu peur que ce code tombe dans l'oubli ...
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 10 févr. 2009 à 11:44
Si tu crois que tu ne vois pas les object Floor de Type LAVE , c'est parce que son Alpha est à 25 donc fort transparent ...
Regarde Dans uFloor.pas , la methode Create appele celle-ci
procedure TFloor.SetTypeAnim(AType :TTypeFloor);
begin
case fType of
LAVE :
begin
SetAnimation(0,3,1,0,5);
// tu peux jouer avec cette valeur pour définir le niveau d'opacité
// [0,255]
Alpha:=25;
end;
end;
end;
et vu que mon Type est LAVE ... (en même temps, je n'ai que ça ici ! )
Si tu veux mieux le voir :
par le code , place 255 dans Alpha, ou mets le en commentaire (par défaut Alpha est à 255 )
A l'exécution :
Ou appuie sur F2 pendant l'exécution du programme (Flamme bien entendu) , tu ne verras plus le background mais bien juste Floor (de la lave animée, regarde le fichier MEDIA\GFX\FLOOR.bmp )
Est-ce que ça répond à ta question ?
Debiars
Messages postés285Date d'inscriptionlundi 16 juin 2003StatutMembreDernière intervention11 février 2018 10 févr. 2009 à 10:53
J'en pense beaucoup de bien, mais va me falloir un bout de temps pour dépuceler ton code...car je fatigue vite.
Une p'tite question : dans Flamme, à l'exécution, comment doit se comporter Floor, car si je vois bien le background, Mario et le flamme, pas plus de Floor que...
Il serait agréable que tu te fendes de quelques commentaires cocernant l'utilisation de tes objets, voir un tuto... ;)
Néamoins, bravo, j'en rêvais.
jp
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 8 févr. 2009 à 22:36
Alors, qu'en penses tu Debiars ?
Des idées ? Des améliorations ?
Nico
Debiars
Messages postés285Date d'inscriptionlundi 16 juin 2003StatutMembreDernière intervention11 février 2018 8 févr. 2009 à 17:02
Bonjour Nico,
Je rentre de voyage et je viens de découvir ton code...
Tu penses si ça m'intéresse, jz télécharge illico!
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 5 févr. 2009 à 15:35
Ah ok ...
En même temps , ce code ne servira vraiment qu'aux gens voulant réaliser des petits jeux, je ne vois pas à quoi il pourrait réellement servir d'autres ...
Sinon pas de remarque sur les classes ? Amélioration (je n'en doute pas ) ?
"Pleinement"
Exemple:
MonBitmap.bmp == BMP en 32Bits
Dans un OpenPictureDialog:
si tu sélectionnes MonBitmap il s'affiche (en prévisualisation et en vrai transparence) directement dans le dialog et bien sur aussi dans un TImage & TBitmap. Même en faisant TBitmap.Draw ... tu as la transparence.
donc peut importe le format de l'image et dans quel composant elle est chargée elle s'affichera correctement ;)
Par contre avec ton code ce n'est pas le cas ..
si tu charges un BMP32 dans un TBitmap et si tu l'assignes a un TImage tu 'aura pas de transparence ;)
mais c'est un détail ... ^^
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 5 févr. 2009 à 13:16
Déso Cirec , je me trompais avec une autre , je viens de tester , ca marche très bien ... désolé ;)
Je change de suite ...
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 5 févr. 2009 à 13:13
je sais mais bizarrement t'as fonction ne marche pas chez moi...
(elle doit bien remplacer la partie que tu viens de me citer ? )
Que veux tu dire par gérer pleinement le 32 bit ? Parce que si je charge une image 32 bits , j'ai la transparence qui est gérer nativement grâce à alphablend.
Nico
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 5 févr. 2009 à 12:16
C'est ce dont je te parlais dans mon space invaders, avec ce système, c'est beaucoup plus facile de réaliser des petits jeux ...
Je le ferais peut être pour mon space invaders mais je vois plus un futur jeu de plateforme...
Le meilleur serait de passer un jour en opengl ou directX ...
Merci pour la note
Nico
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 5 févr. 2009 à 09:32
J'aime bien ta gestion des sprites..
Si j'en ai l'utilité..
Peut-être faut-il l'adapter à ton space invaders ?
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 4 févr. 2009 à 13:49
je ne l'ai pas précisé , mais ca me semblait logique : Il n'y a rien à installer (pas de composant ou de lib externe à la mienne )
Testé uniquement sous D7 et Xp Sp3
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 4 févr. 2009 à 12:54
Par contre désolé mais il n'y a presque pas de commentaire , ce n'est pas très dur à comprendre , il y a quelques astuces quand même
(je remercie encore Cirec,rt15 et les autres qui m'ont aidé sur le forum ces temps ci )
17 mai 2009 à 22:12
15 mai 2009 à 18:59
lol
Malheureusement, ce sera pas ajourd' hui non plus que je pourrais tester cette super source!
A+
8 avril 2009 à 01:52
il faut retirer des uses cyBaseMeasure, cyCustomGauge, cySimpleGauge
et dans procedure TMainForm.ProgressBarFxOnChange (Sender : TObject)
il faut remplacer case TcySimpleGauge(Sender).Tag of par
case TTrackBar(Sender).Tag of
désolé ;)
PS : je changerais ça demain ... ou au moins fin de semaine :)
6 avril 2009 à 23:50
6 avril 2009 à 23:47
La source BASSMedia (Mixer ) est moins complet que mon précédent mais ce n'était pas le but , il permet toute fois de réaliser un mix avec tous les effets décrits plus haut
La source Flamme a aussi changé (ajout d'une musique de fond en midi pour montrer comment charger un plugin avec BASS )
la capture ne passe pas :(
28 févr. 2009 à 17:19
Je viens de remarquer qu'il y a des constantes DECORATION , GRAVITY et autres dans uSprites (ce sont d'anciennes constante que je n'utilise plus , il ne faut pas en tenir compte )
Flamme et Animation&Sound sont nouveaux , le reste n'a pas changé ...
15 févr. 2009 à 16:20
15 févr. 2009 à 14:36
Dans ZTest , la vitesse du ballon est choisie au moment de sa création de manière aléatoire, puis ne change plus ..., juste son signe qui change (+ ou - )
Par contre l'indice Z augmente à chaque collision avec la fenêtre ...
Mais tu peux a tout moment modifier cela ;)
Tout est possible !
15 févr. 2009 à 13:58
Et si on tentait de mettre une vitesse aléatoire entre deux limites ?
15 févr. 2009 à 13:43
mais comme c'est minime, j'attends la prochaine MAJ pour corriger tout ça ;)
pour les idées de programmes, c'est ce que j'espérais ...
15 févr. 2009 à 13:20
ça donne plein d'idées d'autres programmes..
15 févr. 2009 à 12:10
Ou il faudrait que j'arrive à trouver un exemple de "pixels detections" compréhensible et rapide !
Je suis en train d'essayer d'y greffer une partie sonore dessus (avec la librairie BASS bien sûr ) , en simple son il n'y a pas de problèmes mais quand je veux gérer des sons 3d (qui seront joué % à la position X et Y des sprites , et ou forcement un "Listener" devra être positionné (le joueur en l'occurrence ;) ) , je galère encore un peu !)
Un peu de new pour dire que je n'ai pas arrêter le projet mais que la prochaine évolution est plus longue que prévue ...
(Je suis surtout en train de coder de facon que mon ancien code soit encore bon , pas comme la dernière fois ... )
11 févr. 2009 à 19:33
Ton dernier commentaire n'était pas passé quand j'ai écrit le miens !
tu dois faire comme ca si tu veux qu'il soit "killer" quand il sort de l'écran :
cTop..cRight: kill;
ou tu testes chaque cas et tu appelles kill
cTop : kill;
cBottom: kill;
cLeft: kill;
cRight: kill;
et bien sur ne pas oublier d'appeler RemoveKillSprite ...
je changerais demain, je n'ai pas trop le temps ce soir ...
11 févr. 2009 à 18:40
mais je n'avais pas parler de ce cas , c'est vrai ...
11 févr. 2009 à 18:36
J'ai donc, dans la procedure TBallon.CollideClientRect,
remplacé "cBottom ..cLeft : Kill;" par "cTop..cRight : Kill;" et ça gaze!
11 févr. 2009 à 18:03
Ca m'étonnait aussi...
11 févr. 2009 à 17:54
10 févr. 2009 à 23:50
10 févr. 2009 à 15:08
10 févr. 2009 à 14:38
*tube : petit tuyau :-)
10 févr. 2009 à 13:20
De plus , il faut toujours que je règle ce petit problème :
// msdn : Device does not support any of these capabilities.
if GetDeviceCaps(ACanvas.Handle,SHADEBLENDCAPS)= 0 then
isSupportAlphaBlend := false
else
isSupportAlphaBlend := true;
isSupportAlphaBlend := true;
vu que GetDeviceCaps me renvoit toujours false, je force isSupportAlphaBlend à true ... Je vois ça après les cours.
Je suis (depuis quelques temps déjà) en train de revoir mon code et de le commenter , je mettrais plus d'exemples (basiques et évolués)
De plus je suis en train de faire 1 petit jeu plus complet , ca servira pas mal pour comprendre les mécanismes
Attention :
Il y a une (petite) faute dans le projet Flamme :
SpriteEngine.Sort:=True; est inutile dans le Timer
vu qu'a chaque fois que l'on ajoute 1 objet dans le moteur, il trie la liste sur Z et que dans ce cas ci , contrairement à ZTest , la coordonnée Z des Flammes reste constante , il n'y a pas besoin de le re-trier!
En tout cas , merci pour l'appréciation , j'avais un peu peur que ce code tombe dans l'oubli ...
10 févr. 2009 à 11:44
Regarde Dans uFloor.pas , la methode Create appele celle-ci
procedure TFloor.SetTypeAnim(AType :TTypeFloor);
begin
case fType of
LAVE :
begin
SetAnimation(0,3,1,0,5);
// tu peux jouer avec cette valeur pour définir le niveau d'opacité
// [0,255]
Alpha:=25;
end;
end;
end;
et vu que mon Type est LAVE ... (en même temps, je n'ai que ça ici ! )
Si tu veux mieux le voir :
par le code , place 255 dans Alpha, ou mets le en commentaire (par défaut Alpha est à 255 )
A l'exécution :
Ou appuie sur F2 pendant l'exécution du programme (Flamme bien entendu) , tu ne verras plus le background mais bien juste Floor (de la lave animée, regarde le fichier MEDIA\GFX\FLOOR.bmp )
Est-ce que ça répond à ta question ?
10 févr. 2009 à 10:53
Une p'tite question : dans Flamme, à l'exécution, comment doit se comporter Floor, car si je vois bien le background, Mario et le flamme, pas plus de Floor que...
Il serait agréable que tu te fendes de quelques commentaires cocernant l'utilisation de tes objets, voir un tuto... ;)
Néamoins, bravo, j'en rêvais.
jp
8 févr. 2009 à 22:36
Des idées ? Des améliorations ?
Nico
8 févr. 2009 à 17:02
Je rentre de voyage et je viens de découvir ton code...
Tu penses si ça m'intéresse, jz télécharge illico!
5 févr. 2009 à 15:35
En même temps , ce code ne servira vraiment qu'aux gens voulant réaliser des petits jeux, je ne vois pas à quoi il pourrait réellement servir d'autres ...
Sinon pas de remarque sur les classes ? Amélioration (je n'en doute pas ) ?
5 févr. 2009 à 14:36
Exemple:
MonBitmap.bmp == BMP en 32Bits
Dans un OpenPictureDialog:
si tu sélectionnes MonBitmap il s'affiche (en prévisualisation et en vrai transparence) directement dans le dialog et bien sur aussi dans un TImage & TBitmap. Même en faisant TBitmap.Draw ... tu as la transparence.
donc peut importe le format de l'image et dans quel composant elle est chargée elle s'affichera correctement ;)
Par contre avec ton code ce n'est pas le cas ..
si tu charges un BMP32 dans un TBitmap et si tu l'assignes a un TImage tu 'aura pas de transparence ;)
mais c'est un détail ... ^^
5 févr. 2009 à 13:16
Je change de suite ...
5 févr. 2009 à 13:13
(elle doit bien remplacer la partie que tu viens de me citer ? )
Que veux tu dire par gérer pleinement le 32 bit ? Parce que si je charge une image 32 bits , j'ai la transparence qui est gérer nativement grâce à alphablend.
Nico
5 févr. 2009 à 12:16
Je le ferais peut être pour mon space invaders mais je vois plus un futur jeu de plateforme...
Le meilleur serait de passer un jour en opengl ou directX ...
Merci pour la note
Nico
5 févr. 2009 à 09:32
Si j'en ai l'utilité..
Peut-être faut-il l'adapter à ton space invaders ?
4 févr. 2009 à 13:49
Testé uniquement sous D7 et Xp Sp3
4 févr. 2009 à 12:54
(je remercie encore Cirec,rt15 et les autres qui m'ont aidé sur le forum ces temps ci )