' source-8 ' Une nouvelle aventure commence... :) ' 2026/05/11 print "CPU vs CPU - développement en cours..." 'show fog #204 to 300 fov 50 ?p1 = 0 ?p2 = 0 ?score_1 = 0 ?score_2 = 0 ?speed = 0.9 ?terrain_horiz = 40 ?terrain_vert = 40 ?terrain = 40 ?axe = 35 ?pos = ?terrain_vert * .9 color #246 create sprite 128 as "terrain" add "terrain" frame 1, 1, 1 to ?terrain_horiz * 2, 40, ?terrain_vert * 2 for 20 ?x1 = (random 1 to ?terrain_horiz * 2) ?z1 = (random 1 to ?terrain_vert * 2) ?x2 = (random 1 to ?terrain_horiz * 2) ?z2 = (random 1 to ?terrain_vert * 2) ?y = random 1 to 3 add "terrain" frame ?x1, ?y, ?z1 to ?x2, ?y, ?z2 next move "terrain" to 0, -5, 0 paint "terrain" to "metal" zoom y "terrain" to .5 color #0f8 create text "PONG" as "joueur-1" paint "joueur-1" to "metal" move "joueur-1" to 0, 0, -?pos turn y "joueur-1" to 180 color #f40 create text "PONG" as "joueur-2" move "joueur-2" to 0, 0, ?pos paint "joueur-2" to "metal" zoom "joueur-1" to .5 zoom "joueur-2" to .5 create orb as "orb-1" color "orb-1" to #0f8 glue "orb-1" to "joueur-1" move z "orb-1" to 5 power "orb-1" to 100 create orb as "orb-2" color "orb-2" to #f40 glue "orb-2" to "joueur-2" move z "orb-2" to 5 power "orb-2" to 100 color #0ff create sprite 3 as "balle" add "balle" frame 1, 1, 1 to 3, 3, 3 paint "balle" to "neon" zoom "balle" to 0.5 ?horiz = .8 ?vertical = .9 create orb color "orb" to #0ff glue "orb" to "balle" power "orb" to 200 move y "orb" to 5 ' target "camera" auto "balle" target "camera" auto 0, -10, 0 'move "camera" to 0, 3, 0 'glue "camera" to "balle" 'target "camera" auto "joueur-2" do ?rebondi = 0 move x "balle" by ?horiz move z "balle" by ?vertical if (abs (move x "balle")) > ?terrain_horiz negate ?horiz end if (abs (move z "balle")) > ?terrain_vert if ?vertical < 0 goto "score", 1 else goto "score", 2 end ?rebondi = 1 end if (hit "balle" to "joueur-1") = 1 and ?vertical < 0 ?rebondi = 1 end if (hit "balle" to "joueur-2") = 1 and ?vertical > 0 ?rebondi = 1 end turn "balle" by 1 ?angle + 1 ?ray = ?terrain_vert * 2 move "camera" to ?ray * (sin ?angle), 30, ?ray * (cos ?angle) if ?rebondi = 1 negate ?vertical ?horiz = (sign ?horiz) * (random 0.5 to 1.5) end if ?vertical < 0 ?dy = (move x "balle") - ?p1 limit ?dy min -?speed max ?speed ?p1 + ?dy limit ?p1 min -?axe max ?axe else ?dy = (move x "balle") - ?p2 limit ?dy min -?speed max ?speed ?p2 + ?dy limit ?p2 min -?axe max ?axe end move x "joueur-2" to ?p2 move x "joueur-1" to ?p1 update loop label "score" param ?joueur if ?joueur = 1 ?score_1 + 1 else ?score_2 + 1 end color 1 create text ?score_1 as "score_1" paint "score_1" to "ui" move "score_1" to ?axe, 0, ?terrain create text ?score_2 as "score_2" paint "score_2" to "neon" move "score_2" to ?axe, 0, -?terrain turn y "score_2" to 180 return
