This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Spenceboy98
Pages: 1 ... 3 4 [5] 6 7 ... 39
61
« on: September 08, 2013, 02:46:30 pm »
I don't know if this is the right topic to post in, but how should I do bullets? I asked squidgetx, and he gave me an example in Axe, but I don't really understand Axe, so do you guys have any ideas? Here is his example if you care: for example if i kept the array in L3
Lbl bullets return!if {L3}r //L3r will have the number of bullets currently in play, so quit routine if no bullets L3+2->F //F will keep track of the current array pointer {L3}r+1 while -1->E
{F+2}r+{F+4}r -> {F+2}r //update bullet x, if bullet x is kept in index+2 and xvel is kept in index+4 If (bullet on screen) Pt-On(plaX-{F+2}r,{F+6}r,{F}r*8+pic0) //draw bullets, assume buly is in index+6 and bullet type is in index+0 end F+8->F //move to next bullet E end
62
« on: September 08, 2013, 01:55:19 pm »
Ok here extract this zip and hit load unpacked extension and select the folder the files are in
How do I use the zip? It doesn't say anywhere load unpacked extension.
63
« on: September 08, 2013, 08:04:48 am »
Is this dead? I hope not. I was looking forward to this.
64
« on: September 07, 2013, 08:45:56 pm »
Now imagine what we could do with asm on the prime....
* Spenceboy98 suggests fruit ninja * Spenceboy98 runs
65
« on: September 06, 2013, 11:45:02 pm »
It says it's enabled.
66
« on: September 06, 2013, 11:43:10 pm »
How did you install the extension?
I downloaded it and then I dragged it to the extension page in chrome.
67
« on: September 06, 2013, 11:40:36 pm »
Click on the button with the green phone right next to the url box in Chrome it has to be Chrome
I don't see a green phone next to the URL box in chrome.
68
« on: September 06, 2013, 11:07:21 pm »
I have it installed, but how do I use it?
69
« on: September 06, 2013, 10:47:50 pm »
I have created an extension in Google Chrome that allows me to text in Google Chrome, you can send texts but not recieve them, I will post screenshots and a link to download in about 5 minutes!
Will you eventually implement receiving? Other than that I'd like to try it.
70
« on: September 05, 2013, 09:00:21 pm »
This is amazing:
71
« on: September 04, 2013, 03:58:47 pm »
I'll post a screenie of mine right before I reset(to get shadow achievements). But for now I have over 11 trillion cookies, and over 585 million CpS. Edit: Also, if you didn't notice, there is now version 1.034. Edit2: I just saw your screenshots with 1.034, so I am assuming you've seen it already.
72
« on: September 01, 2013, 08:16:33 am »
*BUMP* Does anyone have an idea for how to add another texture(so there's two)?
Any ideas?
73
« on: August 31, 2013, 02:04:10 pm »
Does anyone have an idea for how to add another texture(so there's two)?
74
« on: August 30, 2013, 06:54:39 am »
Oh my gosh, I feel so stupid. Sorry for any frustration I may have caused you. Here is an updated one attached. Btw, could someone post more color screenies with different textures?
75
« on: August 29, 2013, 07:09:26 pm »
*BUMP* Could one of you help make this faster? What exactly should I do instead of my if statement?
Without the last source updated source code ? Does anything has changed since the last one ?
Here is my code now(with the switch case): #include <os.h> #include "utils.c" #include "graphics3.c" #include "math.h" #include "nCOMMON.h" #include "touchpad.c"
#define R5G6B5(r,g,b) (is_cx ? (((r) << 11) | ((g) << 5) | (b)) : ((int)( 0.229 * (r) + 0.587 * ((g) / 2) + 0.114 * (b)) / 2))
int nRC_enableRelativePaths(char **argv) { char buf[256], *p; strcpy(buf, argv[0]); p = strrchr(buf, '/'); if (!p) return -1; *p = '\0'; return NU_Set_Current_Dir(buf) ? -1 : 0; }
uint16_t* nRC_loadBMP(char *path) { int size, offset, i, x, bpp, r, g, b; uint16_t *returnValue, color; FILE *temp = fopen(path, "rb");
if(!temp) { printf("Could not open %s\n", path); return NULL; }
// Check if the file's 2 first char are BM (indicates bitmap) if(!(fgetc(temp) == 0x42 && fgetc(temp) == 0x4d)) { printf("Image is not a bitmap\n"); fclose(temp); return NULL; }
// Check the bits-per-pixel format of the bitmap and converts color accordingly fseek(temp, 0x1c, SEEK_SET); bpp = fgetc(temp);
// Gets the 4-bytes numbers of bytes representing pixels, situated at 0x22 // Note that a same size can represent a different number of pixels, depending on bpp fseek(temp, 0x22, SEEK_SET); size = fgetc(temp) | (fgetc(temp) << 8) | (fgetc(temp) << 16) | (fgetc(temp) << 24);
// Gets the 4-bytes offset to the start of the pixel table, situated at 0x0a fseek(temp, 0x0a, SEEK_SET); offset = fgetc(temp) | (fgetc(temp) << 8) | (fgetc(temp) << 16) | (fgetc(temp) << 24);
fseek(temp, offset, SEEK_SET);
switch(bpp) { // Monochrome bitmaps have 1 bit per pixel : 0 is full black, 1 is full white case 1: returnValue = malloc(size * 8 * sizeof(int)); if(!returnValue) { printf("Could not allocate memory"); fclose(temp); return NULL; } for(i = size - 1; i >= 0; i--) { color = fgetc(temp); for(x = 0; x < 8; x++) { returnValue[i * 8 + x] = (color & (1 << x)) ? (is_cx ? 65535 : 15) : 0; } } break;
// 16-colours bitmaps have 4 bits per pixel, corresponding to a grayscale. // Fortunately, the non-CX screen uses the same pixel format. case 4: returnValue = malloc(size * 2 * sizeof(int)); if(!returnValue) { printf("Could not allocate memory"); fclose(temp); return NULL; } for(i = size - 1; i >= 0; i--) { x = fgetc(temp); color = x & 0x0f; returnValue[i * 2] = is_cx ? ((color * 2) << 11) | ((color * 4) << 5) | (color * 2) : color; color = (x >> 4) & 0x0f; returnValue[i * 2 + 1] = is_cx ? ((color * 2) << 11) | ((color * 4) << 5) | (color * 2) : color; } break;
// 256-colours bitmaps have 8 bits per pixel, corresponding to an index in a palette. // So we must add the 8-bit value to the start of the palette to get the 32-bits colour of the pixel. case 8: printf("Paletted bitmaps not supported\n"); fclose(temp); return NULL; break;
// 65536-colours bitmaps have 16 bits per pixel, corresponding to the R5G6B5 colour format. // Fortunately, the CX screen uses the same pixel format. case 16: size >>= 1; returnValue = malloc(size * sizeof(int)); if(!returnValue) { printf("Could not allocate memory\n"); fclose(temp); return NULL; } for(i = size - 1; i >= 0; i--) { color = (uint16_t)(fgetc(temp) | (fgetc(temp) << 8)); returnValue[i] = (is_cx ? color : ((int)( 0.229 * (color >> 11) + 0.587 * ((color >> 6) & 0x1f) + 0.114 * (color & 0x1f)) >> 1)); } break;
// 16777216-colours bitmaps have 24 bits per pixel, being 8 bits for red, 8 for green and 8 for blue. // Unfortunately, no TI-Nspire screen supports this format for now, so we have to scale it down to R5G6B5 // even if this means that we loose some quality. case 24: size /= 3; returnValue = malloc(size * sizeof(int)); if(!returnValue) { printf("Could not allocate memory"); fclose(temp); return NULL; } for(i = size - 1; i >= 0; i--) { b = fgetc(temp); g = fgetc(temp); r = fgetc(temp); returnValue[i] = R5G6B5((int)(r / 8), (int)(g / 4), (int)(b / 8)); } break;
// This format is the same than the previous one, except that it includes an alpha byte to determine the transparence // degree of the pixel. I never planned to support transparency anyway. case 32: printf("32-bits bitmaps not supported\n"); fclose(temp); return NULL; break;
default: printf("Format not supported\n"); fclose(temp); return NULL; break; }
fclose(temp); return returnValue; }
#define texWidth 64 #define texHeight 64 #define screenWidth 240 #define screenHeight 240
int w = 240, h = 240, x, y;
uint16_t *texture;
int distanceTable[screenWidth][screenHeight]; int angleTable[screenWidth][screenHeight]; int buffer[screenWidth][screenHeight];
void sprite1(void *buffer, int *data, int x, int y, int width, int height){ int i, j; for(i = 0; i < height; i++){ for(j = 0; j < width; j++){ if(x+j < 320 && x+j > 0 && y+i < 240 && y+i > 0){ if(has_colors) setPixel(x+j, y+i, data[i*width+j], buffer); else setPixelBuf(buffer, x+j, y+i, data[i*width+j]); } } } }
uint16_t RGBColor(uint8_t r, uint8_t g, uint8_t b) { return ((r / 8) << 11) | ((g / 4) << 5) | (b / 8); }
uint16_t HSLtoRGB(int h, float s, float l) { float r = 0.0f; float g = 0.0f; float b = 0.0f; float c = (1-fabs(2*l-1))*s; float tc = c*(1-abs(h%2-1)); switch(h/60) { case 0: r = c; g = tc; break; case 1: g = c; r = tc; break; case 2: g = c; b = tc; break; case 3: b = c; g = tc; break; case 4: b = c; r = tc; break; case 5: r = c; b = tc; break; default: break; } float m = l-c/2; r += m; g += m; b += m; return (uint16_t)(((int)(r*32)<<11)|((int)(g*64)<<5)|((int)(b*32))); }
int main(int argc, char *argv[]) { char *screen; screen = (char*)malloc(SCREEN_BYTES_SIZE * sizeof(char)); // just a buffer if(!screen) { exit(0); }
if(nRC_enableRelativePaths(argv)) { printf("Couldn't change directory\n"); exit(0); } texture = nRC_loadBMP("texture.bmp.tns"); if(!texture){ free(screen); exit(0); } initTP(); if(!has_colors) lcd_ingray(); for(x = 0; x < w; x++) for(y = 0; y < h; y++) { int angle, distance; float ratio = 32.0; distance = (int)(ratio * texHeight / sqrt((x - w / 2.0) * (x - w / 2.0) + (y - h / 2.0) * (y - h / 2.0))) % texHeight; angle = (0.5 * texWidth * atan2(y - h / 2.0, x - w / 2.0) / M_PI); distanceTable[x][y] = distance; angleTable[x][y] = angle; } float animation = 0; int shiftY = (unsigned int)(texHeight * 0.25); if(has_colors) clearScreen(RGBColor(255,255,255), screen); else clearBuf(screen); //begin the loop while(!isKeyPressed(KEY_NSPIRE_ESC)) { animation = animation+0.04; readTP(); int TZ = getTouchedZone4(); //calculate the shift values out of the animation value int shiftX = (unsigned int)(texWidth * 1.0 * animation); if(isKeyPressed(KEY_NSPIRE_RIGHT) || TZ==6) shiftY++; if(isKeyPressed(KEY_NSPIRE_LEFT) || TZ==4) shiftY--; for(x = 0; x < w; x++) for(y = 0; y < h; y++) { //get the texel from the texture by using the tables, shifted with the animation values int color = texture[((unsigned int)(angleTable[x][y] + shiftY) % texHeight)*texWidth+((unsigned int)(distanceTable[x][y] + shiftX) % texWidth)]; buffer[x][y] = color; } sprite1(screen, buffer[0], 40, 0, 240, 240); switch(has_colors){ case 1: display(screen); //clearScreen(RGBColor(255,255,255), screen); break; case 0: refresh(screen); clearBuf(screen); break; default: refresh(screen); clearBuf(screen); break; } } free(screen); endTP(); return 0; }
Pages: 1 ... 3 4 [5] 6 7 ... 39
|