nKaruga
Re: nKaruga
Bump,
Vu qu'au fur et à mesure du développement, je commençais à être de l'avis de AnToX98 concernant la taille des sprites, j'ai fait quelques essais en utilisant les sprites rétrécis à la moitié de leur taille originale (jusqu'à maintenant, ils étaient diminués d'un quart de leur taille). Qu'est-ce que vous préférez ?
3/4 de la taille :
1/2 de la taille :
Vu qu'au fur et à mesure du développement, je commençais à être de l'avis de AnToX98 concernant la taille des sprites, j'ai fait quelques essais en utilisant les sprites rétrécis à la moitié de leur taille originale (jusqu'à maintenant, ils étaient diminués d'un quart de leur taille). Qu'est-ce que vous préférez ?
3/4 de la taille :
1/2 de la taille :
-
matref
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 506
- Joined: 11 Dec 2011, 03:08
- Location: France, Châteaurenard
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Prépa MPSI
Re: nKaruga
1/2 looks good.
What about 3/5 ?
(Quoique, sérieusement...)
What about 3/5 ?
(Quoique, sérieusement...)
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14779
- Images: 1123
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: nKaruga
T'arrêtes de faire chier toi ?
Sérieusement, j'ai opté pour un tout petit peu plus que 1/2, et le créateur est en train de travailler dessus direct à cette taille (pas de redimensionnement nécessaire), donc ça devrait être plus joli.
Sérieusement, j'ai opté pour un tout petit peu plus que 1/2, et le créateur est en train de travailler dessus direct à cette taille (pas de redimensionnement nécessaire), donc ça devrait être plus joli.
-
matref
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 506
- Joined: 11 Dec 2011, 03:08
- Location: France, Châteaurenard
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Prépa MPSI
Re: nKaruga
Ah mais c'est parfait maintenant
Mes programmes de Maths Equation cartésienne droiteEtude de dérivé en un point Inéquations du second degré Equations bicarrées Statistique facile ! (1ère/2nde) | Divers Liste complète de mes programmesApprends à programmer en lua TI-planet sur facebook : |
-
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)- Posts: 1022
- Images: 15
- Joined: 19 May 2013, 16:54
- Location: Paris, France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1ere S
Re: nKaruga
matref wrote:Sérieusement, j'ai opté pour un tout petit peu plus que 1/2
Hé ben voilà, c'est ce que je demandais
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14779
- Images: 1123
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: nKaruga
AnToX98 wrote:Ah mais c'est parfait maintenant
Je trouve que c'est trop petit, du coup j'ai demandé un touuuuut peuti peu plus grand que 1/2
Adriweb wrote:matref wrote:Sérieusement, j'ai opté pour un tout petit peu plus que 1/2
Hé ben voilà, c'est ce que je demandais
Non, parce que c'est un peu plus que 1/2 et un peu moins que 3/5
-
matref
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 506
- Joined: 11 Dec 2011, 03:08
- Location: France, Châteaurenard
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Prépa MPSI
Re: nKaruga
Alors en attendant les nouveaux sprites, j'ai commencé à recréer le premier niveau du Ikaruga original :
Franchement, je m'attendais pas à devoir faire des polynômes du 2nd et 3ème degré pour les trajectoires.
Franchement, je m'attendais pas à devoir faire des polynômes du 2nd et 3ème degré pour les trajectoires.
-
matref
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 506
- Joined: 11 Dec 2011, 03:08
- Location: France, Châteaurenard
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Prépa MPSI
Re: nKaruga
matref wrote:Franchement, je m'attendais pas à devoir faire des polynômes du 2nd et 3ème degré pour les trajectoires.
Donald Knuth wrote:Beware of bugs in the above code; I have only proved it correct, not tried it.
-
AlexRider38Généreux
Niveau 13: CU (Calculateur Universel)- Posts: 650
- Images: 0
- Joined: 03 Nov 2010, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
Re: nKaruga
Peut-on voir le code de la nouvelle routine de rotation de sprite ?
Pokemon Topaze (Axe) discussion and download links here | (19:29:36) noelnadal: plus sérieusement, j'ai très peu de problèmes (22:45:44) Clifward: J'aime rire du malheur des autres (2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!! (2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked). (2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked. (2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat. (2017.11.18 - 17:07:28) Fireworks: <3 (2017.11.18 - 17:07:31) Fireworks: 208 |
-
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)- Posts: 2509
- Images: 2
- Joined: 30 Aug 2011, 08:22
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Templar
Re: nKaruga
Ouais bien sûr. Il faut savoir que ça dessine le sprite en question tourné, ça ne fait pas comme rotozoomSurface. "sr" est la SDL_Rect dont les composantes X et Y sont où dessiner le milieu du sprite :
Je crois que j'ai rien oublié niveau include etoo.
- Code: Select all
#include <SDL.h>
// Fixed
// 24.8 fixed point
#define itofix(x) ((x) << 8)
#define fixtoi(x) ((x) >> 8)
#define fixmul(x, y) ((x) * (y) >> 8)
#define fixdiv(x, y) (((x) << 8) / (y))
#define fixsin(x) fixcos((x) - 64)
Fixed fixcos(Fixed angle)
{
static Fixed cosLUT[] = { 256, 255, 255, 255, 254, 254, 253, 252, 251, 249, 248, 246, 244, 243, 241, 238, 236, 234, 231, 228, 225, 222, 219, 216, 212, 209, 205, 201, 197, 193, 189, 185, 181, 176, 171, 167, 162, 157, 152, 147, 142, 136, 131, 126, 120, 115, 109, 103, 97, 92, 86, 80, 74, 68, 62, 56, 49, 43, 37, 31, 25, 18, 12, 6, 0, -6, -12, -18, -25, -31, -37, -43, -49, -56, -62, -68, -74, -80, -86, -92, -97, -103, -109, -115, -120, -126, -131, -136, -142, -147, -152, -157, -162, -167, -171, -176, -181, -185, -189, -193, -197, -201, -205, -209, -212, -216, -219, -222, -225, -228, -231, -234, -236, -238, -241, -243, -244, -246, -248, -249, -251, -252, -253, -254, -254, -255, -255, -255, -256, -255, -255, -255, -254, -254, -253, -252, -251, -249, -248, -246, -244, -243, -241, -238, -236, -234, -231, -228, -225, -222, -219, -216, -212, -209, -205, -201, -197, -193, -189, -185, -181, -176, -171, -167, -162, -157, -152, -147, -142, -136, -131, -126, -120, -115, -109, -103, -97, -92, -86, -80, -74, -68, -62, -56, -49, -43, -37, -31, -25, -18, -12, -6, 0, 6, 12, 18, 25, 31, 37, 43, 49, 56, 62, 68, 74, 80, 86, 92, 97, 103, 109, 115, 120, 126, 131, 136, 142, 147, 152, 157, 162, 167, 171, 176, 181, 185, 189, 193, 197, 201, 205, 209, 212, 216, 219, 222, 225, 228, 231, 234, 236, 238, 241, 243, 244, 246, 248, 249, 251, 252, 253, 254, 254, 255, 255, 255 };
return cosLUT[angle & 0xff];
}
void rotate(int x, int y, Fixed ca, Fixed sa, SDL_Rect *out)
{
out->x = fixtoi(fixmul(itofix(x), ca) + fixmul(itofix(y), sa));
out->y = fixtoi(fixmul(itofix(x), -sa) + fixmul(itofix(y), ca));
}
void custom_rotosprite(SDL_Surface *source, SDL_Rect sr, Fixed angle, SDL_Surface *screen)
{
SDL_LockSurface(source);
SDL_LockSurface(screen);
// Rotated points
SDL_Rect upleft, upright, downleft, downright;
// Final rectangle, the rectangle containing all of the four rotated points
// x,y = top-left corner
// w,h = bottom-right corner
SDL_Rect fr;
Fixed dX = fixcos(angle), dY = fixsin(angle);
rotate(-source->w / 2, -source->h / 2, dX, dY, &upleft);
rotate(source->w / 2, -source->h / 2, dX, dY, &upright);
rotate(-source->w / 2, source->h / 2, dX, dY, &downleft);
rotate(source->w / 2, source->h / 2, dX, dY, &downright);
fr.x = min(min(min(upleft.x, upright.x), downleft.x), downright.x) + sr.x;
fr.y = min(min(min(upleft.y, upright.y), downleft.y), downright.y) + sr.y;
fr.w = max(max(max(upleft.x, upright.x), downleft.x), downright.x) + sr.x;
fr.h = max(max(max(upleft.y, upright.y), downleft.y), downright.y) + sr.y;
// Current pixel
SDL_Rect cp;
// De-rotated pixel starting the line
SDL_Rect lsp;
// Current de-rotated pixel
SDL_Rect cdrp;
// De-rotates the pixel
// Basically the same as rotate() with cos(-angle) and sin(-angle), but without the fixtoi()
// Also, remember cos(-x) = cos(x) and sin(-x) = -sin(x)
lsp.x = fixmul(itofix(fr.x - sr.x), dX) + fixmul(itofix(fr.y - sr.y), -dY);
lsp.y = fixmul(itofix(fr.x - sr.x), dY) + fixmul(itofix(fr.y - sr.y), dX);
for(cp.y = fr.y; cp.y < fr.h; cp.y++)
{
cdrp.x = lsp.x;
cdrp.y = lsp.y;
for(cp.x = fr.x; cp.x < fr.w; cp.x++)
{
if(cp.x >= 0 && cp.x < 320 && cp.y >= 0 && cp.y < 240)
{
if(abs(fixtoi(cdrp.x)) < source->w / 2 && abs(fixtoi(cdrp.y)) < source->h / 2)
{
Uint32 currentPixel = nSDL_GetPixel(source, fixtoi(cdrp.x) + source->w / 2, fixtoi(cdrp.y) + source->h / 2);
if(currentPixel != source->format->colorkey)
nSDL_SetPixel(screen, cp.x, cp.y, currentPixel);
}
}
cdrp.x += dX;
cdrp.y += dY;
}
lsp.x -= dY;
lsp.y += dX;
}
SDL_UnlockSurface(screen);
SDL_UnlockSurface(source);
}
Je crois que j'ai rien oublié niveau include etoo.
-
matref
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 506
- Joined: 11 Dec 2011, 03:08
- Location: France, Châteaurenard
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Prépa MPSI
Return to Native: Ndless, Linux, ...
Who is online
Users browsing this forum: ClaudeBot [spider] and 2 guests