FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Pacman en Panoramic Emptypar Pedro Hier à 10:37

» Un autre pense-bête...
Pacman en Panoramic Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Pacman en Panoramic Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Pacman en Panoramic Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Pacman en Panoramic Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Pacman en Panoramic Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Pacman en Panoramic Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Pacman en Panoramic Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Pacman en Panoramic Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Pacman en Panoramic Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Pacman en Panoramic Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Pacman en Panoramic Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Pacman en Panoramic Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Pacman en Panoramic Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Pacman en Panoramic Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Boutique Nike : -25% dès 50€ sur TOUT le site Nike avec le code ...
Voir le deal

 

 Pacman en Panoramic

Aller en bas 
2 participants
AuteurMessage
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Pacman en Panoramic Empty
MessageSujet: Pacman en Panoramic   Pacman en Panoramic EmptyLun 26 Mar 2012 - 1:03

Suite du Vorace, le Pacman ...

Début de l'éditeur de niveau (toujours la suite de ce qui était commencé dans le Vorace, mais bon, ce n'est plus l'évolution du Vorace qui est fini pour moi mais bien le début d'un Pac-man, cousin du vorace mais avec des règles légèrement différentes puisque le Pacman peut manger les fantômes s'il mange une Pacgomme ...)

Autre différence liée, les fantômes partent d'une zone prédéfinie.
Sinon dans ce jeu, il y aura des niveaux (d'où l'éditeur)

Pour le moment la zone de départ des monstres est fixe

Vous aurez besoin de l'image ci dessous:
Pacman en Panoramic Spritesvoracenoir3

Voici le code de l'éditeur que je viens de continuer cette nuit:
Code:
LABEL Clic, Fin, Desgril, Desoc, Editeur2Clip, Clip2Editeur, Init_Niveau, Dessine
LABEL Desactive_i, Active_i

DIM Objet%, i%, j%
DIM Icone1%, P_Travail%, P_Icones%, Image%, Grille%
DIM Prem_Ligne%, Nb_Lignes%, Nb_Colonnes% : Prem_Ligne%=7 : Nb_Lignes%=4 : Nb_Colonnes%=4
DIM Nb_C_niveau%,Nb_L_niveau%, PAS% : Nb_C_niveau% = 32 : Nb_L_niveau% = 20 : PAS%=20
DIM Niveau%, Niveaux%(Nb_L_niveau%,Nb_C_niveau%) : Niveau% = 1 : ' Init niveau par défaut = 1
DIM MaListe%, A_Niveau%, Selection%

COLOR 0,192,255,255: WIDTH 0,800: FONT_BOLD 0
Objet%=1 : Selection%=1
P_Travail% = Objet% : objet%=objet%+1
Picture P_Travail% : Hide P_Travail%: TOP P_Travail%, -2000: Height P_Travail%,(Prem_Ligne%+Nb_Lignes%-1)*Pas%
Width P_Travail%,Nb_Colonnes%*PAS% : File_load P_Travail%,"spritesvoracenoir3.bmp"
P_Icones% = objet%: PICTURE P_Icones%: : TOP P_Icones%, 20: LEFT P_Icones%,10
WIDTH P_Icones%, 4+(PAS%+4)*Nb_Colonnes%: HEIGHT P_Icones%, 4+(PAS%+4)*Nb_Lignes% :  COLOR P_Icones%,152,225,225
2D_Target_is P_Icones% : objet%=objet%+1
Image%=objet%  : objet%=objet%+1: Image Image%
Icone1%=objet% : objet%=objet%+1
2D_Fill_color 0,0,0
FOR j%= (Prem_Ligne% - 1) TO (Prem_Ligne% + Nb_Lignes%  - 2)
  FOR i% = 0 TO (Nb_Colonnes% - 1)
    Picture Objet% : LEFT Objet%,14+i%*(PAS%+4) : TOP Objet%, (j%-Prem_Ligne%+2)*(PAS%+4) : WIDTH Objet%, PAS%
    Height Objet%, PAS% : 2D_target_is objet% : On_click Objet%, Clic : 2D_Rectangle 0,0,PAS%,PAS%
    2D_Target_Is P_Travail% : 2D_IMAGE_COPY  Image%,i%*PAS%,j%*PAS%,(i%+1)*PAS%,(j%+1)*PAS%
    2D_Target_Is Objet% : 2D_IMAGE_PASTE Image%,0, 0 : Objet%=Objet%+1
  Next i%
Next j%

PICTURE objet% :TOP objet%,140: LEFT objet%,0: WIDTH objet%,130: HEIGHT objet%,90 :  COLOR objet%,152,225,225
2D_TARGET_IS objet% : objet%=objet%+1

ALPHA objet%: TOP objet%, 145: LEFT objet%, 2: WIDTH objet%, 124 :  COLOR objet%,152,225,225
CAPTION objet%, "Import / Export:":  objet%=objet%+1

BUTTON objet%: TOP objet%, 165: LEFT objet%, 2: WIDTH objet%, 124
CAPTION objet%, "CLIPBOARD>GRILLE": ON_CLICK objet%, Clip2Editeur: objet%=objet%+1

BUTTON objet%: TOP objet%, 195: LEFT objet%, 2: WIDTH objet%, 124
CAPTION objet%, "GRILLE>CLIPBOARD": ON_CLICK objet%, Editeur2Clip: objet%=objet%+1

ALPHA objet%: TOP objet%, 252: LEFT objet%, 10 : WIDTH objet%, 80: CAPTION objet%, "Niveau :": objet%=objet%+1
A_Niveau% = objet% : EDIT objet%: TOP objet%, 250: LEFT objet%, 82: WIDTH objet%, 30: objet%=objet%+1
Text A_Niveau%, STR$(Niveau%)

MaListe% = objet% : objet%=objet%+1

Grille% = Objet% : objet%=objet%+1 : Picture Grille%
TOP Grille%,20: LEFT Grille%, 130: ON_CLICK Grille%, Desoc
GOSUB Init_Niveau
GOSUB Desgril
FREE Objet%
END

Desactive_i:
if variable("temp1%")=1 then free temp1%
if variable("temp2%")=1 then free temp2%
if variable("temp3%")=1 then free temp3%
DIM temp1%, temp2%, temp3%
temp3%=Icone1%: temp3%=temp3%+1
FOR temp1%=1 TO Nb_L_niveau%
  FOR temp2%=1 TO Nb_C_niveau%
    OFF_Click temp3%
  NEXT temp2%
NEXT temp1%
FREE temp1%: FREE temp2%: FREE temp3%
RETURN

Active_i:
if variable("temp1%")=1 then free temp1%
if variable("temp2%")=1 then free temp2%
if variable("temp3%")=1 then free temp3%
DIM temp1%, temp2%, temp3%
temp3%=Icone1%: temp3%=temp3%+1
FOR temp1%=1 TO Nb_L_niveau%
  FOR temp2%=1 TO Nb_C_niveau%
    On_click temp3%, Clic
  NEXT temp2%
NEXT temp1%
FREE temp1%: FREE temp2%: FREE temp3%
RETURN

Desgril:
WIDTH  Grille%, Nb_C_niveau% * pas% : HEIGHT Grille%, Nb_L_niveau% * pas%
2D_TARGET_IS Grille%: 2D_PEN_COLOR 128,128,128: 2D_RECTANGLE 0,0,WIDTH(Grille%),HEIGHT(Grille%)
FOR j% = 0 TO HEIGHT(Grille%) STEP pas%: 2D_LINE 0,j%,WIDTH(Grille%),j% : NEXT j%
FOR i% = 0 TO WIDTH(Grille%)  STEP pas%: 2D_LINE i%,0,i%,HEIGHT(Grille%): NEXT i%
2D_PEN_COLOR 255,128,255: 2D_LINE 0,HEIGHT(Grille%)/2,WIDTH(Grille%),HEIGHT(Grille%)/2
2D_LINE WIDTH(Grille%)/2,0,WIDTH(Grille%)/2,HEIGHT(Grille%)
GOSUB Dessine
RETURN

Desoc:
GOSUB Desactive_i: OFF_CLICK Grille%
if variable("xcl%")=1 then free xcl%
if variable("ycl%")=1 then free ycl%
DIM xcl%, ycl%
xcl% = INT(MOUSE_X_POSITION(Grille%)/pas%)+1: ycl% = INT(MOUSE_Y_POSITION(Grille%)/pas%)+1
Niveaux%(ycl%,xcl%)=Selection%
GOSUB Desgril
FREE xcl% : FREE ycl%
GOSUB Active_i : ON_CLICK Grille%, Desoc
RETURN

Init_niveau:
for i%=1 to Nb_C_niveau%
 if i%=1
    Niveaux%(1,i%) = 3  :  Niveaux%(Nb_L_niveau%,i%) = 7
    for j%= 2 to Nb_L_niveau% - 1 : Niveaux%(j%,i%) = 1 : next j%
 else
      if i%=Nb_C_niveau%
      Niveaux%(1,i%) = 4 : Niveaux%(Nb_L_niveau%,i%) = 8
      for j%= 2 to Nb_L_niveau% - 1 : Niveaux%(j%,i%) = 1 : next j%
    else
      Niveaux%(1,i%) = 2 : Niveaux%(Nb_L_niveau%,i%) = 2
    end_if
 end_if
next i%

j% = int(Nb_L_niveau%/2)-1 : i%= int(Nb_C_niveau%/2)
Niveaux%(j%,i%)  = 13 : Niveaux%(j%,i%+1) = 13 : j%=j%+1 : i%=i%-2
Niveaux%(j%,i%)  = 3  : Niveaux%(j%,i%+1) = 2  : Niveaux%(j%,i%+2) = 16
Niveaux%(j%,i%+3) = 16 : Niveaux%(j%,i%+4) = 2  : Niveaux%(j%,i%+5) = 4  : j%=j%+1
Niveaux%(j%,i%)  = 1  : Niveaux%(j%,i%+1) = 13 : Niveaux%(j%,i%+2) = 13
Niveaux%(j%,i%+3) = 13 : Niveaux%(j%,i%+4) = 13 : Niveaux%(j%,i%+5) = 1  : j%=j%+1
Niveaux%(j%,i%)  = 7  : Niveaux%(j%,i%+1) = 2  : Niveaux%(j%,i%+2) = 2
Niveaux%(j%,i%+3) = 2  : Niveaux%(j%,i%+4) = 2  : Niveaux%(j%,i%+5) = 8  : j%=j%+1

RETURN

Dessine:
for j%=1 to Nb_L_niveau%
    for i%=1 to Nb_C_niveau%
      If Niveaux%(j%,i%) > 0
      2D_Target_Is Icone1%+Niveaux%(j%,i%) : 2D_IMAGE_COPY  Image%,0,0,pas%,pas%
      2D_Target_Is Grille%: 2D_IMAGE_PASTE  Image%, (i%-1)*pas%,(j%-1)*pas%
      End_if
    next i%
next j%
RETURN

Clic:
OFF_CLICK Grille%: GOSUB Desactive_i
if variable("Ligne%")=1 then free Ligne%
if variable("Colonne%")=1 then free Colonne%
DIM Ligne%, Colonne%
2D_Target_is P_Icones%
i%=int((Selection%-1) / Nb_Colonnes%) : j%=mod(Selection%-1,Nb_Colonnes%)
2D_PEN_COLOR 255,255,255: 2D_RECTANGLE 2+j%*(pas%+4), 2+i%*(pas%+4),26+j%*(pas%+4), 26+i%*(pas%+4)
wait 1
Selection% = Icone1%
FOR ligne%= 1 TO Nb_Lignes%
  FOR Colonne% = 1 TO Nb_Colonnes%
    Selection% = Selection% + 1
    if Selection% > Nb_Lignes%*Nb_Colonnes%+Icone1%+1 Then Selection%= Nb_Lignes%*Nb_Colonnes%+Icone1%+1
    IF CLICKED(Selection%) = 1
      Colonne% =  Nb_Colonnes% :  Ligne%= Nb_Lignes%
    END_IF
  Next Colonne%
Next ligne%
Selection% = Selection% - Icone1%
i%=int((Selection%-1) / Nb_Colonnes%) : j%=mod(Selection%-1,Nb_Colonnes%)
2D_PEN_COLOR 255,0,0: 2D_RECTANGLE 2+j%*(pas%+4), 2+i%*(pas%+4),26+j%*(pas%+4), 26+i%*(pas%+4)
Free Ligne%: Free Colonne%
ON_CLICK Grille%, Desoc : GOSUB Active_i
Return

Editeur2Clip:
if variable("a$") = 1 then free a$
Dim a$
a$ = TEXT$(A_Niveau%)
IF a$ = ""
    MESSAGE "Pas de niveau renseigné !": RETURN
END_IF
a$ = "L"+right$("00"+a$,2)
a$ = "DATA "+CHR$(34)+a$+CHR$(34)
a$=a$ + ","+CHR$(34)+STR$(Nb_C_niveau%)+"x"+STR$(Nb_L_niveau%)+CHR$(34)+CHR$(13)+CHR$(10)
a$=a$ + "DATA " + CHR$(34)
FOR j% = 1 TO Nb_L_niveau%
    FOR i% = 1 TO Nb_C_niveau%
            a$ = a$ + RIGHT$("00"+STR$(Niveaux%(j%,i%)),2)
    NEXT i%
    a$ = a$ + CHR$(34) + CHR$(13) + CHR$(10) + "DATA " + CHR$(34)
NEXT j%
a$ = LEFT$(a$, LEN(a$)-8)
CLIPBOARD_STRING_COPY a$
FREE a$
RETURN

Clip2Editeur:
if variable("a$") = 1 then free a$
Dim a$
DIM kic  : ' kic: position de la virgule
DIM dti$ : ' dti$: Ligne traitée
a$ = CLIPBOARD_STRING_PASTE$
i% = 0 : j% = 0
WHILE i%=0 and j%=0
  IF LEN(a$) < 20 then j% = 1      : ' Un niveau fait forcément plus de 20 caractères !!
  IF LEFT$(a$, 5) <> "DATA "
    a$=Right$(a$, len(a$)-1)      : ' Bon, on peut supposer un problème d'espaces, essayons de voir...
  ELSE
    IF MID$(a$,7,1)="L" THEN i%=1 : ' A PRIORI, les données semblent correctes
  END_IF
END_WHILE
IF j%=1 THEN MESSAGE "Le presse-papier ne contient pas de DATAs corrects !": RETURN
FILE_OPEN_WRITE 1, "C:\Temp\tmp": FILE_WRITELN 1, a$: FILE_CLOSE 1
DLIST MaListe%: FILE_LOAD MaListe%, "C:\Temp\tmp": FILE_DELETE "C:\Temp\tmp"
dti$ = ITEM_READ$(MaListe%, 1): dti$ = MID$(dti$, 6, 100)  : ' On traite jusqu'à 100 caractères après DATA !!
kic = INSTR(dti$, ",")
TEXT A_Niveau%, MID$(dti$, kic-3,2): dti$ = MID$(dti$,kic+2,100)
dti$ = LEFT$(dti$, LEN(dti$))
kic = INSTR(dti$, "x")
Nb_C_niveau%=VAL(LEFT$(dti$,kic-1)) : Nb_L_niveau%=VAL(MID$(dti$,kic+1,10))

FOR j% = 1 TO Nb_L_niveau%
dti$ = ITEM_READ$(MaListe%, 1+j%): dti$ = MID$(dti$, 6, 100)  : ' On traite jusqu'à 100 caractères après DATA !!
    FOR i% = 1 TO Nb_C_niveau%
        Niveaux%(j%,i%)=VAL(LEFT$(dti$,2))
        dti$=mid$(dti$,3,100)
    NEXT i%
NEXT j%

DELETE MaListe%
FREE  kic: FREE dti$ : FREE a$
gosub desgril
RETURN

Fin:
Terminate
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Pacman en Panoramic Empty
MessageSujet: Re: Pacman en Panoramic   Pacman en Panoramic EmptyMar 27 Mar 2012 - 0:41

Connexion internet de nouveau pourrie chez moi, mais bon, j'ai corrigé quelques petits trucs dans mon programme d'édition de niveaux.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Pacman en Panoramic Empty
MessageSujet: Re: Pacman en Panoramic   Pacman en Panoramic EmptyMar 27 Mar 2012 - 9:34

Salut Jicehel,

J'ai tester la mémorisation de la grille et çà marche.

Concernant la connexion internet, je constate comme toi qu'en ce moment c'est pas de la tarte.

A+
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Pacman en Panoramic Empty
MessageSujet: Re: Pacman en Panoramic   Pacman en Panoramic EmptyMar 27 Mar 2012 - 15:37

Merci Jean-Claude. L'éditeur me convient dans l'état, mais on pourra sans doute ajouter des options plus tard, mais pour le démarrage du Pac man, on pourra faire de jolis niveaux Smile

Je vais essayé de m'y mettre à partir de maintenant.

Pour que les niveaux soient plus beaux, je ferais sans doute des images de tiles jaunes, bleues, vert, ... ou un système pour lés générer dans toutes les couleurs au lieu d'utiliser une image de sorte d'avoir des niveaux moins monotones.

Sinon, les fantomes sortiront de leur "générateur" et pourront se faire manger si on a pris un Pacgomme.

La sortie par le haut (si pas de mur) fera réapparaitre en bas. La sortie en bas => apparait en haut, sortie à gauche => apparait à droite et réciproquement.

Revenir en haut Aller en bas
Contenu sponsorisé





Pacman en Panoramic Empty
MessageSujet: Re: Pacman en Panoramic   Pacman en Panoramic Empty

Revenir en haut Aller en bas
 
Pacman en Panoramic
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Pacman pour le prochain article
» Logithèque : une base de données en Panoramic pour Panoramic
» IDE Panoramic écrit en Panoramic
» PANORAMIC V 0.9.6 available / PANORAMIC V 0.9.6 disponible
» Logo Panoramic en Panoramic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: