Anmäl som programmerare
5 posters
Sida 1 av 1
Sv: Anmäl som programmerare
Det var länge sen jag använde C++ (har blivit mest Java sen jag började högskolan), men jag kanske kan ställa upp. Får se hur avancerade grejor jag klarar, bara.
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sv: Anmäl som programmerare
Har du kört SDL nån gång, kolla upp det annars och testa runt. Java och C är också ganska lika, lite mindre krångel att göra grejor i java dock
Sv: Anmäl som programmerare
Har kollat upp nu. Har suttit en stor del av dagen (börjar bli dags för frukost snart, kanske...) och programmerat ett program som ritar Mandelbrotmängden. Jag har alltså bekantat mig med att skapa SDL-surfaces, att rita (pixlar) till dem och grundläggande musinput.
Jag måste dock säga att jag inte känner mig helt hemma på hur man skriver bra C++-kod. Alltså, programmeringskonventioner och liknande. Men det kommer väl såsmåningom. Jag är en ivrig inlärare.
Jag måste dock säga att jag inte känner mig helt hemma på hur man skriver bra C++-kod. Alltså, programmeringskonventioner och liknande. Men det kommer väl såsmåningom. Jag är en ivrig inlärare.
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sv: Anmäl som programmerare
Shit, QauNuckShin, du får det att låta så enkelt
grymt
grymt
dark_volvagia- Admin
- Antal inlägg : 163
Registreringsdatum : 08-07-21
Ålder : 35
Sv: Anmäl som programmerare
Äh, det är inget speciellt alls..
Borde nog sätta mig in i sprites och såntdär.. Och kanske ljuddelen av SDL också. Såsmåningom.
- Kod:
#include <stdlib.h>
#include "SDL.h"
#include <math.h>
void mainLoop();
void drawFractal();
SDL_Surface *screen;
float w = 3.2;
float h = 2.5;
int wdirection = 1;
int hdirection = -1;
float xstart = -2.2;
float ystart = 1.25;
const int maxIterations = 1024;
Uint32 palette[maxIterations];
int main()
{
if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
if ( screen == NULL )
{
fprintf(stdout, "Unable to set 640x480 video: %s\n", SDL_GetError());
}
//Skapa palett
int i;
for (i=0; i<maxIterations; i++)
{
palette[i] = 255 * (1-pow(1.002, -i));
palette[i] += (int)(255 * (1-pow(1.01, -i))) << 8;
palette[i] += (int)(255 * (1-pow(1.02, -i))) << 16;
}
drawFractal();
mainLoop();
SDL_Quit();
}
float PixelToCoordX(int x)
{
return xstart + x*(w/screen->w)*wdirection;
}
float PixelToCoordY(int y)
{
return ystart + y*(h/screen->h)*hdirection;
}
void mainLoop()
{
SDL_Event event;
bool loop = true;
int downx = 0;
int downy = 0;
int upx = 0;
int upy = 0;
while(loop)
{
while (SDL_PollEvent(&event))
{
switch (event.type) {
case SDL_MOUSEBUTTONDOWN:
if (event.button.button == SDL_BUTTON_LEFT)
{
downx = event.button.x;
downy = event.button.y;
}
break;
case SDL_MOUSEBUTTONUP:
if (event.button.button == SDL_BUTTON_LEFT)
{
upx = event.button.x;
upy = event.button.y;
if (downx!=upx && downy!=upy)
{
if (downx > upx)
{
int temp = downx;
downx = upx;
upx = temp;
}
if (downy > upy)
{
int temp = downy;
downy = upy;
upy = temp;
}
//fprintf(stdout, "%f - %f\n", PixelToCoordX(upx), xstart);
//fprintf(stdout, "%d - %d\n", upx, downx);
float newxstart = PixelToCoordX(downx);
float newystart = PixelToCoordY(downy);
w = PixelToCoordX(upx) - PixelToCoordX(downx);
h = PixelToCoordY(downy) - PixelToCoordY(upy);
xstart = newxstart;
ystart = newystart;
//fprintf(stdout, "%f,%f - %f,%f\n", xstart, ystart, w, h);
drawFractal();
}
}
else if (event.button.button == SDL_BUTTON_RIGHT)
{
//Defaultzoomning
w = 3.2;
h = 2.5;
xstart = -2.2;
ystart = 1.25;
drawFractal();
}
break;
case SDL_QUIT:
loop=false;
break;
}
}
}
}
void drawFractal()
{
int posx=0;
int posy=0;
float x, y, x0, y0;
if ( SDL_MUSTLOCK(screen) ) {
if ( SDL_LockSurface(screen) < 0 ) {
return;
}
}
Uint32 *pixel;
pixel = (Uint32 *)screen->pixels;
float xtemp;
for (posy=0; posy<screen->h; posy++)
{
for (posx=0; posx<screen->w; posx++)
{
x = x0 = PixelToCoordX(posx);
y = y0 = PixelToCoordY(posy);
int iterations = 0;
while ( x*x + y*y <= 4 && iterations < maxIterations )
{
xtemp = x*x - y*y + x0;
y = 2*x*y + y0;
x = xtemp;
iterations++;
}
if ( iterations == maxIterations )
{
//*pixel = 0xFFFFFF;
*pixel = 0x0;
}
else
{
*pixel = palette[iterations];
}
pixel++;
}
SDL_UpdateRect(screen, 0, posy, screen->w, 1);
}
if ( SDL_MUSTLOCK(screen) ) {
SDL_UnlockSurface(screen);
}
SDL_UpdateRect(screen, 0, 0, screen->w, screen->h);
}
Borde nog sätta mig in i sprites och såntdär.. Och kanske ljuddelen av SDL också. Såsmåningom.
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sv: Anmäl som programmerare
Ser rätt mycket ut som om jag skulle kunna klara av det där. Men en sådan motivation att bara kolla upp helt apropå är grymt. Jag har också läst java och kodade massor i scriptspråket som följer med gamemaker, så det handlar väll mest om att jag förlorat lite motivation efter tre år med icke grafiska program i java
(dessutom är jag rätt dålig på det här med SDL och var man skall börja när det kommer till spel och sådant)
(dessutom är jag rätt dålig på det här med SDL och var man skall börja när det kommer till spel och sådant)
dark_volvagia- Admin
- Antal inlägg : 163
Registreringsdatum : 08-07-21
Ålder : 35
Sv: Anmäl som programmerare
Well, jag har inte heller jobbat på något större projekt precis.. Men nånstans måste man ju börja. Gäller bara att vara intresserad av att lära sig (och såklart ha iallafall lite grundläggande förståelse).
Edit:
HAH!
Nu fick jag Content Assist i Eclipse/CDT att funka för de importerade SDL-funktionerna. Det kommer helt klart att göra grejor mycket lättare..
Edit:
HAH!
Nu fick jag Content Assist i Eclipse/CDT att funka för de importerade SDL-funktionerna. Det kommer helt klart att göra grejor mycket lättare..
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sv: Anmäl som programmerare
Och nu har jag gjort lite grundläggande inladdning och uppritning av BMP (32-bitars, med alpha-channel).
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sv: Anmäl som programmerare
Jag kan kanske leka programmerare. Jag har ju dock inte oceaner av tid över direkt sen när skolan börjar (inte nu heller iof) så jag får se hur det blir med det där.
netcat- Möglig vaniljpudding
- Antal inlägg : 12
Registreringsdatum : 08-07-24
Sv: Anmäl som programmerare
Är det någon kvar här eller? Mycket action i handlingsforumet men det känns lite förgäves om inte programmerarna är kvar.
PS. Jobb är tråkigt. DS.
PS. Jobb är tråkigt. DS.
gouki- Moppepojke
- Antal inlägg : 29
Registreringsdatum : 08-07-21
Ålder : 37
Sv: Anmäl som programmerare
Jodå, jag är kvar iallafall.
Kollar forumet varje dag, oftast flera gånger. Har inte känts lönt att börja ordentligt med programmeringen innan grejor som perspektiv och fightingsystem är någorlunda fastställda.
Nu är jag och hälsar på min pappa i Småland, och Internettillgången här är begränsad.. och slö. Så jag lär vara lite inaktiv de närmsta dagarna.
Kollar forumet varje dag, oftast flera gånger. Har inte känts lönt att börja ordentligt med programmeringen innan grejor som perspektiv och fightingsystem är någorlunda fastställda.
Nu är jag och hälsar på min pappa i Småland, och Internettillgången här är begränsad.. och slö. Så jag lär vara lite inaktiv de närmsta dagarna.
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sv: Anmäl som programmerare
Hehe. Ok. Jag har inte gjort något produktivt heller. Har köpt en Eee PC nyligen för jag kände mig rik o jag funderar på att installera eclipse o så o se om jag får allt o funka där men tangentbordet är allt för jävla litet för att programmera på egentligen ^^. Dock är det min enda bärbara och nöden kräver ingen lag så kanske ändå...
gouki- Moppepojke
- Antal inlägg : 29
Registreringsdatum : 08-07-21
Ålder : 37
Sv: Anmäl som programmerare
Nä alltså, finns in te så mycket att snacka om hitills gällande programmeringen.
netcat- Möglig vaniljpudding
- Antal inlägg : 12
Registreringsdatum : 08-07-24
Sida 1 av 1
Behörigheter i detta forum:
Du kan inte svara på inlägg i det här forumet