QB64.org Forum

Active Forums => Programs => Topic started by: CloudZimmermann on May 16, 2020, 05:00:30 pm

Title: Star Parallax Screensavers (Vertical / Horizontal)
Post by: CloudZimmermann on May 16, 2020, 05:00:30 pm
Programs: Star Parallax Screensavers (Vertical / Horizontal)
Created: May 16th, 2020
Creator: Cloud Zimmermann



Code: QB64: [Select]
  1. ' Program: Star Parallax Screensaver (Vertical)
  2. ' Created: May 16th, 2020
  3. ' Creator: Cloud Zimmermann
  4.  
  5. SCREEN 7, 1, 0, 1
  6.  
  7. CONST screenWidth% = 320
  8. CONST screenHeight% = 200
  9. CONST count% = 200
  10. DIM SHARED stars%(count%, 5)
  11.  
  12. FOR i% = 1 TO count% - 1
  13.     CALL resetStar(i%, 1)
  14. NEXT i%
  15.  
  16.     CLS
  17.     FOR i% = 1 TO count% - 1
  18.         IF stars%(i%, 2) > screenHeight% THEN
  19.             CALL resetStar(i%, 0)
  20.         ELSE
  21.             stars%(i%, 2) = stars%(i%, 2) + stars%(i%, 3)
  22.         END IF
  23.         PSET (stars%(i%, 1), stars%(i%, 2)), stars%(i%, 4)
  24.     NEXT i%
  25.     PCOPY 0, 1
  26.     _LIMIT 60
  27.  
  28. SUB resetStar (starSelected%, init%)
  29.     IF init% = 1 THEN
  30.         stars%(starSelected%, 2) = INT(RND * screenHeight%) + 1
  31.     ELSE
  32.         stars%(starSelected%, 2) = 1
  33.     END IF
  34.  
  35.     stars%(starSelected%, 1) = INT(RND * screenWidth%) + 1
  36.     stars%(starSelected%, 3) = INT(RND * 3) + 1
  37.  
  38.     SELECT CASE INT(RND * 3) + 1
  39.         CASE 1
  40.             stars%(starSelected%, 4) = 15
  41.         CASE 2
  42.             stars%(starSelected%, 4) = 7
  43.         CASE ELSE
  44.             stars%(starSelected%, 4) = 8
  45.     END SELECT
  46.  
  47.  

Code: QB64: [Select]
  1. ' Program: Star Parallax Screensaver (Horizontal)
  2. ' Created: May 16th, 2020
  3. ' Creator: Cloud Zimmermann
  4.  
  5. SCREEN 7, 1, 0, 1
  6.  
  7. CONST screenWidth% = 320
  8. CONST screenHeight% = 200
  9. CONST count% = 200
  10. DIM SHARED stars%(count%, 5)
  11.  
  12. FOR i% = 1 TO count% - 1
  13.     CALL resetStar(i%, 1)
  14. NEXT i%
  15.  
  16.     CLS
  17.     FOR i% = 1 TO count% - 1
  18.         IF stars%(i%, 1) > screenWidth% THEN
  19.             CALL resetStar(i%, 0)
  20.         ELSE
  21.             stars%(i%, 1) = stars%(i%, 1) + stars%(i%, 3)
  22.         END IF
  23.         PSET (stars%(i%, 1), stars%(i%, 2)), stars%(i%, 4)
  24.     NEXT i%
  25.     PCOPY 0, 1
  26.     _LIMIT 60
  27.  
  28. SUB resetStar (starSelected%, init%)
  29.     IF init% = 1 THEN
  30.         stars%(starSelected%, 1) = INT(RND * screenWidth%) + 1
  31.     ELSE
  32.         stars%(starSelected%, 1) = 1
  33.     END IF
  34.  
  35.     stars%(starSelected%, 2) = INT(RND * screenHeight%) + 1
  36.     stars%(starSelected%, 3) = INT(RND * 3) + 1
  37.  
  38.     SELECT CASE INT(RND * 3) + 1
  39.         CASE 1
  40.             stars%(starSelected%, 4) = 15
  41.         CASE 2
  42.             stars%(starSelected%, 4) = 7
  43.         CASE ELSE
  44.             stars%(starSelected%, 4) = 8
  45.     END SELECT
  46.  
  47.  
Title: Re: Star Parallax Screensavers (Vertical / Horizontal)
Post by: Ashish on May 17, 2020, 11:39:20 am
Nice work :)