vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023
-
12 juil. 2018 à 12:47
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023
-
12 juil. 2018 à 19:12
Bonjour
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;
namespace Rubikcube
{
public partial class Game : Form
{
ClassRubikCube rubikCube = new ClassRubikCube();
ClassPoint3D cameraPosition = new ClassPoint3D(-1, 90, 90, 140);
ClassAngles angles = new ClassAngles(0, 0, 0);
ClassPoint3D viewer = new ClassPoint3D(-1, 0, 0, 500);
int xcoor = 400;
int ycoor = 100;
public Game()
{
InitializeComponent();
}
private void Game_Paint(object sender, PaintEventArgs e)
{
PointF pt = new PointF(323,323);
e.Graphics.TranslateTransform(xcoor, ycoor);
rubikCube.DrawRubicube(e.Graphics, cameraPosition, angles, viewer);
e.Graphics.ResetTransform();
}
Ce code fonctionne très bien pour afficher sur ma Form un rubix's cube à son état initial .
C'est l'évènement Game_Paint qui se charge de l'afficher au démarrage du projet sur la Form elle-même
Maintenant je cherche à programmer un Bouton Reset qui remettrait le Rubix's Cube dans son état initial une fois que les manipulations ou un mélange ont été fait si on veut revenir au début du jeu ( ces manipulations sont fonctionnelles pour faire tourner les faces et le mélange me donne un Rubix's Cube mélangé )
Mais comment revenir à l'état initial du Rubix's cube ?
Je suis conscient qu'il faut réinitialiser les 4 objets rubiCube, cameraPosition, angles et viewer mais comment faire pour que ce même bouton Reset déclenche l'évènement Game_Paint pour afficher le Rubix's Cube initial
Cela me souligne en rouge PaintEventArgs()
Il faut un paramètre de type Graphics ( je peux mettre le g de 'évènement Game_Paint )mais je mets quoi pour le paramètre Rectangle : le paramètre Rectangle doit être le rectangle de la form Game je suppose
Merci
Là je vais faire des courses : je m'y remettrais plus tard
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 12 juil. 2018 à 15:33
Au temps pour moi tu te sers de e.....
Faut que j'essaye
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 12 juil. 2018 à 17:16
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165
>
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023 Modifié le 12 juil. 2018 à 19:14
bonsoir Whis
Je suis partie sur une autre voie en mettant le dessin du rubix's cube dans une PictureBox et en gérant un Bitmap de celle-ci .
Cela me permet de gérer les mouvements ainsi que le mélange et la réinitialisation du Rubix's cube .
Voici le code
public partial class Game : Form
{
ClassRubikCube rubikCube;
ClassPoint3D cameraPosition;
ClassAngles angles;
ClassPoint3D viewer;
Bitmap MyBitmap;
Graphics g;
int xcoor = -180;
int ycoor = -180;
public Game()
{
InitializeComponent();
}
private void Game_Load(object sender, EventArgs e)
{
InitialiseRubicube();
}
// On remet le rubix's cube dans son état initial
private void RESET_Click(object sender, EventArgs e)
{
InitialiseRubicube();
}
private void InitialiseRubicube()
{
rubikCube = new ClassRubikCube();
cameraPosition = new ClassPoint3D(-1, 90, 90, 140);
angles = new ClassAngles(0, 0, 0);
viewer = new ClassPoint3D(-1, 0, 0, 500);
MyBitmap = new Bitmap(GameRubicube.Width, GameRubicube.Height);
g = Graphics.FromImage(MyBitmap);
PointF pt = new PointF(GameRubicube.Width / 2, GameRubicube.Height / 2);
g.TranslateTransform(xcoor, ycoor);
rubikCube.DrawRubicube(g, cameraPosition, angles, viewer);
g.ResetTransform();
GameRubicube.Image = MyBitmap;
}
}
Je n'ai pas mis le code permettant le mélange ainsi que les différents mouvements car cela serait trop long .
Tout marche à la perfection là !
C'est ton This.Refresh() qui m'a donné l'idée car j'avais déjà utilisé ce principe pour les cases du Scrabble que j'ai fait en VB Net
Merci pour tout Whis !
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 12 juil. 2018 à 19:12
12 juil. 2018 à 14:12
Cela me souligne en rouge PaintEventArgs()
Il faut un paramètre de type Graphics ( je peux mettre le g de 'évènement Game_Paint )mais je mets quoi pour le paramètre Rectangle : le paramètre Rectangle doit être le rectangle de la form Game je suppose
Merci
Là je vais faire des courses : je m'y remettrais plus tard
12 juil. 2018 à 15:33
Faut que j'essaye
12 juil. 2018 à 17:16
force le formulaire à se redessiner
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.refresh(v=vs.110).aspx
Modifié le 12 juil. 2018 à 19:14
Je suis partie sur une autre voie en mettant le dessin du rubix's cube dans une PictureBox et en gérant un Bitmap de celle-ci .
Cela me permet de gérer les mouvements ainsi que le mélange et la réinitialisation du Rubix's cube .
Voici le code
Je n'ai pas mis le code permettant le mélange ainsi que les différents mouvements car cela serait trop long .
Tout marche à la perfection là !
C'est ton This.Refresh() qui m'a donné l'idée car j'avais déjà utilisé ce principe pour les cases du Scrabble que j'ai fait en VB Net
Merci pour tout Whis !
12 juil. 2018 à 19:12