Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: snow screensaver (silly me)
From: Itai (Itais_at_newmail.net)
Date: 2002-09-01


silly me......
int the last line of snow_move - particle_exists should get the
parameter i...
that typo caused the top line of pixels.....
[

if (particle_exists(i))
            lcd_drawpixel(particles[i][0],particles[i][1]);

]

Itai wrote:

> works fine for me....
> I did got that top line you mention, but that was before I added the
> two last condiotions to particle_exists (to check if a particle has
> gone out of the screen)
>
> anyways, I have changed my code according to the conventions, and
> maybe with shorter lines it'll work (who knows.)
>
> bottom line - works fine for me......
>
> Robert Hak wrote:
>
>> I have played with this and like it.
>>
>> However, when run, you get a build up of pixels on the very top most
>> line
>> of the screen. (i can get you a screen shot if you like)
>>
>> In additions, when you write the code, please try and keep the line
>> lengths under 80 chars, and avoid putting the if clause's on the same
>> line:
>>
>> if(true) i++;
>>
>> should be
>>
>> if(true)
>> i++;
>>
>> /Adi
>>
>>
>> On Wed, 28 Aug 2002, Itai wrote:
>>
>> a screen saver (for the recorder, duh) that simulates snow/dust/small
>> particles going down the screen
>>
>>
>
>
>------------------------------------------------------------------------
>
>/*
>snow screen saver
>
>by Itai Shaked
>*/
>
>#include "lcd.h"
>#include "config.h"
>#include "kernel.h"
>#include "menu.h"
>#include "button.h"
>#include <stdlib.h>
>
>
>short particles[2000][2];
>
>
>bool particle_exists (int particle) {
> if (particles[particle][0]>=0 && particles[particle][1]>=0 &&
> particles[particle][0]<=111 && particles[particle][1]<=63)
> return true;
> else return false;
>}
>
>
>int create_particle (void) {
> int i;
> for (i=0; i<1500; i++) {
> if (!particle_exists(i)) {
> particles[i][0]=(rand()%112);
> particles[i][1]=0;
> return i;
> }
> }
> return -1;
>}
>
>void snow_move(void) {
> int i;
> if (!(rand()%2)) create_particle();
> for (i=0; i<2000; i++) {
> if (particle_exists(i)) {
> lcd_clearpixel(particles[i][0],particles[i][1]);
> switch ((rand()%5)) {
> case 0:
> particles[i][0]++;
> break;
> case 1:
> particles[i][0]--;
> break;
> case 2:
> break;
> default:
> particles[i][1]++;
> break;
> }
> if (particle_exists)
> lcd_drawpixel(particles[i][0],particles[i][1]);
> }
> }
>}
>
>void snow_init(void) {
> int i;
> for (i=0; i<2000; i++) {
> particles[i][0]=-1;
> particles[i][1]=-1;
> }
> lcd_clear_display();
>}
>
>Menu snow (void) {
> snow_init();
> while (1) {
> snow_move();
> lcd_update();
> sleep(HZ/10);
> if (button_get(false)==BUTTON_OFF) return MENU_OK;
> }
>}
>



Page was last modified "Jan 10 2012" The Rockbox Crew
aaa