Page 2 sur 2 • 1, 2
- ExalightHeroes never die
-
Messages : 11441
Re: Skyline Generator - Layer & Sun update, Jeu 20 Mai 2021 - 13:50
Bon boulot !
J'ai un peu regardé ton code
Quelques retours pour t'améliorer
variable = condition ? true : false;
==>
seed = seedBox.value.length > 10 ? seedBox.value.substr(0,15) : seedBox.value;
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
Fais un switch(type) au lieu de if..else..if.else....
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Statements/switch
Si tu veux savoir si sky existe, tu fais
if (height%5<2 && height> 150)....
J'ai un peu regardé ton code
Quelques retours pour t'améliorer
- Code:
if (seedBox.value.length >10){
seedBox.value=seedBox.value.substr(0,15);
}
seed=seedBox.value;
variable = condition ? true : false;
==>
seed = seedBox.value.length > 10 ? seedBox.value.substr(0,15) : seedBox.value;
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
- Code:
function drawBuilding(height,width,initX,color,ctx,top){
drawRectangle(ctx,initX,450,width,-height,color);
//Dessin des toitures
if (top=="ronde"){
drawRoundRoof(ctx,initX,height,width);
}
else if (top=="triangle"){
x=[initX,initX+width/2,initX+width];
y=[451-height,451-height-(1/width*450),451-height];
drawPolygone(ctx,x,y,color)
}
else if (top=="mix"){
if (height%5<2){ //Toiture plate
if (height>150){ //Ajout d'une antenne
drawRectangle(ctx,initX+(width/2)-1,451-height,2,-1/width*450,color);
}
}
else if (height%5<4){
x=[initX,initX+width/2,initX+width];
y=[451-height,451-height-(1/width*450),451-height];
drawPolygone(ctx,x,y,color)
}
else if (height<200 && height%2<1){
drawRoundRoof(ctx,initX,height,width);
}
else if (height<200 && height%2<2){
x=[initX,initX+width/6,initX+width/2,initX+width/6*5,initX+width];
y=[451-height,451-height-(1/width*300),451-height-(1/width*450),451-height-(1/width*300),451-height];
drawPolygone(ctx,x,y,color);
}
}
else if (top=="plate"){
if (height%5<2){ //Toiture plate
if (height>150){ //Ajout d'une antenne
drawRectangle(ctx,initX+(width/2)-1,451-height,2,-1/width*450,color);
}
}
}
else if (top=="paris"){
x=[initX,initX+width/6,initX+width/2,initX+width/6*5,initX+width];
y=[451-height,451-height-(1/width*300),451-height-(1/width*450),451-height-(1/width*300),451-height];
drawPolygone(ctx,x,y,color);
}
}
Fais un switch(type) au lieu de if..else..if.else....
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Statements/switch
- Code:
seed.length==1
- Code:
if(sky=="none")
Si tu veux savoir si sky existe, tu fais
- Code:
if (sky)..
- Code:
if(!sky)...
- Code:
if (height%5<2){ //Toiture plate
if (height>150){ //Ajout d'une antenne
if (height%5<2 && height> 150)....
Toi là ! Oui, toi Invité ! Tu as posté 107 messages sur ce forum, mais arrête de flooder, viens sur la Chatbox !
●2006 - 2018●
Re: Skyline Generator - Layer & Sun update, Jeu 20 Mai 2021 - 15:34
Salut Exa ! Merci beaucoup pour ces suggestions d'amélioration !!
J'avoue que je n'avais pas pensé au switch case ... je sais que ça existe mais ça m'est pas revenu sur le coup (j'ai plus l'habitude de développé sur python ou ça n'existe pas et où il faut enchainer les if, elif, ..., else.
Pareil pour les raccourcis sur les if ^^
Merci beaucoup en tous, je pense que je vais pouvoir gagner un peu en clarté
J'avoue que je n'avais pas pensé au switch case ... je sais que ça existe mais ça m'est pas revenu sur le coup (j'ai plus l'habitude de développé sur python ou ça n'existe pas et où il faut enchainer les if, elif, ..., else.
Pareil pour les raccourcis sur les if ^^
Merci beaucoup en tous, je pense que je vais pouvoir gagner un peu en clarté
Re: Skyline Generator - Layer & Sun update, Dim 27 Nov 2022 - 11:38
Une petite vidéo sur Skyline Generator !
- galyieMembre Émérite
-
Messages : 3167
Re: Skyline Generator - Layer & Sun update, Dim 27 Nov 2022 - 15:12
Mine de rien je trouve cela inspirant quand on crée une ville de pouvoir imiter ces skylines.
Elysa Swan Margaret Ière, Impératrice de l'Empire Carnackien
Page 2 sur 2 • 1, 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum