réduire une équation
Publié : sam. 12/juil./2008 14:46

voilà dans ma routine je code:
ang=270-((angle-270)*2)
arf!


Le compte est bonmais comment il font ça?......
Bah je ne peux pas développer plus le calcul là....chikun a écrit :![]()
![]()
![]()
![]()
![]()
, g verifié et c vrai en plus
mais comment il font ça?......
bon merci, tu passes prendre un verre quand tu veux...je continue à coder
Code : Tout sélectionner
angle = 15444
angle%360
Debug angle
Code : Tout sélectionner
angle=44
ang = 1210 + angle*24
Debug ang
real_ang=ang%360
Debug real_ang
Quand, apres plusieurs calculs, tu te retrouves avec un angle de par exemple 54801, tu n'as pas idée de ce que ca represente.Oliv a écrit :Roh je suis fatigué en ce moment moi ou je ne comprends rien![]()
Le modulo de l'angle n'a rien à voir avec le simplification du calcul demandé
Code : Tout sélectionner
angle=54801
real_angle = angle%360
debug real_angle
ton angle de 810 peux deja etre reduit à %360Oliv a écrit :ang = 270-(angle*2-270*2)
ang = 270-angle*2+540
ang = 810 - angle*2 et voilà
Code : Tout sélectionner
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(1024, 768, 32, "squelette ecran")
; 992,736
Structure boule
xb.w
yb.w
; sensx.b
; sensy.b
EndStructure
Dim boule.boule(2)
CreateSprite ( 1,100,100)
StartDrawing ( SpriteOutput (1))
Circle (50, 50, 50, RGB (0,255,0))
StopDrawing ()
CreateSprite ( 2,32,32)
StartDrawing ( SpriteOutput (2))
Circle (16,16,16, RGB (0,0,255))
StopDrawing ()
boule(1)\xb=(1024-100)/2 : boule(1)\yb=100
diam=600
ang=180: st=1
;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()
boule(2)\xb=mx-16: boule(2)\yb=700
DisplayTransparentSprite(1,boule(1)\xb,boule(1)\yb)
DisplayTransparentSprite(2,boule(2)\xb,boule(2)\yb)
ExamineMouse()
mx=MouseX()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_W) : ang=ang-st
EndIf
If KeyboardPushed(#PB_Key_Q) : ang=ang+st
EndIf
If ang>=360 : ang=358 : st=-st
EndIf
If ang<=180 : ang=182 : st=-st
EndIf
dx=diam*Cos(ang*#PI/180)
dy=diam*Sin(ang*#PI/180)
StartDrawing(ScreenOutput())
Line(mx,716,dx,dy,RGB(255,0,0))
StopDrawing()
If MouseButton(1)
col=0
For i=1 To 200
boule(2)\xb=boule(2)\xb+16*Cos(ang*#PI/180)
boule(2)\yb=boule(2)\yb+16*Sin(ang*#PI/180)
DisplayTransparentSprite(1,boule(1)\xb,boule(1)\yb)
DisplayTransparentSprite(2,boule(2)\xb,boule(2)\yb)
If col=0 And SpritePixelCollision(1,boule(1)\xb,boule(1)\yb,2,boule(2)\xb,boule(2)\yb)
If boule(2)\yb<boule(1)\yb+75
ang=270-((ang-270)*2): col=1; OLIV !!!!!!!!!!!!!!!!!!!!!!!!!!!
Else
ang=-ang : col=1
EndIf
EndIf
StartDrawing(ScreenOutput())
Line(mx,716,dx,dy,RGB(255,0,0))
StopDrawing()
FlipBuffers()
ClearScreen(RGB(0, 0,0))
If boule(2)\yb<0 Or boule(2)\yb>736 Or boule(2)\xb<0 Or boule(2)\xb>992: i=200
EndIf
Next i
EndIf
FlipBuffers()
ClearScreen(RGB(0, 0,0))
Until MouseButton(2)
End
Code : Tout sélectionner
ang=270-((ang-270)*2): col=1
Code : Tout sélectionner
ang = 810 - angle*2 :col=1