

c bien la pure mais fo s'accrocher

et va s'y Jeannot

ps: pas en sprite si possible
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 100, 100, "", #PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
If CreateImage(0, 100, 100)
StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Outlined)
Circle(50, 50, 20, $00FF00)
StopDrawing()
ImageGadget(0, 0, 0, 100, 100, ImageID(0))
EndIf
Repeat
e = WaitWindowEvent()
Until e = #PB_Event_CloseWindow
If IsImage(0) : FreeImage(0) : EndIf
EndIf
Code : Tout sélectionner
If InitSprite() = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
End
EndIf
If OpenWindow(0, 0, 0, 220, 160, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 170, 135, 45, 20, "Quitter")
EndIf
If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160, 0, 0, 0)
CreateSprite(0, 20, 20)
If StartDrawing(SpriteOutput(0))
DrawingMode(#PB_2DDrawing_Outlined)
Circle(10, 10, 10, $ff00ff)
StopDrawing()
EndIf
Else
MessageRequester("Erreur", "Impossible d'ouvrir un écran dans la fenêtre!", 0)
End
EndIf
EndIf
direction = 2
Repeat
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_Gadget
If EventGadget() = 0
End
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
Until Event = 0
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
DisplaySprite(0, x, x)
x + direction
If x > 140 : direction = -2 : EndIf
If x < 0 : direction = 2 : EndIf
Delay(1)
ForEver
Code : Tout sélectionner
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(1024, 768, 32, "squelette ecran")
; 992,736
Structure objet
xb.w
yb.w
an.w
EndStructure
#balle=1
#target=2
Dim objet.objet(2)
CreateSprite ( #balle,32,32)
StartDrawing ( SpriteOutput (#balle))
Circle (16,16,16, RGB (0,0,255))
StopDrawing ()
CreateSprite ( #target,100,50)
StartDrawing ( SpriteOutput (#target))
LineXY(0,50,100,0,RGB(128,250,32))
StopDrawing ()
objet(#target)\xb=400 : objet(#target)\yb=300 : objet(#target)\an=360
ang=180 : st=1 : diam=600
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Repeat
StartDrawing(ScreenOutput())
DrawText(0,0,"Chikun",RGB(125,90,30),RGB(0,0,0))
DrawText(370,0,"clic droit > sortir ___/___ clic gauche > shooter",RGB(0,200,100), RGB(0,0,0))
DrawText(369,16,"(A) ang à gauche ___/___ (Z) ang à droite",RGB(0,200,100), RGB(0,0,0))
StopDrawing()
ExamineMouse()
mx=MouseX() : my=MouseY()
If mx>992 : mx=992 : EndIf
If my>736 : my=736 : EndIf
objet(#balle)\xb=mx : objet(#balle)\yb=my
StartDrawing(ScreenOutput())
Line(mx+16,my+16,px,py,RGB(255,0,0))
StopDrawing()
DisplayTransparentSprite(#balle,objet(#balle)\xb,objet(#balle)\yb)
DisplayTransparentSprite(#target,objet(#target)\xb,objet(#target)\yb)
FlipBuffers()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Q) : ang=ang-st : EndIf ;"A"
If KeyboardPushed(#PB_Key_W) : ang=ang+st : EndIf ;"Z"
px=diam*Cos(ang*#PI/180)
py=diam*Sin(ang*#PI/180)
ClearScreen(RGB(0, 0,0))
If MouseButton(1)
For i=1 To 400
objet(#balle)\xb=objet(#balle)\xb+16*Cos(ang*#PI/180)
objet(#balle)\yb=objet(#balle)\yb+16*Sin(ang*#PI/180)
DisplayTransparentSprite(#balle,objet(#balle)\xb,objet(#balle)\yb)
DisplayTransparentSprite(#target,objet(#target)\xb,objet(#target)\yb)
StartDrawing(ScreenOutput())
Line(mx+16,my+16,px,py,RGB(255,0,0))
DrawText(0,0,"Chikun",RGB(125,90,30),RGB(0,0,0))
StopDrawing()
FlipBuffers()
If objet(#balle)\yb<0 : objet(#balle)\yb=0 : ang=-ang : EndIf
If objet(#balle)\yb>736 : objet(#balle)\yb=736 : ang=-ang : EndIf
If objet(#balle)\xb<0 : objet(#balle)\xb=0 : ang=270+(270-ang):EndIf
If objet(#balle)\xb>992 : objet(#balle)\xb=992 : ang=270+(270-ang): EndIf
; au lieu de :
If SpritePixelCollision(#balle,objet(#balle)\xb,objet(#balle)\yb,#target,objet(#target)\xb,objet(#target)\yb) : Delay(3000) : EndIf
; je voudrais avoir un cercle vide (au lieu de ma balle bleue) et demander si le centre (par Plot) rencontre un obstacle (une couleur)
ClearScreen(RGB(0, 0,0))
Next i
EndIf
Until MouseButton(2)
End
Code : Tout sélectionner
CreateSprite ( #balle,32,32)
StartDrawing ( SpriteOutput (#balle))
DrawingMode(#PB_2DDrawing_Outlined)
Circle (16,16,16, RGB (0,0,255))
StopDrawing ()
je ne vais pas t'aider dans ton objectif du moment, mais voilà ce que je pense( qu'il faut prendre comme une aparté hein):chikun a écrit :on fait comment un cercle vide
![]()
c bien la pure mais fo s'accrocher
et va s'y Jeannot![]()
ps: pas en sprite si possible
Ce n'est pas juste les transformations qui sont plus rapides ? Grâce à l'ut de la carte graphique quoi.2) les sprites2D( ram) sont rapide, les sprites3D( video ram) le sont encore plus( avec en prime zoom, rotation, transparence )...
Une carte graphique récente est recommandée pour bénéficier de la pleine puissance de ces fonctions (avec accélération des fonctions 3D). Les sprites 3D sont proposés pour réaliser facilement des effets hors du commun, mais il ne faut pas oublier qu'ils sont moins rapides que les sprites classiques et plus restrictifs en termes de taille par exemple.
En ce qui concerne le point 1, je suis relativement d'accord mais..0 : Mode par défaut (le sprite est chargé dans la mémoire video, si possible)
#PB_Sprite_Memory : Le sprite est créé dans la mémoire principale du PC (plus lent sauf en mode SpecialFX())
#PB_Sprite_Alpha : Le sprite est au format 8 bits (256 couleurs) en niveau de gris utilisé par DisplayAlphaSprite(), DisplayShadowSprite() ou DisplaySolidSprite()
#PB_Sprite_Texture: Le sprite est créé avec le support 3D (texture) nécessaire à la fonction CreateSprite3D() de la bibliothèque Sprite3D.
Ah, j'ai encore fait une bourde !Ouaf-Ouaf a écrit :Quand au sprites classiques, ces infos de createSprite(), ça veux pas dire que le sprite est chargé sur la RAM uniquement sur demande, ou si la mem video ne le permet plus ?
En ce qui concerne le point 1, je suis relativement d'accord mais..0 : Mode par défaut (le sprite est chargé dans la mémoire video, si possible)
#PB_Sprite_Memory : Le sprite est créé dans la mémoire principale du PC (plus lent sauf en mode SpecialFX())
#PB_Sprite_Alpha : Le sprite est au format 8 bits (256 couleurs) en niveau de gris utilisé par DisplayAlphaSprite(), DisplayShadowSprite() ou DisplaySolidSprite()
#PB_Sprite_Texture: Le sprite est créé avec le support 3D (texture) nécessaire à la fonction CreateSprite3D() de la bibliothèque Sprite3D.
La complexitée me semble plus due à l'astreinte du temps (pour les êtres materiels perrisables j'entends).
Après ce n'est jamais qu'une combinaison de problematiques qui peuvent être étudiées séparément, posément.. Qui de plus repondent à un système existant, déjà decortiqués par maintes hommes brillants du bulbe logique (faut dire qu'ils astiquent hein [pardon]), système existant donc, qui n'est autre que notre univers, là, palpable, sous nos pieds.. heu.. et au dessus de notre tête.
Tout est affaire, respectivement et recursivement, d'observation [des codes de Huibytes] , de methode, et de temps.
Je ne deconseillerais ça à personne =]
Pas de blem hein, rassuré de voir que tu n'as pas pris ça comme une petite attaque mesquine lol. ^^Ah, j'ai encore fait une bourde !
Oukiii ! J'avais pas compris ça.Tu as surement raison, mais comment voir, avec nos yeux fatigués, si un sprite2D est plus rapide qu'un sprite3D ? Si je devais commencer aujourd'hui un grand jeu, je le ferai uniquement avec des sprites3D, toujours rapport au zoom, rotation, transparence réalisé le doigt dans le nez, et c'est dans ce sens que l'on gagne du temps...