begin process at 2010 03 21 03:44:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

AddOns

 > JEZZBALL : JEU MIRC

JEZZBALL : JEU MIRC


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :AddOns Niveau :Initié Date de création :02/09/2004 Date de mise à jour :03/09/2004 07:32:02 Vu :6 026

Auteur : PaDa

Ecrire un message privé
Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note

 Description

Jezzball est un jeu Ti89 à la base si je me trompe pas , n'ayant pas trop d'idée de quoi coder en ces fins de vacances j'ai fait ca depuis deux jours ca m'a permis de me mettre un peu aux picwins (après un premier essai de dessins de fractales) et j'vous en fais profiter , au sens ou c'est comme le serpent sur le portable , si vous êtes joueurs vous allez y passer un moment malgré la simplicité et/ou la qualité assez basse du jeu (par rapport a dbz par exemple)

Le but du jeu est de 'remplir' son écran , en isolant les billes :
une fois une zone de l'écran isolée , si elle ne contient pas de billes elle se retrouve colorée ,
une fois 75% de l'écran coloré on passe au niveau suivant en ajoutant une bille :))

Control permet de faire tourner le curseur
Entrée permet de l'étendre ou de recommencer après un Game Over

Source

  • /*
  • Jezzball pour mirc .
  • Le but du jeu est de 'remplir' son écran , en isolant les billes :
  • une fois une zone de l'écran isolée , si elle ne contient pas de billes elle se retrouve colorée ,
  • une fois 75% de l'écran coloré on passe au niveau suivant en ajoutant une bille :))
  • */
  • Alias JezzBall {
  • hfree -w Jball*
  • hmake Jball2 100
  • ;score limite à changer pour rendre le jeu plus ou moins difficile
  • hadd Jball2 Score 75
  • ;nombres de vies initialement
  • hadd Jball2 Lives 3
  • ;nombre de balles au premier appel
  • hadd Jball2 N 1
  • ;couleur de remplissage
  • hadd Jball2 color $rgb(0,105,155)
  • Jezzball0 1
  • }
  • Alias -l JezzBall0 {
  • if !$1 && !$hget(Jball2,N) { echo -s * Syntaxe : /jezzball <N> | halt }
  • hfree -w Jball
  • hmake Jball 100
  • window -hp @J2 -1 -1 520 430
  • window -aCpdh +l @J -1 -1 520 430
  • drawfill -r @J2 $rgb(224,224,224) 1 1 1
  • drawfill -r @J $rgb(224,224,224) 1 1 1
  • drawtext -r @J $rgb(12,74,143) Tahoma 10 50 35 Jezzball mIRC
  • drawtext -r @J $rgb(12,74,143) Tahoma 10 50 355 Touches : [Ctrl][Enter][v][ $+ $chr(139) $+ ][^][ $+ $chr(155) $+ ]
  • hadd Jball S0 4
  • hadd Jball S1 49 50 450 50
  • hadd Jball S2 450 50 450 350
  • hadd Jball S3 450 350 50 350
  • hadd Jball S4 50 350 50 49
  • hadd Jball R0 4
  • hadd Jball R1 52 51 400 2
  • hadd Jball R2 451 52 2 300
  • hadd Jball R3 52 351 400 2
  • hadd Jball R4 51 52 2 300
  • hadd Jball T0 1
  • hadd Jball T1 50 50 400 300
  • hadd Jball C0 0
  • hadd Jball Percent 0
  • hadd Jball2 Stop 0
  • Jb.segments
  • Jb.display
  • Jb.ball0 $1
  • hadd Jball cursor 250 200 1
  • hadd Jball line 0
  • .timerJball -m 0 10 Jb.ball $1
  • }
  • Alias -l Jb.AddSeg {
  • hadd Jball line 0
  • hinc Jball S0
  • hinc Jball R0
  • hadd Jball S $+ $hget(Jball,S0) $1-
  • tokenize 32 $calc($1 + 2) $calc($2 + 2) $calc($3 - $1) $calc($4 - $2)
  • hadd Jball R $+ $hget(JBall,R0) $1 $2 $iif(!$3,2 $4,$3 2)
  • Jb.Segments
  • }
  • Alias -l Jb.segments {
  • var %i 1
  • while $hget(Jball,s $+ %i) {
  • drawline @J 1 2 $ifmatch
  • drawline @J2 1 2 $ifmatch
  • inc %i
  • }
  • }
  • Alias -l Jb.ball0 {
  • var %i $1
  • while %i {
  • hadd Jball %i 250 200 $iif($r(0,1),-) $+ $calc(0.7 + $r(0,60) / 100) $iif($r(0,1),-) $+ $calc(0.7 + $r(0,60) / 100) 2
  • dec %i
  • }
  • }
  • Alias -l Jb.cursor {
  • if !$window(@J) { .timerJb* off | halt }
  • tokenize 32 $hget(Jball,cursor) $1
  • if ($4 != $null) { drawline -r @J $4 1 $calc($1 $iif($3,- 4)) $calc($2 $iif(!$3,- 4)) $calc($1 $iif($3,+ 4)) $calc($2 $iif(!$3,+ 4)) }
  • else { drawcopy @J2 $calc($1 -4) $calc($2 -4) 8 8 @J $calc($1 -4) $calc($2 -4) }
  • }
  • Alias -l Jb.line {
  • ;horizontal
  • tokenize 32 $hget(JBall,line) $hget(JBall,line)
  • if !$window(@J) { .timerJb* off | hfree -w Jball* | halt }
  • ;horizontal
  • if $6 {
  • drawdot -r @J $rgb(250,0,0) 1 $1 $2
  • drawdot -r @J $rgb(250,0,0) 1 $4 $5
  • var %i = $Jb.IsSeg2($1,$2) , %j = $Jb.IsSeg2($4,$5)
  • if !%i { tokenize 32 $calc($1 -2) $2-6 }
  • if !%j { tokenize 32 $1-3 $calc($4 +2) $5-6 }
  • if (%i && %j) { .timerJbLine off | Jb.AddSeg $1-2 $4-5 | Jb.color $1-2 $4-5 }
  • else { hadd Jball line $1-6 }
  • }
  • ;vertical
  • else {
  • drawdot -r @J $rgb(250,0,0) 1 $1 $2
  • drawdot -r @J $rgb(250,0,0) 1 $4 $5
  • var %i = $Jb.IsSeg2($1,$2) , %j = $Jb.IsSeg2($4,$5)
  • if !%i { tokenize 32 $1 $calc($2 -2) $3-6 }
  • if !%j { tokenize 32 $1-4 $calc($5 +2) $6 }
  • if (%i && %j) { .timerJbLine off | Jb.AddSeg $1-2 $4-5 | Jb.color $1-2 $4-5 }
  • else { hadd Jball line $1-6 }
  • }
  • }
  • Alias -l Jb.IsSeg {
  • var %i 1,%i2,%x $1,%y $2
  • while $hget(Jball,R $+ %i) {
  • tokenize 32 $ifmatch
  • if $inrect(%x,%y,$1,$2,$3,$4) { %i2 = %i2 %i }
  • inc %i
  • }
  • return %i2
  • }
  • Alias -l Jb.IsSeg2 {
  • var %i $hget(Jball,S0),%x $1,%y $2
  • while %i {
  • tokenize 32 $hget(Jball,S $+ %i)
  • if (%x isnum $sorttok($+($1,-,$3),45,n)) && (%y isnum $sorttok($+($2,-,$4),45,n)) { return 1 }
  • dec %i
  • }
  • return 0
  • }
  • Alias -l Jb.IsLine {
  • var %x $int($1),%y $int($2)
  • tokenize 32 $hget(Jball,line)
  • return $inrect(%x,%y,$calc($1 -3),$calc($2 -3),$calc($4 - $1 +5),$calc($5 - $2 +5))
  • }
  • Alias -l Jb.ball {
  • var %i 1 , %imax = $1
  • while (%i <= %imax) {
  • tokenize 32 $hget(Jball,%i)
  • if $hget(JBall,line) && $Jb.IsLine($1,$2) { Jb.go | halt }
  • tokenize 32 $Jb.Rebond($1,$2,$3,$4) $5
  • hadd Jball %i $calc($1 + $3) $calc($2 + $4 ) $3-
  • if !$window(@J) || $hget(Jball2,stop) { .timerJb* off | hfree -w Jball | halt }
  • drawcopy @J2 $calc($1 -3) $calc($2 -3) 6 6 @J $calc($1 -3) $calc($2 -3)
  • ;drawdot -r @J $rgb(225,225,225) 2 $1 $2
  • drawdot @J $5 2 $calc($1 + $3) $calc($2 + $4)
  • ;Jb.segments
  • inc %i
  • }
  • Jb.cursor $rgb(255,0,0)
  • }
  • Alias -l Jb.Go {
  • .timerJb* off
  • if !$hget(Jball2,Lives) {
  • drawtext -r @J $rgb(200,0,0) Tahoma 36 150 150 GAME OVER
  • hadd Jball2 Stop 1
  • }
  • else { hdec Jball2 Lives | Jb.display | jezzball0 $hget(Jball2,N) }
  • }
  • Alias -l Jb.rebond {
  • var %s = $Jb.IsSeg($int($1),$int($2))
  • if $gettok(%s,2,32) { return $1-2 $calc(-1 * $3) $calc(-1 * $4) }
  • elseif %s {
  • %s = $hget(Jball,S $+ %s)
  • if ($gettok(%s,1,32) == $gettok(%s,3,32)) { return $1-2 $calc(-1 * $3) $4 }
  • return $1-3 $calc(-1 * $4)
  • }
  • return $1-
  • }
  • Alias -l Jb.rect {
  • var %i = $hget(Jball,T0),%x $1,%y $2
  • while %i {
  • tokenize 32 $hget(Jball,T $+ %i)
  • if $inrect(%x,%y,$1,$2,$3,$4) { return %i }
  • dec %i
  • }
  • }
  • Alias -l Jb.color {
  • ;$Jb.color(coordspts)
  • var %r = $hget(Jball,T)
  • tokenize 32 $hget(Jball,T $+ %r) $1-4
  • hinc Jball T0
  • ;honrizontal
  • if ($6 == $8) {
  • hadd Jball T $+ %r $1-3 $calc($6 - $2)
  • hadd Jball T $+ $hget(Jball,T0) $5-6 $3 $calc($2 + $4 - $6)
  • }
  • ;vertical
  • else {
  • hadd Jball T $+ %r $1-2 $calc($5 - $1) $4
  • hadd Jball T $+ $hget(Jball,T0) $5-6 $calc($1 + $3 - $5) $4
  • }
  • tokenize 32 $hget(Jball,T $+ %r) $hget(Jball,T $+ $hget(Jball,T0))
  • .timerJball off
  • var %i = $hget(Jball2,N),%1 0,%2 0
  • while %i {
  • if $inrect($gettok($hget(Jball,%i),1,32),$gettok($hget(Jball,%i),2,32),$1,$2,$3,$4) { inc %1 }
  • if $inrect($gettok($hget(Jball,%i),1,32),$gettok($hget(Jball,%i),2,32),$5,$6,$7,$8) { inc %2 }
  • dec %i
  • }
  • if (!%1) { drawrect -rf @J $hget(Jball2,color) 1 $1-4 | drawrect -rf @J2 $hget(Jball2,color) 1 $1-4 | hadd Jball percent $calc($hget(Jball,percent) + $3 * $4) | Jb.display }
  • if (!%2) { drawrect -rf @J $hget(Jball2,color) 1 $5-8 | drawrect -rf @J2 $hget(Jball2,color) 1 $5-8 | hadd Jball percent $calc($hget(Jball,percent) + $7 * $8) | Jb.display }
  • Jb.segments
  • .timerJball -m 0 10 Jb.ball $hget(Jball2,N)
  • hdel Jball T
  • }
  • Alias -l Jb.display {
  • var %s = $int($calc($hget(Jball,percent) /1200))
  • if (%s >= $hget(Jball2,Score)) {
  • .timerJb* off
  • hadd Jball2 Stop 1
  • if ($hget(Jball2,N) == 10) { drawtext -r @J $rgb(0,37,187) Tahoma 36 150 150 GAGNE ! | halt }
  • if ($hget(Jball2,N) < 10) {
  • hinc Jball2 N
  • drawtext -bor @J $rgb(0,37,187) $rgb(225,225,225) Tahoma 16 100 20 Niveau suivant : $hget(Jball2,N) balles
  • hinc Jball2 Lives
  • .timer 1 2 Jezzball0 $hget(Jball2,N)
  • }
  • }
  • drawtext -br @J $rgb(12,74,143) $rgb(225,225,225) Tahoma 10 330 35 $str($chr(160),80)
  • drawtext -br @J $rgb(12,74,143) $rgb(225,225,225) Tahoma 10 330 35 Score : %s % - Vies : $hget(Jball2,Lives)
  • }
  • on *:KEYDOWN:@J:13,37,38,39,40,17:{
  • if $hget(Jball2,stop) && ($keyval != 13) { halt }
  • if $hget(Jball2,stop) && ($keyval == 13) { JezzBall | halt }
  • if ($keyval == 13) && ($getdot(@J2,$gettok($hget(Jball,cursor),1,32),$gettok($hget(Jball,cursor),2,32)) isnum 14700000-14900000) {
  • tokenize 32 $hget(Jball,cursor) $hget(Jball,cursor)
  • if $hget(Jball,line) || $Jb.IsSeg2($1,$2) { halt }
  • hadd Jball line $iif($6,$calc($1 -2) $2-3 $calc($4 -2) $5,$1 $calc($2 -2) $3-4 $calc($5 -2)) $6
  • hadd Jball T $Jb.rect($1,$2)
  • ;hadd Jball line $1-
  • .timerJbLine -m 0 25 Jb.line
  • halt
  • }
  • if ($keyval == 17) && (!$keyrpt) { Jb.cursor | tokenize 32 $hget(Jball,cursor) | hadd Jball cursor $1 $2 $iif($3,0,1) | Jb.cursor 4 | halt }
  • var %d = $iif($keyrpt,6,2)
  • tokenize 32 $hget(Jball,cursor)
  • Jb.cursor
  • Jb.segments
  • tokenize 32 $calc($1 + $iif($keyval == 37,- %d,$iif($keyval == 39,%d,0))) $calc($2 + $iif($keyval == 40,%d,$iif($keyval == 38,- %d,0))) $3 $1 $2
  • hadd Jball cursor $iif($1 isnum 50-450,$1,$4) $iif($2 isnum 50-350,$2,$5) $3
  • Jb.cursor $rgb(255,0,0)
  • }
/*
Jezzball pour mirc .
Le but du jeu est de 'remplir' son écran , en isolant les billes : 
une fois une zone de l'écran isolée , si elle ne contient pas de billes elle se retrouve colorée ,
une fois 75% de l'écran coloré on passe au niveau suivant en ajoutant une bille :))
*/

Alias JezzBall {
  hfree -w Jball*
  hmake Jball2 100
  ;score limite à changer pour rendre le jeu plus ou moins difficile
  hadd Jball2 Score 75
  ;nombres de vies initialement
  hadd Jball2 Lives 3
  ;nombre de balles au premier appel
  hadd Jball2 N 1
  ;couleur de remplissage
  hadd Jball2 color $rgb(0,105,155)
  Jezzball0 1
}
Alias -l JezzBall0 {
  if !$1 && !$hget(Jball2,N) { echo -s * Syntaxe : /jezzball <N> | halt }
  hfree -w Jball
  hmake Jball 100
  window -hp @J2 -1 -1 520 430
  window -aCpdh +l @J -1 -1 520 430
  drawfill -r @J2 $rgb(224,224,224) 1 1 1
  drawfill -r @J $rgb(224,224,224) 1 1 1
  drawtext -r @J $rgb(12,74,143) Tahoma 10 50 35 Jezzball mIRC
  drawtext -r @J $rgb(12,74,143) Tahoma 10 50 355 Touches : [Ctrl][Enter][v][ $+ $chr(139) $+ ][^][ $+ $chr(155) $+ ]
  hadd Jball S0 4
  hadd Jball S1 49 50 450 50
  hadd Jball S2 450 50 450 350
  hadd Jball S3 450 350 50 350
  hadd Jball S4 50 350 50 49
  hadd Jball R0 4
  hadd Jball R1 52 51 400 2
  hadd Jball R2 451 52 2 300
  hadd Jball R3 52 351 400 2
  hadd Jball R4 51 52 2 300
  hadd Jball T0 1
  hadd Jball T1 50 50 400 300
  hadd Jball C0 0
  hadd Jball Percent 0
  hadd Jball2 Stop 0
  Jb.segments
  Jb.display
  Jb.ball0 $1
  hadd Jball cursor 250 200 1
  hadd Jball line 0
  .timerJball -m 0 10 Jb.ball $1
}
Alias -l Jb.AddSeg {
  hadd Jball line 0
  hinc Jball S0
  hinc Jball R0
  hadd Jball S $+ $hget(Jball,S0) $1-
  tokenize 32 $calc($1 + 2) $calc($2 + 2) $calc($3 - $1) $calc($4 - $2)
  hadd Jball R $+ $hget(JBall,R0) $1 $2 $iif(!$3,2 $4,$3 2)
  Jb.Segments 
}
Alias -l Jb.segments {
  var %i 1
  while $hget(Jball,s $+ %i) {
    drawline @J 1 2  $ifmatch
    drawline @J2 1 2 $ifmatch
    inc %i
  }
}
Alias -l Jb.ball0 {
  var %i $1
  while %i {
    hadd Jball %i 250 200 $iif($r(0,1),-) $+ $calc(0.7 + $r(0,60) / 100) $iif($r(0,1),-) $+ $calc(0.7 + $r(0,60) / 100) 2
    dec %i
  }
}
Alias -l Jb.cursor { 
  if !$window(@J) { .timerJb* off | halt }
  tokenize 32 $hget(Jball,cursor) $1
  if ($4 != $null) { drawline -r @J $4 1 $calc($1 $iif($3,- 4)) $calc($2 $iif(!$3,- 4)) $calc($1 $iif($3,+ 4)) $calc($2 $iif(!$3,+ 4)) }
  else { drawcopy @J2 $calc($1 -4) $calc($2 -4) 8 8 @J $calc($1 -4) $calc($2 -4) }
}
Alias -l Jb.line {
  ;horizontal
  tokenize 32 $hget(JBall,line) $hget(JBall,line)
  if !$window(@J) { .timerJb* off | hfree -w Jball* | halt }
  ;horizontal
  if $6 {
    drawdot -r @J $rgb(250,0,0) 1 $1 $2
    drawdot -r @J $rgb(250,0,0) 1 $4 $5
    var %i = $Jb.IsSeg2($1,$2) , %j = $Jb.IsSeg2($4,$5)
    if !%i { tokenize 32 $calc($1 -2) $2-6 }
    if !%j { tokenize 32 $1-3 $calc($4 +2) $5-6 }
    if (%i && %j) { .timerJbLine off | Jb.AddSeg $1-2 $4-5 | Jb.color $1-2 $4-5 }
    else { hadd Jball line $1-6 }
  }
  ;vertical
  else {
    drawdot -r @J $rgb(250,0,0) 1 $1 $2
    drawdot -r @J $rgb(250,0,0) 1 $4 $5
    var %i = $Jb.IsSeg2($1,$2) , %j = $Jb.IsSeg2($4,$5)
    if !%i { tokenize 32 $1 $calc($2 -2) $3-6 }
    if !%j { tokenize 32 $1-4 $calc($5 +2) $6 }
    if (%i && %j) { .timerJbLine off | Jb.AddSeg $1-2 $4-5 | Jb.color $1-2 $4-5 }
    else { hadd Jball line $1-6 } 
  }
}
Alias -l Jb.IsSeg {
  var %i 1,%i2,%x $1,%y $2
  while $hget(Jball,R $+ %i) {
    tokenize 32 $ifmatch
    if $inrect(%x,%y,$1,$2,$3,$4) { %i2 = %i2 %i }
    inc %i
  }
  return %i2
}
Alias -l Jb.IsSeg2 {
  var %i $hget(Jball,S0),%x $1,%y $2
  while %i {
    tokenize 32 $hget(Jball,S $+ %i)
    if (%x isnum $sorttok($+($1,-,$3),45,n)) && (%y isnum $sorttok($+($2,-,$4),45,n)) { return 1 }
    dec %i
  }
  return 0
}
Alias -l Jb.IsLine {
  var %x $int($1),%y $int($2)
  tokenize 32 $hget(Jball,line)
  return $inrect(%x,%y,$calc($1 -3),$calc($2 -3),$calc($4 - $1 +5),$calc($5 - $2 +5))
}
Alias -l Jb.ball {
  var %i 1 , %imax = $1
  while (%i <= %imax) {
    tokenize 32 $hget(Jball,%i)
    if $hget(JBall,line) && $Jb.IsLine($1,$2) { Jb.go | halt }
    tokenize 32 $Jb.Rebond($1,$2,$3,$4) $5
    hadd Jball %i $calc($1 + $3) $calc($2 + $4 ) $3-
    if !$window(@J) || $hget(Jball2,stop) { .timerJb* off | hfree -w Jball | halt }
    drawcopy @J2 $calc($1 -3) $calc($2 -3) 6 6 @J $calc($1 -3) $calc($2 -3)
    ;drawdot -r @J $rgb(225,225,225) 2 $1 $2
    drawdot @J $5 2 $calc($1 + $3) $calc($2 + $4)
    ;Jb.segments
    inc %i
  }
  Jb.cursor $rgb(255,0,0)
}
Alias -l Jb.Go {
  .timerJb* off
  if !$hget(Jball2,Lives) {
    drawtext -r @J $rgb(200,0,0) Tahoma 36 150 150 GAME OVER
    hadd Jball2 Stop 1
  }
  else { hdec Jball2 Lives |  Jb.display | jezzball0 $hget(Jball2,N) }
}
Alias -l Jb.rebond {
  var %s = $Jb.IsSeg($int($1),$int($2))
  if $gettok(%s,2,32) { return $1-2 $calc(-1 * $3) $calc(-1 * $4) }
  elseif %s {
    %s = $hget(Jball,S $+ %s)
    if ($gettok(%s,1,32) == $gettok(%s,3,32)) { return $1-2 $calc(-1 * $3) $4 }
    return $1-3 $calc(-1 * $4)
  }
  return $1-
}

Alias -l Jb.rect {
  var %i = $hget(Jball,T0),%x $1,%y $2
  while %i {
    tokenize 32 $hget(Jball,T $+ %i)
    if $inrect(%x,%y,$1,$2,$3,$4) { return %i }
    dec %i 
  } 
}
Alias -l Jb.color {
  ;$Jb.color(coordspts)
  var %r = $hget(Jball,T)
  tokenize 32 $hget(Jball,T $+ %r) $1-4 
  hinc Jball T0
  ;honrizontal

  if ($6 == $8) {
    hadd Jball T $+ %r $1-3 $calc($6 - $2)
    hadd Jball T $+ $hget(Jball,T0) $5-6 $3 $calc($2 + $4 - $6)
  }
  ;vertical
  else {
    hadd Jball T $+ %r $1-2 $calc($5 - $1) $4
    hadd Jball T $+ $hget(Jball,T0) $5-6 $calc($1 + $3 - $5) $4
  }
  tokenize 32 $hget(Jball,T $+ %r) $hget(Jball,T $+ $hget(Jball,T0))
  .timerJball off
  var %i = $hget(Jball2,N),%1 0,%2 0
  while %i {
    if $inrect($gettok($hget(Jball,%i),1,32),$gettok($hget(Jball,%i),2,32),$1,$2,$3,$4) { inc %1 }
    if $inrect($gettok($hget(Jball,%i),1,32),$gettok($hget(Jball,%i),2,32),$5,$6,$7,$8) { inc %2 }
    dec %i
  }
  if (!%1) { drawrect -rf @J $hget(Jball2,color) 1 $1-4 | drawrect -rf @J2 $hget(Jball2,color) 1 $1-4 | hadd Jball percent $calc($hget(Jball,percent) + $3 * $4) | Jb.display }
  if (!%2) { drawrect -rf @J $hget(Jball2,color) 1 $5-8 | drawrect -rf @J2 $hget(Jball2,color) 1 $5-8 | hadd Jball percent $calc($hget(Jball,percent) + $7 * $8) | Jb.display }
  Jb.segments
  .timerJball -m 0 10 Jb.ball $hget(Jball2,N)
  hdel Jball T
}
Alias -l Jb.display {
  var %s = $int($calc($hget(Jball,percent)  /1200))
  if (%s >= $hget(Jball2,Score)) { 
    .timerJb* off
    hadd Jball2 Stop 1
    if ($hget(Jball2,N) == 10) { drawtext -r @J $rgb(0,37,187) Tahoma 36 150 150 GAGNE ! | halt }
    if ($hget(Jball2,N) < 10) {
      hinc Jball2 N
      drawtext -bor @J $rgb(0,37,187) $rgb(225,225,225) Tahoma 16 100 20 Niveau suivant : $hget(Jball2,N) balles
      hinc Jball2 Lives
      .timer 1 2 Jezzball0 $hget(Jball2,N)
    }
  }
  drawtext -br @J $rgb(12,74,143) $rgb(225,225,225) Tahoma 10 330 35  $str($chr(160),80)
  drawtext -br @J $rgb(12,74,143) $rgb(225,225,225) Tahoma 10 330 35 Score : %s % - Vies : $hget(Jball2,Lives)
}

on *:KEYDOWN:@J:13,37,38,39,40,17:{
  if $hget(Jball2,stop) && ($keyval != 13) { halt }
  if $hget(Jball2,stop) && ($keyval == 13) { JezzBall | halt }
  if ($keyval == 13) && ($getdot(@J2,$gettok($hget(Jball,cursor),1,32),$gettok($hget(Jball,cursor),2,32)) isnum 14700000-14900000) {
    tokenize 32 $hget(Jball,cursor) $hget(Jball,cursor)
    if $hget(Jball,line) || $Jb.IsSeg2($1,$2) { halt }
    hadd Jball line $iif($6,$calc($1 -2) $2-3 $calc($4 -2) $5,$1 $calc($2 -2) $3-4 $calc($5 -2)) $6
    hadd Jball T $Jb.rect($1,$2)
    ;hadd Jball line $1-
    .timerJbLine -m 0 25 Jb.line
    halt 
  }
  if ($keyval == 17) && (!$keyrpt) { Jb.cursor | tokenize 32 $hget(Jball,cursor) | hadd Jball cursor $1 $2 $iif($3,0,1) | Jb.cursor 4 | halt }
  var %d = $iif($keyrpt,6,2)
  tokenize 32 $hget(Jball,cursor)
  Jb.cursor
  Jb.segments
  tokenize 32 $calc($1 + $iif($keyval == 37,- %d,$iif($keyval == 39,%d,0))) $calc($2 + $iif($keyval == 40,%d,$iif($keyval == 38,- %d,0))) $3 $1 $2
  hadd Jball cursor $iif($1 isnum 50-450,$1,$4) $iif($2 isnum 50-350,$2,$5) $3
  Jb.cursor $rgb(255,0,0)
}

 Conclusion

Il reste certains bugs , notamment des balles restant piégées dans un segment lors de tentatives "limite" mais j'espère que ca vous plaira quand même :p
Lorsque j'aurai fini de corriger ces bugs j'en ferai probablement une version plus configurable , même si au dela de 7-8 balles chez moi ca rame beaucoup trop pour être jouable (les détections de collision seront certainement changées en conséquence dans une prochaine version)

/jezzball


 Historique

02 septembre 2004 23:38:19 :
pb de char non affichés :p
02 septembre 2004 23:43:07 :
Another one
03 septembre 2004 07:32:02 :
on ne peux plus tirer un trait dans une zone déja colorée

 Sources du même auteur

Source avec Zip Source avec une capture GEOTOOLS : GESTION D'UN UWORLD
Source avec Zip Source avec une capture FRACTALES EN PICWINS
ASPIRATEUR DE GALERIES INTERNET
Source avec Zip Source avec une capture SCANNER MULTIFONCTIONS
Source avec Zip QUOTEUR (MDX)

 Sources de la même categorie

TCL - AJOUT SUPPRESSION DE LOGS par Atok
BLACKLIST PSEUDOS/MASKS par usurpateur
Source avec une capture [XCHAT] ANTI KICK / AWAY C++ par GeroXXXX
JEU DU CODE par alanpersonproject
SERVEUR FTP par hisoka2501

Commentaires et avis

Commentaire de PaDa le 03/09/2004 00:30:06

Si ca rame trop merci de mettre votre config que je vois a peu près l'étendue des dégats ...
une idée soudaine m'est aussi venue et les ramages excessifs seront prochainement éliminés normalement :o) (plutot que tester tous les segments a chaque mouvement de balle je vais essayer de déterminer pour chaque balle les 4 qui l'entourent et donc virer une boucle (qui peut faire ramer : 10 balles , 5 ou 6 segments => 10*5 = 50 tests toutes les 10ms ...)

Commentaire de PaDa le 03/09/2004 01:05:28

oups
j'ai regardé les sources récentes , dont pong irc , je ne connaissais pas les fps , soyez indulgents ici tout est à la main (et surement un peu maladroit) donc update samedi , c'est terrible ce truc ! :p

Commentaire de Ulcius le 03/09/2004 03:09:49

Bonjour PaDa :P encore un autre code infesable pour moi :P

Jespere que si tu est au études, tu te dirige en programation :P

Continu comme ca ,, tu fait du bon travail :)

Ulcius

Commentaire de AwayZ le 03/09/2004 03:42:16

Je me suis rendu a 6 boules en faisant mes lignes dans la zone bleue que j'ai fait lol

Commentaire de PaDa le 03/09/2004 07:32:36

tricheur ! c'est corrigé =]

Commentaire de ReMi34 le 03/09/2004 08:54:12

C'est excellent !
Mais les touches sont bizarres :)

Commentaire de Huzard le 03/09/2004 12:37:09

Genial!!

Commentaire de Huzard le 03/09/2004 13:13:51

Quelques bugs malgré tout:
-Niveau supérieur a 1, quand on perd, retour au niveau 1 (embetant)
-Toujours niveau superérieur a 1, quand tu enfermes une balle, et que tu gagne, le jeu renvoie au niveau 2, malgré tout ca reste un  tres bon jeu ;)

Commentaire de calopsfr le 03/09/2004 14:06:01

je comprendrais jamais rien aux picwins... bravo pour ce ptit jeu !

Commentaire de Huzard le 03/09/2004 14:41:14

le picwin c pa difficile, ce qui est dure c'est de gerer...

Commentaire de PaDa le 03/09/2004 14:44:59

ok Huzard , j'ai pas eu ce bug moi j'ai plutot eu des colorations foireuses et des balles qui restaient "enfermées" dans un segment ... enfin bon je mettrai a jour ce week end si j'ai le temps de reprendre un peu :)
merci pour vos posts ^^

Commentaire de DiGhan le 03/09/2004 17:31:23

Souperrr !

Commentaire de calopsfr le 03/09/2004 23:07:30

ben gerer un pickwin c'est un peu de ca que je aprle, pasque un pickwin touts eul ca sert à quoi

Commentaire de ReMi34 le 04/09/2004 09:04:11

calopsfr >> Picwin et pas Pickwin :)

Commentaire de calopsfr le 04/09/2004 11:41:32

scuse reflexe

Commentaire de Huitre le 04/09/2004 13:59:11

Ah c est la semaine des  revivals games :))

Tres sympa, rares bugs (g pu emprisonner une balle dans un segment coloré, et g eu un score de 100% lors d un tracage)

Apres pong,jezzball, il nous faut space invaders ou un ball breaker :p

Commentaire de Huitre le 04/09/2004 14:03:49

Tu devrais rajouter -n car tes balles clignotent arrivé a 5 boules :)

Commentaire de PaDa le 04/09/2004 18:02:51

rajouter -n ? /me débutant en picwins :( j'regarderai :p
sinon space invaders je sais pas mais un jeu de vaisseaux a été fait par Epsilon pour un défi sur mircscriptsfrfm.org je crois

Commentaire de Huitre le 04/09/2004 19:45:15

Ca permet de ne dessiner ds la win que quand tu le desires.
ex :

var %i = 0
while %i < 4 {
inc %i
drawdot -n @d %i 1 $rand(0,200) $rand(0,200)
}
drawpic @d

Ce code affiche les 4 points que quand les 4 sont pré-dessiné. Pas un à un.

Euh j espere que je t bien expliqué :D

Commentaire de PaDa le 04/09/2004 20:29:56

ok plutot que tenter de mettre a jour tout le temps au fur et a mesure ca synchronise c'est ca ?
nickouel j'me pencherai un peu plus dessus...
j'ai du mal avec le controle de fps au passage si quelqu'un a un tuto en francais : ma compréhension certainement superficielle de cui d'Epsilon fait que mes détections collisions se font n'importe comment (puisque les balles ne bougent pas forcément d'un seul pixel...)

Commentaire de Huitre le 04/09/2004 21:06:27

oué c en gros ca, ca empeche que le resultat soit visible dans la win, c a toi de dessiner quand tu le desires :)

Commentaire de KiNdErMaXi le 05/09/2004 00:58:52

exellent
j'adore

Commentaire de abdoulax le 12/09/2004 21:30:14

C poa mal du tout.
Ca me rappel mon sagem.
Sinon g un petit bug et je comprend poa car ça m'affiche aucune erreur. En fait kan je gagne ou perd la fenetre ce ferme et impossible de relancer le jeu ....

Commentaire de remy39 le 02/11/2004 11:33:04

moi g un blem apré le nivo 1 sa ve plus marcher
:/

Commentaire de clem54 le 04/05/2005 10:48:58

c ou la touche pour le mettre a la vertical :\ ??

Commentaire de clem54 le 04/05/2005 10:49:04

c ou la touche pour le mettre a la vertical :\ ??

Commentaire de PaDa le 04/05/2005 11:40:39

T'as qu'a lire ce que j'ai mis au dessus de la source, t'en mourras pas :)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales