PDA

Voir la version complète : Impossible d'écrire et d'afficher des sprites simultanement


ElDred
17/07/2005, 01h01
Bonjour, je m'excuse d'avance de vous déranger pour une c**erie pareille mais je rencontre un petit problème, en programmant la fonction servant à afficher les boites de dialogues de mon RPG 2D, je me suis rendu compte qu'il m'était impossible d'écrire et d'afficher des sprites simultanement!!!
pouvez vous m'aider?
Je vous mets le code ma fonction et le fichier texte qui est utilisé.
Par avance, merci!
PS: j'utilise DB Pro
http://asgardgamesstudio.ifrance.com/index.html
--------------------------------------------------------------------------
dialogues("dial1.dial")

function Dialogues(fichier_dialogues$)
load bitmap "cadremessage.bmp",1
get image 1,0,0,640,140
load bitmap "soji-profil.bmp",2
get image 2,0,0,345,280
delete bitmap 1
delete bitmap 2

open to read 1,fichier_dialogues$
sprite 1,0,0,1
sprite 2,10,10,2

lecture:
read string 1,nom$
if nom$="" then goto finfonction
read string 1,couleur$
read string 1,ligne1$
read string 1,ligne2$
read string 1,ligne3$
read string 1,ligne4$

ink rgb(255,255,255),rgb(255,255,255)
print nom$
if couleur$="/bleu" then ink 500,500
if couleur$="/rouge" then ink rgb(255,100,100),rgb(255,100,100)
if couleur$="/vert" then ink rgb(100,255,100),rgb(100,255,100)
text 0,20,ligne1$
text 0,40,ligne2$
text 0,60,ligne3$
text 0,80,ligne4$
sprite 1,0,0,1
suspend for key
cls
goto lecture

finfonction:
endfunction
--------------------------------------------------------------------------
Soji
/bleu
Salut
moi c'est
Soji
Quoi de neuf?
Rain
/rouge
Je t'aime pas soji,
avec
ta tronche
de cake
Sarine
/vert
C'est clair t'est vraiment moche
bla
bla
bla

maxilight
17/07/2005, 01h28
j'ai pas planché complètement sur ton code mais ce que je peux te dire c'est qu'en dark basic ya des priorités d'affichage...c'est à dire qu'en 2d par exemple on affiche d'abord les images (paste image), après le texte (print,text,etc...) puis au premier plan les sprites.Donc ton texte s'affiche surement cependant tu ne le voit pas puisque les sprites le cache...je sais pas si tu le savais :)

après pour l'afficher...hum...tu peux créer des sprites pour chaque texte mais vu que c'est un rpg...lol :s vaut mieu pas
il y a une méthode qui pourrait marcher mais je sais pas trop comment ca marche...tu utilise une image qui contient tous les carartères de l'alphabet et les chiffres

bonne chance mais tkt tu vas vite avoir la solution :)

++

lutin
17/07/2005, 10h03
C'est peut être parce que t'as mis sprite 1,0,0,1 après avoir affiché le texte et donc ça le mets par dessus.

Shadowe
17/07/2005, 12h23
Non, le problème n'est pas là, Lutin, regarde, là, j'ai mis le texte avant le sprite et il est quand même en dessous :
set display mode 640, 480, 32
sync on : sync rate 100

taillex as integer : taillex = 100
tailley as integer : tailley = 100

for x = 0 to taillex
for y = 0 to tailley
dot x, y, rgb(2*x, 2*y, 200)
next y
next x
get image 1, 0, 0, taillex, tailley
cls

y as integer : y = 100


DO

text 10, 10, "Salut !"

y = y - 1
if y <= 0 then y = 100
sprite 1, 0, y, 1
sync

LOOP

Je pense comme Maxilight : il faut bidouiller :D !

Atréides
17/07/2005, 12h40
En gros, les sprites sont placés au premier plan mais n'effacent pas ce qui se trouve sous eux. C'est leur différence majeur avec les images.

Eldred, utilise plutôt des images, c'est plus rapide et plus simple à utiliser. De plus, elles conviennent beaucoup mieux pour faire un menu.

ElDred
17/07/2005, 17h50
Bonjour,
Merci à tous pour votre aide!!
J'ai finalement trouvé la solution!!
Il suffisaut d'utiliser la fonction
set sprite 2,1,1
et de mettre le backsave sur 1 (au lieu de 0)
Je ne sais pas exactement ce que ca fait mais ca marche nickel!!
Encore Merci, pour ceux que ca intéresse:
:00000032: http://asgardgamesstudio.ifrance.com/index.html :00000032: