RMEx
RMEx

Community

-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Prototype de portal-like

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

Ergo

Ergo
Voici un tout petit système, encore au stade de prototype. Toutes les suggestions sont bienvenues!
L'idée est de faire un petit game-play de portal (pour ceux qui connaissent). Voici le rendu général :

Prototype de portal-like Portal2-4b50751

Actuellement, pour le prototype, le rendu des portails est affreux Smile et j'utilise deux événements différents pour distinguer les tirs. Les deux tirs, sont deux événements différent placés sur la carte 5. On se sert d'abord de cet événement en processus parallèle sur la carte du "portal" :

Event - EV001
| > Afficher une image : 50, 'blue_portal', H.G. (0,0), (100%,100%), 0, Normale
| > Afficher une image : 51, 'red_portal', H.G. (0,0), (100%,100%), 0, Normale
| > Opération : Variable [0020] = ID de la carte
| > Opération : Variable [0001] = 0
| > Déplacer évènement : Héros (Attendre la fin)
| > Déplacer évènement : > Modifier charset : 'Actor1-portaled', 2
| > Boucle
| >| > Attendre : 1 Frames
| >| > Condition : la touche C est pressée
| >| >| > Appeler Script : invoke_event(5, V[1] + 1, 999, player_x, player_y)
| >| >| > Appeler Script : V[2+V[1]] = player_direction
| >| >| > Appeler Script : event_direction(999, V[2+V[1]])
| >| >| > Appeler Script : event_trail(999, 32, 1)
| >| >| > Boucle
| >| >| >| > Attendre : 1 Frames
| >| >| >| > Appeler Script : x , y = event_x(999), event_y(999)
| >| >| >| > Appeler Script : SS["A"] = region_id(x, y) == 1
| >| >| >| > Appeler Script : SS["B"] = x >= map_width-1 || x <= 0 || y >= map_height-1 || y <= 0
| >| >| >| > Condition : Script : SS["A"] || SS["B"]
| >| >| >| >| > Sortir de la Boucle
| >| >| >| >| >
| >| >| >| > Fin - Condition
| >| >| >| > Appeler Script : event_move_with(999, [12])
| >| >| >| >
| >| >| > Fin - Boucle
| >| >| > Condition : Script : SS["A"]
| >| >| >| > Appeler Script : show_animation(999, 51)
| >| >| >| > Appeler Script : x, y = event_x(999), event_y(999)
| >| >| >| > Appeler Script : picture_move(50+V[1], x*32, y*32, 100, 100, 1)
| >| >| >| > Appeler Script : picture_pin(50+V[1])
| >| >| >| > Appeler Script : picture_opacity(50+V[1], 255)
| >| >| >| > Appeler Script : SV[999] = event_x(999)
| >| >| >| > Appeler Script : SV[1000] = event_y(999)
| >| >| >| > Condition : Script : V[2+V[1]] == 2
| >| >| >| >| > Appeler Script : SV[1000] -= 1
| >| >| >| >| > Appeler Script : V[4+V[1]] = 8
| >| >| >| >| >
| >| >| >| > Fin - Condition
| >| >| >| > Condition : Script : V[2+V[1]] == 4
| >| >| >| >| > Appeler Script : SV[999] += 1
| >| >| >| >| > Appeler Script : V[4+V[1]] = 6
| >| >| >| >| >
| >| >| >| > Fin - Condition
| >| >| >| > Condition : Script : V[2+V[1]] == 6
| >| >| >| >| > Appeler Script : SV[999] -= 1
| >| >| >| >| > Appeler Script : V[4+V[1]] = 4
| >| >| >| >| >
| >| >| >| > Fin - Condition
| >| >| >| > Condition : Script : V[2+V[1]] == 8
| >| >| >| >| > Appeler Script : SV[1000] += 1
| >| >| >| >| > Appeler Script : V[4+V[1]] = 2
| >| >| >| >| >
| >| >| >| > Fin - Condition
| >| >| >| > Appeler Script : invoke_event(5, V[1] + 3, 1000+V[1], SV[999], SV[1000])
| >| >| >| > Appeler Script : V[1] = (V[1] + 1)%2
| >| >| >| >
| >| >| > Fin - Condition
| >| >| > Appeler Script : event_erase(999)
| >| >| > Condition : Script : V[1] == 0
| >| >| >| > Déplacer évènement : Héros (Attendre la fin)
| >| >| >| > Déplacer évènement : > Modifier charset : 'Actor1-portaled', 2
| >| >| >| >
| >| >| > Sinon
| >| >| >| > Déplacer évènement : Héros (Attendre la fin)
| >| >| >| > Déplacer évènement : > Modifier charset : 'Actor1-portaled', 1
| >| >| >| >
| >| >| > Fin - Condition
| >| >| >
| >| > Fin - Condition
| >| >
| > Fin - Boucle
| >
Ensuite, comme vous pouvez le voir, cet événement génère deux événements qui décriront la téléportation. Les voici (sur la carte 5).
Je me sers des régions pour définir les endroits "portaillables" :

Prototype de portal-like Jg5KW

Event - EV003
| > Condition : Script : V[2] == player_direction
| >| > Appeler Script : V[100] = event_x(1001)
| >| > Appeler Script : V[101] = event_y(1001)
| >| > Appeler Script : player_direction(V[5])
| >| > Téléporter l'équipe : ID:[0020], X:[0100], Y:[0101]
| >| >
| > Fin - Condition
| >
Event - EV004
| > Condition : Script : V[3] == player_direction
| >| > Appeler Script : V[100] = event_x(1000)
| >| > Appeler Script : V[101] = event_y(1000)
| >| > Appeler Script : player_direction(V[4])
| >| > Téléporter l'équipe : ID:[0020], X:[0100], Y:[0101]
| >| >
| > Fin - Condition
| >
Pour le moment, j'utilise une image pour le visuel du portail, cependant c'est modifiable. Idéalement il faudrait un événement avec une apparence de portail.

A bientôt pour de nouvelles aventures !

Zangther

Zangther
Plutot sympa dans l'ensemble. Tu as une bonne maitrise de la programation on dirait.
Quant à l'idée en elle même, pour faire deux trois puzzles ça peut être inseressant mais Portal n'est qu'interessant que par la conservation des vitesses et la possibilité de placer les portails en trois dimensions.

Ergo

Ergo
Oui, c'est plus dans l'idée de quelques puzzles Smile

4Prototype de portal-like Empty

Contenu sponsorisé


Voir le sujet précédent Voir le sujet suivant Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum