Catégories
Construct 3 Jeu vidéo

Partie 10 : Ouvrir une porte

A l’approche du joueur la porte s’ouvre et se referme dès que le joueur s’éloigne :

Tu te positionnes sur le calque Joueur :

Clic droit sur la souris pour demander Insérer un nouvel objet :

Crée des images de portes fermées et ouvertes, où choisis dans :

Sur ce sprite, crée deux animations : open et close :

Tu vas redéfinir la zone de collision pour quelle soit la plus grande que possible et même dépasse la largeur de la porte. La largeur de la zone de collision permet le déclenchement automatique de l’ouverture de la porte.

Puis applique ta nouvelle boite de collision à toutes les animations de la porte.

Tu peux agrandir la zone de collision en agrandissant la taille de ton image :

Redemande à redéfinir la zone de collision en fonction de la nouvelle taille de ton image :

Pense à renommer ton sprite :

Maintenant dans ta feuille d’événements rajoute les instructions suivantes pour gérer l’ouverture de la porte en fonction de la proximité du joueur :

Catégories
Construct 3 Jeu vidéo

Partie 13 : Sonorise une action

Sur ta scène rajoute l’objet AUDIO :

L’objet Audio est rajouté dans ton projet :

Rajoute un son dans ton projet par exemple un son de saut :

Par le clic droit demande à importer un son

Rajoute le son lorsque le joueur saute dans la table d’évènements des niveaux :

Catégories
Construct 3 Jeu vidéo

Partie 11 : Des monstres !!!

Des monstres patrouillent dans ton monde et sont potentiellement dangereux :

Choisis le Calque joueur

Rajoute un sprite sur ta scène :

Crée une animation pour ton monstre :

Modifie le nom de ton Sprite :

Crée une barrière invisible que ton monstre ne doit pas franchir, demande à insérer un nouveau sprite :

Dessine un carré avec une couleur transparente :

Positionne ta barrière devant ton monstre :

Renomme ton sprite :

Par un drag up sur l’objet barriere vient placer une deuxième barrière derrière ton monstre :

Sur le monstre crée une variable d’instance pour définir sa vitesse de déplacement :

Maintenant, programme le déplacement de tes monstres dans la table d’événement :

Puis programme pour que les monstres puissent changer de sens de déplacement dès qu’ils rencontrent une barrière :

Puis retourne l’image des monstres quand ils changent de sens :

Tu peux rendre aléatoire la vitesse de chaque monstre au démarrage de scène :

Par des drag up tu peux mettre en place plusieurs monstres sur ta scène :

A toi de jouer pour ajouter une action sur une collision entre le joueur et les monstres :

Comment tuer un monstre en lui sautant dessus :

Catégories
Construct 3 Jeu vidéo

Partie 12 : Passer au niveau suivant

Crée un nouveau niveau à ton jeu

Ajoute une nouvelle scène à ton projet :

Choisis l’ajout d’une scène sans feuille d’événements, tu vas lier la feuille d’événements existante à la nouvelle scène :

Modifie le nom de la scène par Niveau 2 :

Remonte le niveau 2 à la suite du niveau 1 :

Rattache la feuille d’événements existante au niveau 2 :

Modifie également la taille de ta scène :

Coche Aligner sur la grille :

Puis par drap up positionne ton joueur dans la scène :

Choix des conditions pour passer à la scène suivante

Si tu fais le choix de passer à la scène suivante lorsque le joueur atteint une porte :

Ou le joueur atteint une porte et doit disposer de plus de 5 vies :

Ou que le joueur atteint le coté droit de la scène :

Catégories
ROBLOX

Mes premiers pas en Scripting ROBLOX

Créer un OBBY

Un « obby » (course d’obstacle) est un type de jeu sur Roblox où les joueurs doivent traverser une série d’obstacles pour atteindre la fin. Voici un guide pour créer votre propre obby avec des critères spécifiques et des instructions détaillées pour chaque partie.

Critères :

  1. Avoir au minimum 10 niveaux différents : Votre obby doit comporter au moins 10 niveaux uniques.
  2. Respecter toutes les parties : Suivez toutes les instructions pour chaque partie.
  3. Ne pas utiliser la tool-box pour les scripts ou certains obstacles : Évitez d’utiliser la tool-box pour les scripts et certains obstacles.
  4. Avoir au minimum un script spécial : Incluez au moins un script spécial dans votre obby.

Partie I : Créer le Lobby

Objectif : Créer un lobby (zone de départ) où le joueur apparaîtra et le décorer.

Instructions :

  1. Créer le lobby : Utilisez des « parts » (blocs) pour créer un espace où le joueur apparaîtra au début du jeu.
  2. Décorer le lobby : Ajoutez des éléments décoratifs pour rendre le lobby attrayant.

Suggestion pour la suite

Pour t’aider, oublie pas d’utiliser la fenêtre de sortie et la possibilité de mettre des commentaires dans ton script :

Commentaire d’une ligne :

–print(« instruction en commentaire »)

Commentaire de plusieurs instructions :

–[[
print(« instruction en commentaire »)
print(« instruction en commentaire »)
–]]


Partie II : Niveau 1 du jeu – Système de Déplacement de Part par un menu

Objectif : Créer un système pour déplacer une part à droite et à gauche pour aider le joueur à finir le premier niveau.

Instructions :

  1. Créer une part : Ajoutez une part et renommez-la.
  2. Créer un « Screen Gui » : Dans « StarterGui », ajoutez un « Screen Gui » et placez une « Frame » à l’intérieur.
  3. Système d’ouverture/fermeture : Créez deux boutons pour ouvrir et fermer la « Frame ».
  4. Boutons de déplacement : Ajoutez deux boutons pour déplacer la part à droite et à gauche.
    • Indice : Utilisez [nom de la variable de la part].Position += Vector3.new(x, y, z) pour déplacer la part.

Comment indiquer une ressource dans un script :

local btOpenMenu = script.Parent.OpenButton

Comment détecter un click de la souris sur un bouton :

btOpenMenu.MouseButton1Click:Connect(function()

end)

Comment déplacer un objet Roblox :

myPart.Position += Vector3.new(10,0,0)

Gérer les niveaux, afficher dans le chat du joueur son niveau :

Rajouter un script ChatScript sous ReplicatedStorage :

Puis coder dans ce script :

local ChatScript = {}

function ChatScript.sendMessage(player, message)

local character = player.Character or player.CharacterAdded:Wait()
if character then
    local head = character:WaitForChild("Head") 
    if head then
        game:GetService("Chat"):Chat(head, message) 
    end
end

end

return ChatScript

Rajouter dans votre script qui gère votre interface les instructions suivantes lorsque le joueur referme la fenêtre :

local chat = require(game.ReplicatedStorage.ChatScript)

chat.sendMessage(player, "niveau : 1")

Partie III : Niveau 2 – Parts Mobiles

Objectif : Faire en sorte qu’une ou plusieurs parts bougent continuellement.

Instructions :

  1. Ajouter des parts mobiles : Dans un de vos niveaux, ajoutez des parts qui bougent.
    • Indice : Utilisez while true do et for i = 1, x do pour créer un mouvement continu.

Déplacer un objet x fois :

for i = 1, 50 do
maPart.Position += Vector3.new(5,0,0)
wait(1)
end

Déplacer un objet Roblox tout le temps :

while true do
maPart.Position += Vector3.new(0.05,0,0)
wait(0.01)
end

Déplacer un objet jusqu’à une position :

while maPart.Position.X<60 do
maPart.Position += Vector3.new(5,0,0)
wait(0.01)
end

Synchroniser le déplacement avec le moteur de Roblox :

game:GetService(« RunService »).Heartbeat:Connect(function()
maPart.Position += Vector3.new(0.05,0,0)
end)

Exercer une force sur le part pour le bouger :

part.Anchored = false

local linearVelocity = Instance.new(« LinearVelocity »)
linearVelocity.Attachment0 = part:FindFirstChildOfClass(« Attachment ») or Instance.new(« Attachment », part)
linearVelocity.MaxForce = 20000 — Définir la force maximale
linearVelocity.VectorVelocity = Vector3.new(0, 0, 50) — Définir la vitesse linéaire
linearVelocity.Parent = part

wait(1) — Attendre 5 secondes

linearVelocity:Destroy()
part.Anchored = true


Partie IV : Niveau 3 – Part Mortel

Objectif : Créer une part qui tue le joueur lorsqu’il la touche.

Instructions :

  1. Créer un part rouge : Ajoutez un part, colorez-le en rouge et utilisez le matériau « Néon ».
  1. Ajouter un script : Créez un script dans le part.
  2. Script de mort : Lorsque le joueur touche le part, il meurt.
    • Indices :
      • Utilisez [Nom du part].Touched:Connect(function(player) pour détecter le contact.
      • Utilisez character = player.Parent pour obtenir le personnage du joueur.
      • Utilisez humanoid = character and character:FindFirstChild("Humanoid") pour obtenir l’objet Humanoid du joueur.
      • Tuer le joueur : humanoid.Health = 0

Santé du joueur à 100 au départ du jeu :

print(humanoid.Health)

Réduire la santé du joueur :

humanoid.Health = humanoid.Health – 5
ou
humanoid:TakeDamage((5))

Le joueur meurt quand sa santé est à zéro :

humanoid.Health = 0


Partie V : Niveau 4 – Part Invisible

Objectif : Créer un part invisible qui apparaît lorsque le joueur clique sur un autre part.

Instructions :

  1. Créer un part avec ClickDetector : Ajoutez un part, renommez-la, et ajoutez un « ClickDetector ».
  2. Créer un part invisible : Ajoutez un autre part et définissez Transparency = 1 et CanCollide = false.
  3. Script d’apparition : Lorsque le joueur clique sur le part avec le « ClickDetector », le deuxième part apparaît.
    • Indices :
      • Utilisez [Premièr Part].ClickDetector.MouseClick:Connect(function() pour détecter le clic.
      • Utilisez [Créez ta variable] = [Nom de la part où on click]:WaitForChild("ClickDetector") pour obtenir le ClickDetector.

Comment coder un ClickDetector sur le part :

local clickDetector = script.Parent.ClickDetector

clickDetector.MouseClick:Connect(function()
print(« touché »)
end)

Comment coder un Prompt :

maPart.ProximityPrompt.Triggered:Connect(function(otherPart)
print(‘activé’)
end)


Partie VI : Pathfinding (recherche de chemin) avec des Parts

Objectif : Créer un chemin de parts où le joueur doit sauter au bon moment pour passer à la prochaine part.

Instructions :

  1. Créer 3 parts : Ajoutez des parts et renommez-les.
  2. Créer un patherme : Disposez les parts de manière à ce que le joueur doive sauter au bon moment pour passer à la suivante.
    • Indice : Utilisez la Transparency pour rendre certaines parts invisibles.
    • Indice : supprimer l’objet baseplate

Exemple de Pathfinding avec deux niveaux :

Exemple pour passer à un niveau 2 :

Exemple de script pour faire apparaître le niveau 2 lors du clic sur le ClickDetector:

local clickDetector = script.Parent.Level01.ArrowToLevel02.ClickDetector

— récupération de tous les parts du niveau 2
local levels = script.Parent.Level02:GetChildren()

— récupération du système de chat
local chat = require(game.ReplicatedStorage.ChatScript)

clickDetector.MouseClick:Connect(function(otherPart)

-- envoie du message au chat du joueur
chat.sendMessage(otherPart, "niveau : 2")

-- rendre visible tous les objets du niveau 2 
for _, level in levels do
    level.Transparency = 0
end

end)


Partie VII : Labyrinthe avec Portes Temporisées

Objectif : Créer un labyrinthe avec des portes qui s’ouvrent temporairement.

Instructions :

  1. Créer un labyrinthe : Utilisez des parts pour créer un labyrinthe.
  2. Ajouter une porte : Ajoutez une part et renommez-la.
  3. Créer un bouton : Ajoutez une autre part qui servira de bouton.
  4. Script de porte temporisée : Lorsque le joueur appuie sur le bouton, il a un nombre de secondes « x » pour passer la porte, sinon elle se referme.
    • Condition : La porte doit s’ouvrir soit vers les côtés, soit vers le haut en animation.
  5. Ajouter 3 portes : Créez au moins 3 portes comme cela dans le même script.

Créez une porte à partir d’un part :

Rangez le part et renommez le dans l’explorateur :

Puis créez avec un part une poignée :

Créez une contrainte rigide entre la porte et la poignée :

Sélectionnez la poignée puis la porte puis demande une « soudure » entre les deux éléments :

Demandez un clickDetector sur la poignée :

Modifiez le pivot de la porte :

Créez un script pour ouvrir la porte :

local clickDetector = script.Parent.Handle.ClickDetector
local door = script.Parent.Door

local function doorRotation(door, push, rotation)
if push ~= 0 then
for i = 1, (rotation//math.abs(push)) do
door:PivotTo(door:GetPivot() * CFrame.Angles(math.rad(push), 0, 0))
wait(0.01)
end
end

end

clickDetector.MouseClick:Connect(function()
doorRotation(door, 1, 90)
end)

Refermez la porte au bout de x secondes, rajouter ces deux instructions :

task.wait(5)
doorRotation(door, -1, 90)

Modifier le script pour déplacer la porte vers le haut :

local clickDetector = script.Parent.Handle.ClickDetector
local door = script.Parent.Door

local distance = clickDetector.MaxActivationDistance

local function doorPushUp(door, push)
door.CFrame += Vector3.new(0,push,0)
while door.CFrame.Position.Y>5 and door.CFrame.Position.Y<15 do
wait(0.01)
door.CFrame += Vector3.new(0,push,0)
end
end

clickDetector.MouseClick:Connect(function()
clickDetector.MaxActivationDistance = 0
doorPushUp(door, 1)
task.wait(5)
doorPushUp(door, -1)
clickDetector.MaxActivationDistance = distance

end)


Partie VIII : Menu de départ du jeu

Objectif : Créez un menu pour le lancement du jeu

Instructions :

  1. Créer un menu de lancement du jeu : Afficher le titre du jeu et un bouton PLAY.
  2. Créer un script de démarrage : Lancer le jeu par le bouton play.

Créez un menu de démarrage du jeu :

Créez un script pour afficher le menu et lancez le jeu :

local startMenu = script.Parent
local playButton = startMenu.PlayButton

startMenu.Enabled = true

playButton.Activated:Connect(function()
startMenu.Enabled = false

end)

Rendez invisible le bouton de votre menu invisible au lancement du jeu en utilisant ces instructions :

local open = script.Parent.Parent.ScreenGui.OpenButton

open.Visible = false

Bloquez la camera avant le lancement du jeu:

local startMenu = script.Parent
local playButton = startMenu.PlayButton
local camera = workspace.CurrentCamera
local open = script.Parent.Parent.ScreenGui.OpenButton

startMenu.Enabled = true

— la caméra peut-être modifiée par le programme
camera.CameraType = Enum.CameraType.Scriptable

camera.CFrame = CFrame.new(Vector3.new(10, 27, 17))
camera.CFrame = CFrame.new(camera.CFrame.Position) * CFrame.Angles(math.rad(-50), math.rad(30), math.rad(20))

open.Visible = false

playButton.Activated:Connect(function()

– – la caméra est de nouveau utilisée par le jeu
camera.CameraType = Enum.CameraType.Custom
startMenu.Enabled = false
open.Visible = true

end)

Immobilisez le joueur avant le démarrage du jeu, utilisez ces instructions :

— récupération du joueur local
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
humanoid = character:FindFirstChild(« Humanoid »)

— Immobiliser le joueur
humanoid.WalkSpeed = 0

Ne pas oublier de lui rendre sa vitesse au démarrage du jeu

Faites tourner le joueur sur lui-même avant le démarrage du jeu :

local rotation = true

playButton.Activated:Connect(function()
     rotation = false
     camera.CameraType = Enum.CameraType.Custom
     startMenu.Enabled = false
     open.Visible = true

     humanoid.WalkSpeed = walkSpeed
end)

local humanoidRootPart = character:FindFirstChild(« HumanoidRootPart »)

while rotation do
humanoidRootPart.CFrame = humanoidRootPart.CFrame * CFrame.Angles(0, math.rad(1), 0)
wait(0.01)
end


Partie IX : Animation glissade du joueur

Objectif : Crée une animation de glissade

Instructions :

Créer une animation : Lancer le jeu par le bouton play.

Créer un script pour lancer l’animation sur l’appuie d’une touche du clavier 

Choisis AVATAR puis constructeur de RIG

Choisis ton RIG :

R6 : Moins de parties mobiles, mouvements moins fluides, apparence plus simple.

R15 : Plus de parties mobiles, mouvements plus fluides et réalistes, apparence plus détaillée.

Déplace ton RIG pour créer l’animation

Ouvre l’éditeur d’animation :

L’éditeur d’animation ouvre une Timelapse :

Une timelapse dans un éditeur d’animation est une technique qui permet de capturer et de montrer le processus de création d’une animation. Cela signifie que vous enregistrez votre travail à intervalles réguliers et ensuite vous compilez ces enregistrements en une vidéo qui montre l’ensemble du processus de l’animation.

Demande à créer l’animation sur l’ensemble du corps en appuyant sur le + :

Décoche Rotation et Déplacer

Modifie les positions du corps étape par étape pour animer une glissade :

Définis la priorité de l’animation :

Action2 : Utilisé pour les animations qui doivent avoir la priorité sur les animations d’inactivité et de mouvement, mais pas nécessairement sur les animations de haute priorité.

Sauvegarde l’animation et garde bien sa référence car tu vas en avoir besoin :

Copie la référence de l’animation :

Garde bien l’identifiant puis ferme la fenêtre:


Script de l’animation

Crée un localscript sous StarterPlayer dans StarterCharacterScripts :

Puis une animation :

Modifie les noms du script et de l’animation :

Tu peux maintenant coller la référence de l’animation dans AnimationId de ton animation :

Code script pour lancer l’animation :

Code ton script pour que l’animation se lance sur une touche du clavier, dans l’exemple la touche CTRL :

local UIS = game:GetService(« UserInputService »)


UIS.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.LeftControl then
print(« animation glissade »)
end
end)

Vérifie que tu as le message dans la sortie lorsque tu appuies sur CTRL

Code pour lancer l’animation dans une fonction et que tu ne puisses pas lancer plusieurs fois :

local in_progress = false
local function ActivationGlissade()
if not in_progress then
in_progress = true
print(« animation glissade »)
task.wait(1)
in_progress = false
end
end


UIS.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.LeftControl then
ActivationGlissade()
end
end)

Code pour lancer l’animation :

local UIS = game:GetService(« UserInputService »)

local Character = script.Parent
local Humanoid = Character:WaitForChild(« Humanoid »)
local GlissadeAnimation = Humanoid:LoadAnimation(script:WaitForChild(« GlissadeAnimation »))


local in_progress = false

local function ActivationGlissade()
if not in_progress then
in_progress = true
GlissadeAnimation:Play()
task.wait(1)
in_progress = false
end
end

Ton animation se lance mais ne s’arrête plus :

local function ActivationGlissade()
if not in_progress then
in_progress = true
GlissadeAnimation:Play()

local humanoidRootPart = Character:WaitForChild(« HumanoidRootPart »)
local linearVelocity = Instance.new(« LinearVelocity »)
linearVelocity.Attachment0 = Instance.new(« Attachment », humanoidRootPart)
linearVelocity.MaxForce = 10000 — Définir la force maximale
linearVelocity.VectorVelocity = Character.HumanoidRootPart.CFrame.LookVector * 30
linearVelocity.Parent = Character.HumanoidRootPart

task.wait(1)

GlissadeAnimation:Stop()
linearVelocity:Destroy()

in_progress = false

end
end

Modifie ton code pour paramétrer le temps de l’animation et sa vitesse :


–Modifications de la fonction avec deux paramètres
local function ActivationGlissade(sliding_time, speed)

Humanoid.WalkSpeed = speed

linearVelocity.VectorVelocity = Character.HumanoidRootPart.CFrame.LookVector * speed
task.wait(sliding_time)


–Modifications de l’appel de la fonction temps de l’animation et vitesse
ActivationGlissade(0.5,10)


Conclusion

En suivant ces instructions, vous serez en mesure de créer un obby complet et fonctionnel sur Roblox. Assurez-vous de respecter tous les critères et d’utiliser les indices pour vous aider à compléter chaque partie. Bonne chance et amusez-vous bien !

Catégories
Construct 3 Jeu vidéo

Partie 15 : Publie ton jeu

Export de ton jeu

Dans Construct demande un export de ton projet de jeu :

Puis demande l’export Arcade Construct :

Choisis Télécharger nom de ton projet.zip

Ton projet est télécharger dans le répertoire Téléchargements

Publication de ton jeu sous construct

Puis demander à publier ton jeu dans contruct 3 par le lien construct.net/free-online-games/submit :

A toi de choisir le statut de ton jeu : en cours de création (Work in Progress) ou complétement terminé (Full Game)

Choisir le public qui peut jouer à ton jeu en fonction de son âge :

  • Tous les âges
  • A partir des adolescents de plus de 13 ans
  • Seulement les adultes

Choisis le type d’appareil sur lequel on peut jouer avec ton jeu :

  • Les ordinateurs seulement
  • Les smartphones seulement
  • Les deux ordinateurs et smartphones

Maintenant que tu as téléchargé ton jeu, tu dois mettre une image représentative de ton jeu. Pour cela lance ton jeu dans contruct 3 :

Puis utilise l’outil capture de windows pour copier une image de ton jeu :

Dans l’outil capteur clic sur nouveau en haut à gauche de l’outil capture, puis avec la souris sélectionne une partie de l’écran de ton jeu :

Dans l’outil capture Fichier Enregistrer sous le répertoire téléchargement :

Accepte les conditions suivante pour publier ton jeu :

  • Je confirme avoir lu, compris pleinement et accepté les termes et conditions ci-dessous.
  • Je confirme que j’ai tous les droits pour télécharger et distribuer ce jeu dans le monde entier, ou que j’ai l’autorisation explicite des détenteurs des droits d’auteur.
  • Je confirme que j’assume l’entière responsabilité juridique de tout le contenu et des ressources que je télécharge et que je ne tiendrai définitivement pas Scirra ou ses partenaires responsables de tout dommage.

Principalement :

Tu dois faire attention à ce que les images et les sons de ton jeu soient libre des droits d’auteur.

Tu ne dois pas télécharger un jeu dont le contenu contient :

  • Du contenu diffamatoire, sur la religion, la race, l’orientation sexuelle, le sexe, l’origine nationale/ethnique ou d’autres groupes ciblés.
  • Des représentations réalistes de personnes ou d’animaux tués, mutilés, torturés ou maltraités, ou du contenu qui encourage la violence

ACCORD

Le présent Accord d’utilisation (« Accord ») est un contrat juridiquement contraignant entre vous et Scirra Ltd. et avec notre société mère, nos filiales et sociétés affiliées (« Scirra », « Construct » ou « nous »).

Nous nous réservons le droit, à notre discrétion, de changer, modifier, ajouter ou supprimer des parties de l’Accord à tout moment en publiant l’Accord modifié sur notre Plateforme ou dans nos Services (par exemple via des avis dans le jeu). En cas de changement important, nous pouvons également fournir un avis supplémentaire en envoyant un e-mail ou un message dans les Services. Sauf indication contraire de notre part, les modifications entrent en vigueur immédiatement après leur publication. Chaque fois que vous accédez à nos Services, à la Plateforme ou à des Jeux de Plateformes tierces, la version alors en vigueur de l’Accord s’applique et vous acceptez que les modifications s’appliquent à votre utilisation continue des Services.

Le fait que vous n’annuliez pas votre compte ou ne cessiez pas d’utiliser nos Services après avoir reçu la notification de l’Accord modifié constituera votre acceptation des conditions modifiées. Si vous n’acceptez pas les modifications ou l’une des conditions du présent Contrat, votre seul recours est de résilier votre compte ou de cesser d’utiliser nos Services.

Si une partie du présent Contrat est jugée illégale ou inapplicable, le reste du Contrat ne sera pas affecté et continuera d’être pleinement valide, contraignant et applicable.

LITIGES

Tous les litiges doivent être réglés par les tribunaux du Royaume-Uni. Le présent contrat doit être interprété conformément aux lois du Royaume-Uni. Toutes les parties consentent par les présentes à la juridiction des tribunaux du Royaume-Uni. Si une partie du présent contrat est jugée inapplicable ou invalide par la loi, les autres parties du contrat resteront en vigueur.

INDEMNITÉ

Vous acceptez de défendre, d’indemniser et de dégager de toute responsabilité Scirra, ses concédants de licence et ses sociétés affiliées de toutes responsabilités, réclamations et dépenses, y compris les honoraires d’avocat, découlant de ou en relation avec la violation du présent Contrat ou l’utilisation de Construct Arcade, par vous ou toute personne utilisant votre Compte, ou de ou en relation avec tout contenu généré par l’utilisateur, ou la création, la distribution, la promotion et l’utilisation de toute œuvre dérivée, créée ou fournie par vous ou toute personne utilisant votre Compte. Scirra se réserve le droit, à ses propres frais, d’assumer la défense et le contrôle exclusifs de toute question autrement sujette à indemnisation de votre part. Dans ce cas, vous n’aurez plus aucune obligation de fournir une indemnisation à Scirra dans cette affaire. Cette section concernant l’indemnisation survivra à la résiliation du présent contrat.

CONTENU GÉNÉRÉ PAR L’UTILISATEUR

Vous serez seul responsable du contenu que vous téléchargez sur l’Arcade et des conséquences de sa publication. Vous affirmez, déclarez et/ou garantissez que pour chaque fichier ou sous-fichier que vous téléchargez sur l’arcade, l’une des conditions suivantes est remplie, permettant le téléchargement, la publication et la distribution sur l’arcade :

  • Vous détenez l’intégralité des droits d’auteur sur ces fichiers
  • Vous avez l’autorisation écrite explicite du détenteur des droits d’auteur autorisant la distribution en vertu du présent Contrat d’utilisation
  • Vous disposez d’une licence permissive du détenteur des droits d’auteur autorisant la distribution en vertu du présent Contrat d’utilisation

Vous accordez par la présente à Scirra Ltd une licence mondiale, non exclusive, libre de droits, sous-licenciable et transférable pour utiliser, reproduire, distribuer, préparer des œuvres dérivées, afficher et exécuter les soumissions d’utilisateur en relation avec le site Web Construct.net et l’activité de Scirra Ltd (et de son successeur), y compris, sans limitation, pour la promotion et la redistribution d’une partie ou de la totalité du site Web Construct.net (et des œuvres dérivées de celui-ci) dans tous les formats de média et par tous les canaux de média. Cette licence que vous avez accordée prend fin une fois que vous avez supprimé votre jeu du site Web Construct.net avec un délai de grâce raisonnable par la suite pour nous permettre de faire de notre mieux pour supprimer tout contenu publié.

Vous accordez par la présente à chaque utilisateur de l’Arcade une licence non exclusive pour accéder à vos soumissions d’utilisateur via le site Web et pour utiliser, reproduire, distribuer, préparer des œuvres dérivées, afficher et exécuter ces soumissions d’utilisateur comme autorisé par la fonctionnalité du site Web et en vertu des présentes conditions d’utilisation. La licence susmentionnée que vous avez accordée prend fin une fois que vous avez supprimé ou effacé une soumission d’utilisateur de l’Arcade.

Vous acceptez de ne pas télécharger de jeux dont le contenu contient :

AGREEMENT

Le présent Accord d’utilisation (« Accord ») est un contrat juridiquement contraignant entre vous et Scirra Ltd. et avec notre société mère, nos filiales et sociétés affiliées (« Scirra », « Construct » ou « nous »).

Nous nous réservons le droit, à notre discrétion, de changer, modifier, ajouter ou supprimer des parties de l’Accord à tout moment en publiant l’Accord modifié sur notre Plateforme ou dans nos Services (par exemple via des avis dans le jeu). En cas de changement important, nous pouvons également fournir un avis supplémentaire en envoyant un e-mail ou un message dans les Services. Sauf indication contraire de notre part, les modifications entrent en vigueur immédiatement après leur publication. Chaque fois que vous accédez à nos Services, à la Plateforme ou à des Jeux de Plateformes tierces, la version alors en vigueur de l’Accord s’applique et vous acceptez que les modifications s’appliquent à votre utilisation continue des Services.

Le fait que vous n’annuliez pas votre compte ou ne cessiez pas d’utiliser nos Services après avoir reçu la notification de l’Accord modifié constituera votre acceptation des conditions modifiées. Si vous n’acceptez pas les modifications ou l’une des conditions du présent Contrat, votre seul recours est de résilier votre compte ou de cesser d’utiliser nos Services.

Si une partie du présent Contrat est jugée illégale ou inapplicable, le reste du Contrat ne sera pas affecté et continuera d’être pleinement valide, contraignant et applicable.

LITIGES

Tous les litiges doivent être réglés par les tribunaux du Royaume-Uni. Le présent contrat doit être interprété conformément aux lois du Royaume-Uni. Toutes les parties consentent par les présentes à la juridiction des tribunaux du Royaume-Uni. Si une partie du présent contrat est jugée inapplicable ou invalide par la loi, les autres parties du contrat resteront en vigueur.

INDEMNITÉ

Vous acceptez de défendre, d’indemniser et de dégager de toute responsabilité Scirra, ses concédants de licence et ses sociétés affiliées de toutes responsabilités, réclamations et dépenses, y compris les honoraires d’avocat, découlant de ou en relation avec la violation du présent Contrat ou l’utilisation de Construct Arcade, par vous ou toute personne utilisant votre Compte, ou de ou en relation avec tout contenu généré par l’utilisateur, ou la création, la distribution, la promotion et l’utilisation de toute œuvre dérivée, créée ou fournie par vous ou toute personne utilisant votre Compte. Scirra se réserve le droit, à ses propres frais, d’assumer la défense et le contrôle exclusifs de toute question autrement sujette à indemnisation de votre part. Dans ce cas, vous n’aurez plus aucune obligation de fournir une indemnisation à Scirra dans cette affaire. Cette section concernant l’indemnisation survivra à la résiliation du présent contrat.

CONTENU GÉNÉRÉ PAR L’UTILISATEUR

Vous serez seul responsable du contenu que vous téléchargez sur l’Arcade et des conséquences de sa publication. Vous affirmez, déclarez et/ou garantissez que pour chaque fichier ou sous-fichier que vous téléchargez sur l’arcade, l’une des conditions suivantes est remplie, permettant le téléchargement, la publication et la distribution sur l’arcade :

  • Vous détenez l’intégralité des droits d’auteur sur ces fichiers
  • Vous avez l’autorisation écrite explicite du détenteur des droits d’auteur autorisant la distribution en vertu du présent Contrat d’utilisation
  • Vous disposez d’une licence permissive du détenteur des droits d’auteur autorisant la distribution en vertu du présent Contrat d’utilisation

Vous accordez par la présente à Scirra Ltd une licence mondiale, non exclusive, libre de droits, sous-licenciable et transférable pour utiliser, reproduire, distribuer, préparer des œuvres dérivées, afficher et exécuter les soumissions d’utilisateur en relation avec le site Web Construct.net et l’activité de Scirra Ltd (et de son successeur), y compris, sans limitation, pour la promotion et la redistribution d’une partie ou de la totalité du site Web Construct.net (et des œuvres dérivées de celui-ci) dans tous les formats de média et par tous les canaux de média. Cette licence que vous avez accordée prend fin une fois que vous avez supprimé votre jeu du site Web Construct.net avec un délai de grâce raisonnable par la suite pour nous permettre de faire de notre mieux pour supprimer tout contenu publié.

Vous accordez par la présente à chaque utilisateur de l’Arcade une licence non exclusive pour accéder à vos soumissions d’utilisateur via le site Web et pour utiliser, reproduire, distribuer, préparer des œuvres dérivées, afficher et exécuter ces soumissions d’utilisateur comme autorisé par la fonctionnalité du site Web et en vertu des présentes conditions d’utilisation. La licence susmentionnée que vous avez accordée prend fin une fois que vous avez supprimé ou effacé une soumission d’utilisateur de l’Arcade.

Vous acceptez de ne pas télécharger de jeux dont le contenu contient :

  • Du contenu diffamatoire, discriminatoire ou mesquin, y compris des références ou des commentaires sur la religion, la race, l’orientation sexuelle, le sexe, l’origine nationale/ethnique ou d’autres groupes ciblés, en particulier si l’application est susceptible d’humilier, d’intimider ou de mettre en danger une personne ou un groupe ciblé. Les satiristes politiques et les humoristes professionnels sont généralement exemptés de cette exigence.
  • Des représentations réalistes de personnes ou d’animaux tués, mutilés, torturés ou maltraités, ou du contenu qui encourage la violence

Notre bibliothèque de jeux :

https://www.construct.net/en/free-online-games/published-games

Publier une nouvelle version de ton jeu

Va sur la bibliothèque Construct de 123codage :

Recherche ton jeu dans la bibliothèque :

Quand tu l’as trouvé clic sur ton jeu :

Choisis dans le menu à gauche Upload New Version :

Puis télécharge un nouveau fichier de ton projet Construct :

Tu peux ainsi contrôler les différentes versions de ton jeu :

Catégories
Non classé ROBLOX

ROBLOX suggestions :

Commentaire d’une ligne :

–print(« instruction en commentaire »)

Commentaire de plusieurs instructions :

–[[
print(« instruction en commentaire »)
print(« instruction en commentaire »)
–]]

Recherche d’une ressource dans un script :

local btOpenMenu = script.Parent.OpenButton

Comment détecter un click de la souris sur un bouton :

btOpenMenu.MouseButton1Click:Connect(function()

end)

Comment déplacer un objet Roblox :

myPart.Position += Vector3.new(10,0,0)

Déplacer un objet x fois :

for i = 1, 50 do
maPart.Position += Vector3.new(5,0,0)
wait(1)
end

Déplacer un objet Roblox tout le temps :

while true do
maPart.Position += Vector3.new(0.05,0,0)
wait(0.01)
end

Déplacer un objet jusqu’à une position :

while maPart.Position.X<60 do
maPart.Position += Vector3.new(5,0,0)
wait(0.01)
end

Synchroniser le déplacement avec le moteur de Roblox :

game:GetService(« RunService »).Heartbeat:Connect(function()
maPart.Position += Vector3.new(0.05,0,0)
end)

Comment détecter une collision du joueur avec un objet Roblox :

maPart.Touched:Connect(function(otherPart)

local character = otherPart.Parent
local player = game:GetService(« Players »):GetPlayerFromCharacter(character)

if player then
local humanoid = character:FindFirstChildWhichIsA(« Humanoid »)

if humanoid then
print(« le joueur touche le part »)
end

end

end)

Comment détecter une fin de collision avec le joueur :

maPart.TouchEnded:Connect(function(otherPart)

local character = otherPart.Parent
local player = game:GetService(« Players »):GetPlayerFromCharacter(character)

if player then
local humanoid = character:FindFirstChildWhichIsA(« Humanoid »)

if humanoid then
print(« le joueur ne touche plus le part »)
end

end

end)

Santé du joueur à 100 au départ du jeu :

print(humanoid.Health)

Réduire la santé du joueur :

humanoid.Health = humanoid.Health – 5
ou
humanoid:TakeDamage((5))

Le joueur meurt quand sa santé est à zéro :

humanoid.Health = 0

Comment coder un ClickDetector sur le part :

local clickDetector = script.Parent.ClickDetector

clickDetector.MouseClick:Connect(function()
print(« touché »)
end)

Comment coder un Prompt :

maPart.ProximityPrompt.Triggered:Connect(function(otherPart)
print(‘activé’)
end)

Catégories
Construct 3 Jeu vidéo

Effet Particules


Effet particules quand le joueur saute sur une plateforme

Sur la scène « insérer un nouvel objet » particules :

Dessiner une forme géométrique simple de dimensions 8×8 pixels avec une couleur avec une transparence de 150 :

Positionne la particule en dehors de la scène :

Puis modifie les paramètres de l’objet particules :

Puis modifie la table de décision :


Flot de sang

Crée une nouvelle particule rouge sang :

Puis modifie ces propriétés :

Puis modifie la table d’événement pour rajouter l’effet particule sang quand le monstre meurt :


Feu d’artifice

Crée une nouvelle particule :

avec une taille d’image de 250×250 pixels :

Puis modifie les propriétés :

Rajoute le feu d’artifice dans la table d’évènement à un moment clé, par exemple lorsque le joueur change de niveau.

Catégories
Non classé

Renommer scène par niveau01

Modifier les paramètres du niveau01 dans Scènes

Clic droit de la souris sur la scène :

Sur l’onglet Niveau01 demande par le clic droit Insérer un nouvel objet puis choisis Clavier puis Toucher :

Ton joueur marche, attend, saute, chute. Mais tu constates quand to joueur marche, il ne va que dans un sens vers la droite mais ne se retourne pas vers la gauche. Tu vas récupérer les touches du clavier pour indiquer le sens de la marche.

Puis choisis Lors de la pression d’une touche :

Puis appuis sur la touche de ton clavier pour indiquer la direction gauche :

Dans action tu vas inverser l’image :

Dans la paragraphe Apparence, tu choisis de Définir la symétrie horizontale :

Catégories
MBOT

Organisation pour notre participation 2025 à Robocup junior

Introduction

Dans le cadre de notre participation à la RoboCup Junior, notre association a organisé la conception et la programmation de robots adaptés pour la compétition. Ce rapport détaille notre organisation, les rôles de chacun, et les étapes de notre travail pour préparer la compétition.

Présentation des Équipes

Notre association présente 7 équipes composées d’enfants âgés de 8 à 16 ans. Les équipes sont organisées en fonction de l’âge et des compétences des participants :

  • Les plus jeunes (8-14 ans) travaillent sur une base de robot MBOT avec une programmation en mode block. Les moins expérimentés optent pour RESCUE LINE ENTRY, les plus expérimentés pour RESCUE LINE.
  • L’équipe des plus grands (14-16 ans) choisissent de réaliser leur propre robot en utilisant le langage Python pour la RESCUE LINE.

Répartition des Tâches

Travail des Plus Jeunes

Les moins expérimentés se sont concentrés sur la programmation en mode block, ce qui leur a permis de comprendre les bases de la programmation et de la robotique. Ils ont travaillé sur des tâches simples mais essentielles, comme le déplacement du robot, la détection de couleurs et le suivi de ligne. Ils sont utilisés différents robots au plus simple jusqu’au MBOT :

Un robot avec deux capteurs de suivi de ligne :

Puis un robot avec cinq capteurs de suivi de ligne

Travail des plus expérimentés

Les plus expérimentés ont pris en charge la compréhension des problématiques techniques et l’élaboration de solutions pour la conception des robots. Ils ont travaillé sur des aspects plus complexes, comme la gestion du capteur de ligne, l’équilibrage du robot et l’optimisation globale des performances du robot en fonction des exigences du parcours pour la compétition de la Robocup junior.

Collaboration et Tests

Travail en Commun entre les différentes équipes

Bien que les plus grands aient été principalement responsables de la conception technique, un travail en commun a été essentiel. Les solutions techniques élaborées par les plus grands ont été testées par tous les membres des équipes. Cela a permis de valider les solutions et de faire des choix éclairés sur les meilleures options à adopter.

Tests et Validation

Nous avons organisé des sessions de tests régulières où chaque équipe pouvait tester les solutions proposées. Les retours des plus jeunes ont été précieux pour ajuster et améliorer les solutions techniques. Cette collaboration a permis de s’assurer que les robots étaient performants et prêts pour la compétition.