lolll merci.....enfin un peu d'encouragement, mais "ils" ont raison, ça va pas etre facile si je me plonge pas dans la trigo
puis toute façon, immagine dans un flipper avec une 10aine de "target", la quantité de "if" qui vont me retarder le prg (j'aimerai tant refaire de l'assembleur)
quoi que j'ai ajouté une seconde barre (regarde le code ci-dessous) et ça va encore.
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
#champi=3
Dim objet.objet(3)
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=320
CreateSprite ( #champi,100,50)
StartDrawing ( SpriteOutput (#champi))
LineXY(0,0,100,50,RGB(160,200,62))
StopDrawing ()
objet(#champi)\xb=200 : objet(#champi)\yb=500 : objet(#champi)\an=45
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)
DisplayTransparentSprite(#champi,objet(#champi)\xb,objet(#champi)\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)
Repeat
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)
DisplayTransparentSprite(#champi,objet(#champi)\xb,objet(#champi)\yb)
StartDrawing(ScreenOutput())
DrawText(0,0,"Chikun",RGB(125,90,30),RGB(0,0,0))
DrawText(370,0,"molette pour next lol!",RGB(0,200,100), 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
If SpritePixelCollision(#balle,objet(#balle)\xb,objet(#balle)\yb,#target,objet(#target)\xb,objet(#target)\yb)
ang=270+(270+(ang+objet(#target)\an) ); << GROSSE RECHERCHE mdrr
EndIf
If SpritePixelCollision(#balle,objet(#balle)\xb,objet(#balle)\yb,#champi,objet(#champi)\xb,objet(#champi)\yb)
ang=270+(270+(ang+objet(#champi)\an) )
EndIf
;EndIf
ClearScreen(RGB(0, 0,0))
ExamineMouse()
Until MouseButton(3)
EndIf
Until MouseButton(2)
End