J'ai plusieurs questions :
je me suis essayé à des rayons qui tournent pour simuler une roue...pour se faire la main... Première chose, pourquoi le centre est blanc...
ci-joint mon essai de code :
d'autre part j'ai une petite procedure de cercle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 program roue; uses Flash8; const R=80; e=4; {$FRAME_WIDTH 400} {$FRAME_HEIGHT 200} {$FRAME_RATE 30} type TRayon = class(MovieClip) constructor Create; procedure onEnterFrame; end; var retour:boolean; dtheta:double; rayons:TRayon; constructor TRayon.Create; begin inherited Create(nil,'rayon',1); _x := R; _y := 100; retour:=true; dtheta:=3.14/180; BeginFill($ff0000); moveto(-R,-e); lineto(R,-e); lineto(R,e); lineto(-R,e); moveto(-e,-R); lineto(-e,R); lineto(e,R); lineto(e,-R); end; procedure TRayon.onEnterFrame; begin if retour then begin _x := _x + R*dtheta; _rotation:=_rotation +1; //1° end else begin _x:= _x -R*dtheta ; _rotation:=_rotation -1; end; if (_x+R>=400) or (_x-R<0.0) then retour:=not retour; end; begin rayons:=TRayon.Create; end.
J'ai tenté de créer un deuxième movieclip pour le placer sur mes rayons qui tournent...le cercle doit uniquement se déplacer en _x.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 procedure cercle(x,y,r:double); var a,b:double; begin a:= r * 0.414213562; b:= r * 0.707106781; beginfill($ffff00); moveTo(x+r, y); curveTo(x+r, y-a, x+b, y-b); curveTo(x+a, y-r, x, y-r); curveTo(x-a, y-r, x-b, y-b); curveTo(x-r, y-a, x-r, y); curveTo(x-r, y+a, x-b, y+b); curveTo(x-a, y+r, x, y+r); curveTo(x+a, y+r, x+b, y+b); curveTo(x+r, y+a, x+r, y); EndFill(); end;
Et bien, je n"y arrive pas. ça tourne avec l'ensemble...comment désolidariser les deux objets d'un point de vue de l'animation ?
Partager