Aller à la page 1 2 3 4 5 6
Reprise du message précédent:
Tassle -
posté le 28/11/2021 à 12:16:46 (5234 messages postés)
| Disciple de Pythagolf | Non on est pas d'accord ^^
Je crois qu'il y a confusion sur ce qu'est A. A est juste un nombre que tu remplaces par ce que tu veux (ici 121). De même que B (qui pour toi doit valoir 141).
Je t'ai fait les changements pour que t'y vois plus clair:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| [/code][code]
i: =1
Label 1
[condition] Si i < N:
t: = 121
t: + i
x: = variable pointée par t
t: = 141
t: + x
y: = variable pointée par t
j: = i
Label 2
j: - 1
[condition] Si j >= 0:
t: = 121
t: + j
t: = variable pointée par t
t: + 141
t: = variable pointée par t
[condition] Si t > y:
j: + 121
t: = j
t: + 1
variable pointée par t: = variable pointée par j
j: - 121
Saut vers label 2
[fin condition]
[fin condition]
j: + 1
j: + 121
variable pointée par j: = x
i: + 1
Saut vers label 1
[fin condition]
|
Et comme tu disais au début du jeu tu initialises la variable d'id 0121 à 0, celle d'id 0122 à 1, et ainsi de suite jusqu'à la variable d'id 140.
Et tu stockes tout le temps la distance de l'ile numero 0 dans la variable d'id 141, la distance de l'ile numero 1 dans la variable d'id 142, etc.
|
~~ | Suite du sujet:
| The Inconstant Gardener | Citation: A est juste un nombre que tu remplaces par ce que tu veux (ici 121). De même que B (qui pour toi doit valoir 141). |
Haaan. En fait quand tu disais "A" et "B" tu voulais dire "ID de A" et de "ID de B" c'est ça ?
Bon je vais essayer, je te tiens au courant !
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Tassle -
posté le 28/11/2021 à 17:14:45 (5234 messages postés)
| Disciple de Pythagolf | Nan je voulais dire "le nombre A" et "le nombre B", dans ma tête A et B n'ont jamais été des variables de RM ^^ (la variable d'id A = la variable d'id 0121)
C'est juste que je savais pas que dans ton cas ces nombres allaient être 121 et 141, donc je les ai appelés A et B (et le nombre d'iles je l'ai appelé N). Mais je vois comment tu as pu croire que c'était des variables RM, dans la vie de tous les jours c'est pas forcément commun de donner un nom à un nombre dont tu connais pas la valeur (déformation professionnelle ).
|
~~ |
| The Inconstant Gardener | ÇA MAAARCHE !! Ça marche sa mère !! *bisou virtuel à Tassle*
Edit : je ne suis pas sûr de comprendre : tu dis que 121 n'est pas une ID mais un nombre, mais j'ai demandé à Johnny, et Johnny a l'ID. Non plus sérieusement : en fait, notre malentendu ne vient-il pas simplement du fait que ce que j'appelle ID tu l'appeles numéro/nombre ?
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Tassle -
posté le 28/11/2021 à 17:53:32 (5234 messages postés)
| Disciple de Pythagolf | Yay \o/
Peut-être oui, j'ai pensé ça aussi:
Moi a dit: Ah je t'ai peut-être confus en parlant de numéro de variable plutôt que d'id, déso. |
Mais tant mieux si maintenant tout marche bien
|
~~ |
| The Inconstant Gardener | Bon, maintenant il faut que j'attribue à chaque île sa place dans le classement. En gros, là j'ai les variables dans le bon ordre, moi je veux l'inverse : les variables dans l'ordre des îles (ordre arbitraire) et la place dans le classement (en fonction de la distance) dans chaque variable.
J'ai une idée pour obtenir ça, je vais voir...
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
| The Inconstant Gardener | Olalaz, j'ai réussi à créer ça (voir le post ci-dessus) en quelques lignes via un commun event et un pointage de variable etoo ! Et sans l'aide de Tassle ! Je sui tro for !
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Zam -
posté le 29/11/2021 à 01:23:04 (5514 messages postés)
- - | | J'ai des flashback de Polaris 03, et je m'énerve de nouveau.
|
| The Inconstant Gardener | Roh.
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Tassle -
posté le 29/11/2021 à 18:19:17 (5234 messages postés)
| Disciple de Pythagolf | Du coup je me suis chauffé pour coder des algos de tri plus rapides
J'ai toujours pas RM (et pas moyen de l'installer simplement sur Mac) donc j'ai toujours rien testé.
Quicksort:
Spoiler (cliquez pour afficher)
s,t,u,v,x,y,i,j,first,last et pivot sont des variables RM
N est le nombre d'objet à trier.
A et B sont des id de variables définis comme précédemment.
Q est une id de variable. L'algorithme utilise les variables d'id Q, Q+1, Q+2, ..., Q+2xN. Donc il faut être sur que modifier ces variables ne va rien casser pour les autres events. On peut par exemple mettre Q à 6000 ou un truc du genre, vu qu'on a peu tendance a utiliser des variables avec des id aussi grand (si j'ai bien compris on ne peut accéder à ces variables que par pointage par d'autres variables, pas directement)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
| s: = Q
variable pointée par s: = 0
s: + 1
t: = N
t: - 1
variable pointée par s: = t
s: + 1
Label A
[condition] Si s>0:
s: -1
last: = variable pointée par s
s: -1
first: = variable pointée par s
[condition] Si first < last:
pivot: = valeur aléatoire entre first et last
t: = A
t: + pivot
x: = variable pointée par t
y: = A
y: + last
variable pointée par t: = variable pointée par y
variable pointée par y: = x
j: = first
i: = first
Label B
[condition] Si i < last:
t: = A
t: + i
x: = variable pointée par t
y: = A
y: + last
y: = variable pointée par y
u: = B
u: + x
u: = variable pointée par u
v: = B
v: + y
v: = variable pointée par v
[condition] si u < v:
Saut vers LabelC
[fin condition]
[condition] si u == v:
[condition] si x < y:
Saut vers LabelC
[fin condition]
[fin condition]
Saut vers Label D
Label C
y: = A
y: + j
variable pointée par t = variable pointée par y
variable pointée par y: = x
j += 1
Label D
i: + 1
Saut vers Label B
[fin condition]
t: = A
t: + j
x: = variable pointée par t
y: = A
y: + last
variable pointée par t: = variable pointée par y
variable pointée par y: = x
pivot: = j
variable pointée par s: = first
s: + 1
variable pointée par s: = pivot-1
s: + 1
variable pointée par s: = pivot+1
s: + 1
variable pointée par s: = last
s: + 1
[fin condition]
Saut vers Label A
[fin condition] |
Un hybride Quicksort/Insertion Sort (normalement encore plus rapide, voir commentaire plus bas):
Spoiler (cliquez pour afficher)
s,t,u,v,x,y,i,j,first,last et pivot sont des variables RM
N est le nombre d'objet à trier.
A et B sont des id de variables définis comme précédemment.
Q est une id de variable. L'algorithme utilise les variables d'id Q, Q+1, Q+2, ..., Q+2xN. Donc il faut être sur que modifier ces variables ne va rien casser pour les autres events. On peut par exemple mettre Q à 6000 ou un truc du genre, vu qu'on a peu tendance a utiliser des variables avec des id aussi grand (si j'ai bien compris on ne peut accéder à ces variables que par pointage par d'autres variables, pas directement)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
| s: = Q
variable pointée par s: = 0
s: + 1
t: = N
t: - 1
variable pointée par s: = t
s: + 1
Label A
[condition] Si s>0:
s: -1
last: = variable pointée par s
s: -1
first: = variable pointée par s
first: + 9
[condition] Si first < last:
first: - 9
pivot: = valeur aléatoire entre first et last
t: = A
t: + pivot
x: = variable pointée par t
y: = A
y: + last
variable pointée par t: = variable pointée par y
variable pointée par y: = x
j: = first
i: = first
Label B
[condition] Si i < last:
t: = A
t: + i
x: = variable pointée par t
y: = A
y: + last
y: = variable pointée par y
u: = B
u: + x
u: = variable pointée par u
v: = B
v: + y
v: = variable pointée par v
[condition] si u < v:
Saut vers LabelC
[fin condition]
[condition] si u == v:
[condition] si x < y:
Saut vers LabelC
[fin condition]
[fin condition]
Saut vers Label D
Label C
y: = A
y: + j
variable pointée par t = variable pointée par y
variable pointée par y: = x
j += 1
Label D
i: + 1
Saut vers Label B
[fin condition]
t: = A
t: + j
x: = variable pointée par t
y: = A
y: + last
variable pointée par t: = variable pointée par y
variable pointée par y: = x
pivot: = j
variable pointée par s: = first
s: + 1
variable pointée par s: = pivot-1
s: + 1
variable pointée par s: = pivot+1
s: + 1
variable pointée par s: = last
s: + 1
[fin condition]
Saut vers Label A
[fin condition]
i: =1
Label 1
[condition] Si i < N:
t: = A
t: + i
x: = variable pointée par t
t: = B
t: + x
y: = variable pointée par t
j: = i
Label 2
j: - 1
[condition] Si j >= 0:
t: = A
t: + j
t: = variable pointée par t
t: + B
t: = variable pointée par t
[condition] Si t > y:
j: + A
t: = j
t: + 1
variable pointée par t: = variable pointée par j
j: - A
Saut vers label 2
[fin condition]
[fin condition]
j: + 1
j: + A
variable pointée par j: = x
i: + 1
Saut vers label 1
[fin condition] |
Dans ce code hybride je fait à un moment "first: + 9" puis plus loin "first: - 9". Ce nombre 9 peut influencer la vitesse du tri, mais la bonne valeur ne peut pas vraiment être déterminé théoriquement, faut des tests empiriques. Si vous implémentez ce code vous pouvez tester avec différentes valeurs (disons entre 5 et 20) pour voir ce qui est le plus rapide sur RM.
J'ai fait en sorte que ces tris soient également stables (l'ordre relatifs d'objets de même valeur n'est pas modifié).
Pour ton cas Nemau le code que tu as devrait être plus rapide que ces variantes plus compliquées (surtout si l'ordre n'est pas constamment chamboulé). Ces codes deviennent plus efficaces pour des grands nombres d'objets à trier. Je dirais qu'on peut envisager de changer d'algo autour d'une quarantaine/cinquantaine d'objets à trier (un peu au pif). Si on a plusieurs centaines de trucs à trier là c'est sûr que ça vaut le coup (sauf si les objets sont déjà presque triés, là il n'y aura pas beaucoup de diff).
|
~~ |
| The Inconstant Gardener | Citation: Pour ton cas Nemau le code que tu as devrait être plus rapide |
Ouf, parce que je te t'avoue que je n'avais pas trop le courage de me replonger dans cette partie. x) Et que ça m'aurait frustré de savoir qu'une meilleure solution existe et qu'elle est à portée de main. ^^
GG en tout cas. Et encore merci.
De mon côté, j'ai a priori enfin terminé l'étape 2 (afficher correctement les îles en fonction de la position et de l'orientation du bateau). J'ai fait un dernier micro changement, pour que les îles soient toujours au centre de l'écran (= orientation du bateau) si on est pile dessus, jusque-là elle était toujours affichée au nord (= angle 0).
Donc :
1. Placer un bateau dans une map virtuelle, le faire tourner sur 360° et enregistrer l'angle dans une variable
2. Afficher correctement les îles en fonction de la position et de l'orientation du bateau
3. Permettre au bateau de se déplacer
*cris* *pleurs*
Non en vrai pour le moment je ne suis pas bloqué, je vois à peu près comment je dois procéder. Bon par contre ça sera du déplacement en 8 directions au pire, 16 directions au mieux. Vu que je me déplace sur une grille virtuelle en 240*240. Sauf si Tassle ( xD) quelqu'un a une idée formidable pour concilier déplacement à orientation libre et grille virtuelle sur laquelle sont posés le bateau et les îles. En fait je pense que c'est faisable, mais ce serait très très complexe, et franchement si j'arrive à faire un déplacement sur 16 directions (nord, nord-nord-ouest, nord-ouest etc.) ça rendra déjà très bien. ^^
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Tassle -
posté le 30/11/2021 à 08:46:55 (5234 messages postés)
| Disciple de Pythagolf | Citation: Tassle ( xD)
|
Au rapport
Je pense pas que ça soit compliqué de faire un déplacement à 360 degrés. L'idée c'est de faire se déplacer le bateau sur une grille virtuelle plus fine (comme dans Super Mario Bros où les coordonnées sont stockées à une échelle plus petite que le pixel).
En gros, supposons qu'on travaille sur une grille virtuelle de 240 000 * 240 000 et une grille "réelle" de 240*240.
Notons t l'angle en degrés que la direction du bateau fait depuis l'axe qui pointe vers l'est, dans le sens inverse des aiguilles d'une montre. Notons x_v et y_v les coordonnées du bateau sur la grille virtuelle et x, y les coordonnées réelles. Notons D la distance que tu veux que le bateau parcours sur la grille virtuelle en un "pas".
Quand tu veux faire un pas en avant, tu commences par utiliser le tuto d'Anton pour calculer les valeurs c = 1000*cos(t) et s = 1000*sin(t). Puis tu mets à jour les coordonnées virtuelles en faisant:
x_v = x_v + (D*c/1000)
y_v = y_v + (D*s/1000)
Puis tu mets à jour les coordonnées réelles en faisant:
x = x_v / 1000
y = y_v / 1000
(là j'ai supposé que l'axe des x pointe vers la droite et l'axe des y vers le haut, faudra changer quelques signes si c'est pas le cas chez toi)
Un autre truc:
Citation: À noter que mon code est blindé de commentaires et que mon projet sera librement copiable et modifiable par qui veut, donc ceux qui veulent pousser le truc plus loin pourront le faire. :3 |
Apparemment l’interpréteur des events RM est un peu con et il lit tous les commentaires. Ça veut dire que chaque commentaire coute à peu près autant en temps qu'une vraie commande. Donc si ça ram, supprimer tous les commentaires peut être une solution.
|
~~ |
| The Inconstant Gardener | Alors. Tout d'abord, merci. ^^ Le tuto d'Anton a l'air très bien fait, mais il est un peu compliqué pour moi (par exemple on m'avait expliqué ce que signifie le symbole ^ mais j'ai déjà oublié). Mais dans le dernier commentaire il donne le code exact à recopier dans RM, alors je vais peut-être tenter le coup.
Citation: Notons t l'angle en degrés que la direction du bateau fait depuis l'axe qui pointe vers l'est, dans le sens inverse des aiguilles d'une montre. |
Chez moi la direction du bateau est noté à partir du nord (angle 0) puis dans le sens des aiguilles d'une montre jusqu'à l'angle 358 (les angles impairs n'existent pas, le bateau pivote de 2 en 2 sinon il tournait trop lentement). Est-ce que ça a des répercussions par rapport au code d'Anton et/ou au tien ?
Citation: (là j'ai supposé que l'axe des x pointe vers la droite et l'axe des y vers le haut, faudra changer quelques signes si c'est pas le cas chez toi) |
L'axe des y pointe vers le bas, ça change quoi du coup ?
Citation: Apparemment l’interpréteur des events RM est un peu con et il lit tous les commentaires. Ça veut dire que chaque commentaire coute à peu près autant en temps qu'une vraie commande. Donc si ça ram, supprimer tous les commentaires peut être une solution. |
Oki, c'est bon à savoir. Du coup à la fin je proposerai aux joueurs une version sans les commentaires et aux éventuels curieux une version avec commentaires.
Edit : est-ce que le système que tu me proposes compense le fait que plus le bateau se déplace en "diagonale" (sur la map virtuelle) plus sa vitesse de déplacement (d'un point à un autre) se rapproche de 1,414 fois celle obtenue lors d'un déplacement sur l'axe Nord-Sud ou Ouest-Est ?
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Tassle -
posté le 30/11/2021 à 10:19:56 (5234 messages postés)
| Disciple de Pythagolf | Citation: Chez moi la direction du bateau est noté à partir du nord (angle 0) puis dans le sens des aiguilles d'une montre jusqu'à l'angle 358 (les angles impairs n'existent pas, le bateau pivote de 2 en 2 sinon il tournait trop lentement). Est-ce que ça a des répercussions par rapport au code d'Anton et/ou au tien ? |
Il suffit d'ajuster dans ce cas. Si ton angle est A, mon angle c'est t = 90-A (pas de souci ci c'est négatif, le code d'Anton fonctionnera tout bien comme il faut si tu remplaces la variable qu'il appelle "Angle" par t).
Citation: L'axe des y pointe vers le bas, ça change quoi du coup ? |
Remplace y_v = y_v + (D*s/1000) par y_v = y_v - (D*s/1000).
Citation: est-ce que le système que tu me proposes compense le fait que plus le bateau se déplace en "diagonale" (sur la map virtuelle) plus sa vitesse de déplacement (d'un point à un autre) se rapproche de 1,414 fois celle obtenue lors d'un déplacement sur l'axe Nord-Sud ou Ouest-Est ? |
Yep, à erreur d'arrondie près (c'est pour ça qu'on travaille sur une grosse grille virtuelle, pour que les erreurs d'arrondie se voient pas).
En gros imaginons que 1 pas vers l'est correspond à augmenter la coordonnée x réelle de 2 (donc +2000 pour la coordonnée virtuelle). Alors si tu te déplaces en diagonale, le bateau va de temps en temps avancer de 2 en diagonale et de temps en temps de 1, pour compenser le fait que la distance en diagonale est plus grande (si tu te déplaces de 1 en diagonale tu parcours une distance de 1.4142, si t'avances de 2 tu parcours une distance de 2.8284, donc si tu fais de temps en temps l'un et de temps en temps l'autre tu peux te débrouiller pour en moyenne avancer d'une distance d'environ 2, et c'est ce que cette méthode fera).
Exemple: Si tu commences à (0,0) et que tu fais 10 pas vers le sud-est à une vitesse de 2 carreaux par pas, les coordonnées successives avec cette méthode seront:
(0, 0)
(1, 1)
(2, 2)
(4, 4)
(5, 5)
(7, 7)
(8, 8)
(9, 9)
(11, 11)
(12, 12)
(14, 14)
Au final on a parcouru une distance totale de racine(14*14 + 14*14) = 19.8 (comparé à une distance de 20 si on avait avancé droit vers le sud). Parfois la distance totale sera un peu au dessus, parfois un peu en dessous, mais globalement de manière négligeable.
Edit:
À noter que ce qu'Anton appelle outputCos et outputSin c'est déjà ce que j'appelle c et s (c'est à dire cos(t)*1000 et sin(t)*1000), pas besoin de multiplier par 1000.
|
~~ |
| The Inconstant Gardener | Merci beaucoup.
Malheureusement, et pour plusieurs raisons (notamment un niveau de nooberie élevé de ma part) je vais opter pour un système de déplacement en 8 directions. (oui, ce ne sera même pas 16 finalement)
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Tassle -
posté le 01/12/2021 à 18:33:21 (5234 messages postés)
| Disciple de Pythagolf | Ma déception est immense (nan tkt, tu fais ce que tu veux)
Mais du coup je suis curieux, t'utilises quelle formule pour savoir où placer une ile sur l'écran sans calculer de sinus ?
|
~~ |
| The Inconstant Gardener | Bin la tienne, cf. les premières pages de ce topic. ^^ Tu te souviens, quand je t'ai demandé comment calculer un angle à partir de coordonnées ?
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Tassle -
posté le 02/12/2021 à 08:23:07 (5234 messages postés)
| Disciple de Pythagolf | Oui oui ça je me souviens Mais après tu fais quoi avec cet angle ?
Parce que normalement la position de l'île sur l'écran (par rapport au centre) est proportionnelle au sinus de l'angle que t'as calculé.
|
~~ |
Sylvanor -
posté le 02/12/2021 à 13:03:33 (24592 messages postés)
- - | Le gars chiant qui rigole jamais (il paraît) | On veut des screens! On veut des gifs!
|
Les croissants croâssent en croix, s'ancrent ou à cent croîssent sans crocs à sang. Crois! Sens! ౡ |
| The Inconstant Gardener | Là c'est en mini-pause, mais promis dès que j'ai du neuf je vous montre !
Tassle : je t'explique ça ce soir ou demain (suis pas chez moi et j'ai pas trop le temps tout de suite ^^). Mais y a rien de très compliqué. C'est juste que le rendu que j'obtiens n'est pas très réaliste.
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Tassle -
posté le 03/12/2021 à 15:47:51 (5234 messages postés)
| Disciple de Pythagolf | J'ai encore amélioré la formule pour trouver l'angle (ton problème original)
La nouvelle formule est:
(x*(45*y+31*(y-x)/2)+y*y/2)/(y*y)
Ça donne une garantie d'erreur de 0.749 pour pour des valeurs 0 <= x <= y <= 939 (et y différent de 0).
De manière plus générale, pour ceux qui veulent calculer atan2(y,x) (en degrés) pour des valeurs de y et x allant de -9 999 999 à 9 999 999 vous pouvez utiliser une des deux méthodes suivantes:
Méthode 1:
Spoiler (cliquez pour afficher)
Garantie d'erreur de 0.783 (je crois) et 0.749 pour des valeurs de x et de y entre -939 et 939 (ça j'en suis sûr).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
y: = y_entree
x: = x_entree
IF y < 0:
y: * -1
END IF
IF x < 0:
x: * -1
END IF
s = 0
IF x < y:
s: = x
x: = y
y: = s
s: = 1
END IF
IF x = 0:
ANGLE = 0
Jump to Label 2
END IF
a: = x
a: + 938
a: / 939
b: = a
b: / 2
x: + b
y: + b
x: / a
y: / a
ANGLE: = x
ANGLE: - y
ANGLE: * 31
ANGLE: / 2
x: * 45
ANGLE: + x
x: / 45
ANGLE: * y
x: * x
a: x
a: / 2
ANGLE: + a
ANGLE: / x
IF s > 0:
ANGLE: * -1
ANGLE: + 90
END IF
IF x_entree < 0:
ANGLE: * -1
ANGLE: + 180
END IF
IF y_entree < 0:
ANGLE: * -1
END IF
Label 2
|
Si vous êtes sûr que les valeurs de x et y sont toujours entre -939 et 939 vous pouvez supprimer les lignes suivantes:
1
2
3
4
5
6
7
8
9
10
11
|
a: = x
a: + 938
a: / 939
b: = a
b: / 2
x: + b
y: + b
x: / a
y: / a
|
Méthode 2:
Spoiler (cliquez pour afficher)
Garantie d'erreur de 0.595 (je crois). En tout cas pour des valeurs de x et de y entre -22503 et 22503 j'en suis sûr.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
y: = y_entree
x: = x_entree
IF y < 0:
y: * -1
END IF
IF x < 0:
x: * -1
END IF
s = 0
IF x < y:
s: = x
x: = y
y: = s
s: = 1
END IF
IF x = 0:
ANGLE = 0
Jump to Label 3
END IF
a: = x
a: + 22502
a: / 22503
x: / a
y: / a
a: = y
a: * 2
a: / x
IF a = 0:
a: = y
a: * 33
a: / 2
a: / x
IF a = 0:
a: = 57
b: = 0
c: = 1
Jump to Label 2
END IF
a: = y
a: * 31
a: / 10
a: / x
IF a = 0:
a: = 220
b: = 1
c: = 4
Jump to Label 2
END IF
a: = 294
b: = 13
c: = 6
Jump to Label 2
ELSE:
a: = y
a: * 35
a: / 23
a: / x
IF a = 0:
a: = 308
b: = 32
c: = 7
Jump to Label 2
END IF
a: = y
a: * 13
a: / 11
a: / x
IF a = 0:
a: = 407
b: = 100
c: = 11
Jump to Label 2
END IF
a: = 31
b: = 14
c: = 1
Jump to Label 2
END IF
Label 2
a: * y
b: * x
c: * x
ANGLE: = c
ANGLE: / 2
ANGLE: + b
ANGLE: + a
ANGLE: / c
IF s > 0:
ANGLE: * -1
ANGLE: + 90
END IF
IF x_entree < 0:
ANGLE: * -1
ANGLE: + 180
END IF
IF y_entree < 0:
ANGLE: * -1
END IF
Label 3
|
Si vous êtes sûr que les valeurs de x et y sont toujours entre -22503 et 22503 vous pouvez supprimer les lignes suivantes:
1
2
3
4
5
6
7
|
a: = x
a: + 22502
a: / 22503
x: / a
y: / a
|
|
~~ |
| The Inconstant Gardener | Je pense que je vais garder la formule que j'ai actuellement, car il faut que j'avance, mais je suis impressionné par ton sens de la perfection. ^^
Pour répondre à ta question sur comment j'affiche les îles :
Le joueur voit 320 pixels de large. La vision humaine horizontale est d'environ 120°, donc si 120° = 320 pixels, 360° = 960 pixels. J'affiche donc mes îles sur une ligne horizontale allant de -480 à 480, en fonction de leur angle (allant de -180 à +180).
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
Tassle -
posté le 04/12/2021 à 18:43:52 (5234 messages postés)
| Disciple de Pythagolf | Oki je vois merci
(t'as une erreur max d'eviron 34 pixels par rapport à quelque chose de plus réaliste Edit: 12.6 pixels en fait, je m'étais gouré)
|
~~ |
| The Inconstant Gardener | Oui j'ai choisi la (relative) simplicité au détriment d'un meilleur réalisme. ^^
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. |
sriden -
posté le 08/12/2021 à 00:58:58 (16583 messages postés)
❤ 2Nemau Roi of the Suisse | | J'ai les crédits du jeu si vous voulez :
Crédits du jeu incroyablement bien écrits : sriden
Auteur du jeu : Tassle
Aides : Roi of the Suisse, Joke, Ephy, Zam
Poseur de questions : Nemau =>[]
|
Escapade | La 7e porte | Vader Ou La Fin des Haricots | Ketsuro | Polaris 03 | Blog ciné/jv | Mes albums de zyk : Diaphanous Horizons & Retranchements ౡ |
| The Inconstant Gardener | C'est tellement ça. xD
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 • Le matérialisme c'est quand tu as du matériel. | Aller à la page 1 2 3 4 5 6Index du forum > Généralités > [RM2003] Création d'un simili-Mode 7
|