Show Posts

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
Casio Calculators / Re: [Cemetech Contest #9][Prizm] Zombie Gun
« 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:
Quote
for example if i kept the array in L3
Code: [Select]
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
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
Other Calc-Related Projects and Ideas / Re: OmniRPG - Main Topic
« on: September 08, 2013, 08:04:48 am »
Is this dead? I hope not. I was looking forward to this. :P

64
HP Calculators / Re: Some Cellular Automata program on Youtube
« 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
  :P

65
It says it's enabled.

66
How did you install the extension?

I downloaded it and then I dragged it to the extension page in chrome.

67
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
I have it installed, but how do I use it?

69
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
Miscellaneous / Re: Random YouTube Videos
« on: September 05, 2013, 09:00:21 pm »
This is amazing:


:P

71
Gaming Discussion / Re: Cookie Madness
« 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. :P

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. :P

72
Calculator C / Re: [Ndless] Tunnel
« 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
Calculator C / Re: [Ndless] Tunnel
« on: August 31, 2013, 02:04:10 pm »
Does anyone have an idea for how to add another texture(so there's two)?

74
Calculator C / Re: [Ndless] Tunnel
« on: August 30, 2013, 06:54:39 am »
Oh my gosh, I feel so stupid.  O.O 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
Calculator C / Re: [Ndless] Tunnel
« 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):
Code: [Select]
#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