coordonées de Sprite

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

coordonées de Sprite

Message par Backup »

on peut faire


Resultat = MouseX() (mouse qui est un sprite)

pourqui ne pas faire une fonction ?

Resultat = spriteX(#sprite)
Resultat = spriteY(#sprite)
pour recuperer la coordonéé actuel du sprite #sprite

a moins que ça existe et que j'ai pas vu ?

yen a qui vont me dire ," oui mais pour ça il faudrai que le pure tienne une table de coordonéés en permanence !! ect ..."

ce a quoi je repond ,pour que celle ci se comporte comme avant (sans table) y aurai qu'a rajouter un flag dans la commande createsprite en utilisant le parametre "mode" actuel

CreateSprite(#Sprite, Largeur, Hauteur [, #table])
#table = prise en charge des coordonées du sprite comme en Dark (et beaucoup de basic)



c'est bien je fait les question et les reponse moi !! :D

je trouve tres pratique que le langage me "decharge" du travail de savoir ou est le sprite n1 et le n2 ect ..

Pas vous ?? aie! aie! aie !! (t'a fini? avec tes idees le pure va etre tro facile a programmer !! tiens prend ça : aie! aie! )
:)
Ombres
Messages : 51
Inscription : sam. 24/janv./2004 12:46
Contact :

Message par Ombres »

Pas besoin que pure gere ca ... c'est déja facile à faire:

Code : Tout sélectionner

Structure sprite
  id.l
  x.w
  y.w
EndStructure
NewList sprite.sprite()

Procedure NewSprite(idSprite,x,y)
  AddElement(sprite())
  sprite()\id = idSprite
  sprite()\x  = x
  sprite()\y  = y
  ProcedureReturn @sprite()
EndProcedure

Procedure DrawSprites()
  ForEach sprite()
    DisplaySprite(sprite()\id,sprite()\x,sprite()\y)
  Next
EndProcedure

Procedure SpriteX(hSprite)
  ChangeCurrentElement(sprite(),hSprite)
  ProcedureReturn sprite()\x
EndProcedure

Procedure SpriteY(hSprite)
  ChangeCurrentElement(sprite(),hSprite)
  ProcedureReturn sprite()\y
EndProcedure

Procedure DeleteSprite(hSprite)
  ChangeCurrentElement(sprite(),hSprite)
  DeleteElement(sprite())
EndProcedure

Procedure PositionSprite(hSprite,x,y)
  ChangeCurrentElement(sprite(),hSprite)
  sprite()\x  = x
  sprite()\y  = y
EndProcedure 
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Pas besoin que pure gere ca ...

ben voila !!!

c'est toujours pareil !! Blazé! :?

votre gentillesse me tuera ! #jump

je vais pas encore recommencer cette fois j'arrete !!

il est bien le pure Basic ; il sait tout faire le pure basic; ne rajoutez rien !!
tout va bien ; brave gens ! :)

Fred je pense que tu peut arreter l'evolution de ce language ;
puisqu'il est parfait !! :D


cela n'a rien de personnel OMBRES c'est une vielle histoire :)
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Ombres
Messages : 51
Inscription : sam. 24/janv./2004 12:46
Contact :

Message par Ombres »

mmmmh ... ok :P
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Le principe des sprites c'est d'etre reutilisable, ce qui implique que le SpriteX/Y() change des qu'on appelle DisplaySprite(). Si je l'implemente, je vois deja venir les petits malins qui vont dupliquer les meme sprites juste pour avoir la gestion du X/Y (et donc dupliquer la surface video par la meme occasion).
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

dans ce cas faudrai empecher la duplication de ces sprites

que par la mem tu n'apellerai pas sprite mais BOB !!!
une sorte de sprite hardware comme sur amiga !!
:)

peut etre plus facile a dire pour moi; qu'a faire pour toi ... :)
Répondre