Jeu de réflexes

Contenu du snippet

Premier post ici.
Deuxième jeu en picwin, sans prétention aucune.
J'ai vu qu'il en existait déjà un du même style, mais je ne m'en suis nullement inspiré. (je ne l'ai pas encore ouvert au moment du post)
Rien de très interessant dans le code, si ce n'est la while qui dessine les carrés.
J'aimerai juste savoir s'il y a des bugs (execpté une boule qui ne part pas de temps en temps...) ou s'il est possible d'optimiser/améliorer le code.
(Inutile de me dire que c'est graphiquement pourri, je sais)
Et pour le nom du jeu, ceux qui lisent Kid Paddle devraient reconnaître ^^

Source / Exemple :


alias Gnap {
  if (!%rec1.s) { set %rec1.s 0 }
  if (!%rec2.s) { set %rec2.s 0 }
  if (!%rec3.s) { set %rec3.s 0 }
  if (!%dif.s) { set %dif.s 800 }
  set %pts.s 0
  window -Cpk0od +fd @Gnap 0 0 250 315
  drawrect -fr @Gnap $rgb(0,0,150) 1 0 0 250 315
  menu.s
}

alias -l menu.s {
  drawrect -fr @Gnap $rgb(0,0,150) 1 0 0 250 315
  drawrect -fr @Gnap $rgb(0,111,221) 00 0 0 250 20
  drawtext -o @Gnap 00 SeagullSerial-Light 13 5 1 Jeu du Gnap by YaCoU
  drawdot -ir @Gnap $rgb(0,111,221) 7 223 11
  drawtext -o @Gnap 1 Fixedsys 12 217 2 - 
  drawdot -ir @Gnap $rgb(0,111,221) 7 240 11
  drawtext @Gnap 1 Fixedsys 12 235 2 × 
  drawrect -r @Gnap $rgb(134,138,117) 2 4 25 240 240
  drawrect -fr @Gnap $rgb(0,111,221) 1 5 270 42 15
  drawtext -o @Gnap 00 Tahoma 10 15 271 Easy
  drawrect -fr @Gnap $rgb(0,111,221) 1 50 270 42 15
  drawtext -o @Gnap 00 Tahoma 10 52 271 Medium
  drawrect -fr @Gnap $rgb(0,111,221) 1 95 270 42 15
  drawtext -o @Gnap 00 Tahoma 10 103 271 Hard
  drawrect -fr @Gnap $rgb(0,111,221) 1 5 290 42 15
  drawtext -o @Gnap 00 Tahoma 10 15 291 New
  drawrect -fr @Gnap $rgb(0,111,221) 1 50 290 42 15
  drawtext -o @Gnap 00 Tahoma 10 59 291 Quit
  drawrect -fr @Gnap $rgb(0,111,221) 1 95 290 42 15
  drawtext -o @Gnap 00 Tahoma 10 102 291 Règles
  drawtext  @Gnap 00 Tahoma 10 145 290 ¤ Points: %pts.s
  level.s
  if (%regles.s == $null) { cv.s }
}

alias -l cv.s {
  set %y.s 36
  set %ng2.s 1 
  while (%ng2.s < 6) {
    set %x.s 13 
    ch.s
    inc %ng2.s
    inc %y.s 45
} }

alias -l ch.s {
  set %x.s 13 
  set  %ng.s 1 
  while (%ng.s < 6) { 
    drawrect @Gnap 14 2 %x.s %y.s 40 40 
    inc %x.s 45
    inc %ng.s
} }

alias -l jeu.s {
  set %sclick.s on
  drawrect -fr @Gnap $rgb(0,0,150) 2 4 25 240 240
  drawrect -r @Gnap $rgb(134,138,117) 2 4 25 240 240
  cv.s
  set %pts.s 0
  drawrect -fr @Gnap $rgb(0,0,150) 1 142 291 70 10
  drawtext  @Gnap 00 Tahoma 10 145 290 ¤ Points: %pts.s
  .timerGnap1 1 60 stop.s
  .timerGnap2 -hm 0 %dif.s pos.s
}
alias -l stop.s {
  set %sclick.s off
  if (%rec1.s < %pts.s) || (%rec2.s < %pts.s) || (%rec3.s < %pts.s) { newrec.s }
  .timerGnap2 off 
}
alias -l newrec.s {
  if (%level.s == easy) && (%rec1.s < %pts.s) { set %rec1.s %pts.s | unset %pts.s | level.s }
  elseif (%level.s == medium) && (%rec2.s < %pts.s) { set %rec2.s %pts.s | unset %pts.s | level.s }
  elseif (%level.s == hard) && (%rec3.s < %pts.s) { set %rec3.s %pts.s | unset %pts.s | level.s }
}
alias -l pos.s {
  set %sclick.s on
  %xr.s = $rand(0,4)
  %yr.s = $rand(0,4)  
  set %posx.s $calc(%xr.s *45+35)
  set %posy.s $calc(%yr.s *45+57)
  drawdot @Gnap 4 15 %posx.s %posy.s
  .timerdot.s -hm 1 $calc(%dif.s -100) drawdot -r @Gnap $rgb(0,0,150) 15 %posx.s %posy.s
  .timerGnap3 -hm 1 $calc(%dif.s -100) set %sclick.s off
}

alias -l point.s {
  set %sclick.s off
  inc %pts.s
  drawrect -fr @Gnap $rgb(0,0,150) 1 142 291 70 10
  drawtext  @Gnap 00 Tahoma 10 145 290 ¤ Points: %pts.s
}

alias -l level.s {
  unset %pts.s
  drawrect -fr @Gnap $rgb(0,0,150) 10 145 270 95 15
  if (%level.s == easy) { 
    set %dif.s 800
    drawtext  @Gnap 00 Tahoma 10 145 270 ¤ Record: %rec1.s Points
  }  
  elseif (%level.s == medium) { 
    set %dif.s 600
    drawtext  @Gnap 00 Tahoma 10 145 270 ¤ Record: %rec2.s Points
  } 
  elseif (%level.s == hard) { 
    set %dif.s 450
    drawtext  @Gnap 00 Tahoma 10 145 270 ¤ Record: %rec3.s Points
} }

alias -l regles.s {
  stop.s
  .timerdot.s off
  clear @Gnap
  set %regles.s 1
  menu.s
  drawtext @Gnap 00 Tahoma 13 22 40 Un classique, essayer de cliquer
  drawtext @Gnap 00 Tahoma 13 22 60 le maximum de fois sur le machin
  drawtext @Gnap 00 Tahoma 13 22 80  qui sort en une minute, avant qu'il
  drawtext @Gnap 00 Tahoma 13 22 100 ne rentre dans son trou.
  unset %regles.s
}

alias -l close.s { window -c @Gnap | .timerGnap* off | .timerdot.s off  }
on *:close:@Gnap:{ close.s }

menu @Gnap {
  sclick:{
    if (%sclick.s == on) && ($mouse.x >= $calc(%posx.s - 20)) && ($mouse.x <= $calc(%posx.s + 20)) && ($mouse.y >= $calc(%posy.s - 20)) && ($mouse.y <= $calc(%posy.s + 20)) { point.s }
    elseif ($mouse.x >= 233) && ($mouse.x <= 247) && ($mouse.y >= 4) && ($mouse.y <= 15) { close.s }
    elseif ($mouse.x >= 216) && ($mouse.x <= 220) && ($mouse.y >= 4) && ($mouse.y <= 15) { window -n @Gnap }
    elseif ($mouse.x >= 50) && ($mouse.x <= 92) && ($mouse.y >= 290) && ($mouse.y <= 305) { close.s }
    elseif ($mouse.x >= 95) && ($mouse.x <= 137) && ($mouse.y >= 290) && ($mouse.y <= 305) { regles.s }
    elseif ($mouse.x >= 5) && ($mouse.x <= 47) && ($mouse.y >= 290) && ($mouse.y <= 305) { jeu.s }
    elseif ($mouse.x >= 5) && ($mouse.x <= 47) && ($mouse.y >= 270) && ($mouse.y <= 285) { set %level.s easy | level.s | stop.s }
    elseif ($mouse.x >= 50) && ($mouse.x <= 92) && ($mouse.y >= 270) && ($mouse.y <= 285) { set %level.s medium | level.s | stop.s }
    elseif ($mouse.x >= 95) && ($mouse.x <= 137) && ($mouse.y >= 270) && ($mouse.y <= 285) { set %level.s hard | level.s | stop.s }
} }

Conclusion :


C'est aussi pas mal de donner la liste des bugs connus s'il y en a ;-) <= ce que j'ai dit plus haut, une boule qui ne veut pas s'effacer, mais c'est rare.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_YaCoUbA)