|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- #include "user32.as"
-
- #pack "start.ax" ; 暗号化防止
-
- #packopt hide 1
- #packopt name "nizika-desktop"
-
- #const NIZIKA_WIDTH 300
- #const NIZIKA_HEIGHT 300
- #const NIZIKA_BASE 236
- #const NIZIKA_LEFT 100
- #const NIZIKA_RIGHT 250
-
-
- ; 半透明スクリーン作成
- SCREEN_MAIN = BgScr2 (gInfo_dispX, gInfo_dispY, SCREEN_HIDE, 0, 0)
- SetWindowLong hWnd, GWL_EXSTYLE, GetWindowLong (hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED
- SetLayeredWindowAttributes hWnd, RGBCOLOUR_LIME, False, True
-
- HWND_DESKTOP = GetDesktopWindow () ; デスクトップ取得
-
- Color COLOUR_LIME
- BoxF
-
- SCREEN_NIZIKA = Buffer2 ()
- PicLoad "assets/nizika.png"
-
- GSel SCREEN_MAIN, 2
-
- frame = 0
-
- nizikaX = Double (-NIZIKA_LEFT)
- nizikaY = Double (gInfo_dispY - NIZIKA_BASE)
-
- direction = 1
-
- moving = False
- falling = True
- base = gInfo_dispY
-
- Repeat
- Dim hWindows, 1
- Dim windowRects, 4, 1
-
- hWindows.0 = GetTopWindow (HWND_DESKTOP)
- hWindowBefore = hWindows.0
- GetWindowRect hWindows.0, VarPtr (windowRects.0.0)
-
- windowCnt = 1
-
- Repeat
- hWindow = GetWindow (hWindowBefore, GW_HWNDNEXT)
-
- If hWindow = 0 {
- Break
- }
-
- buf = ""
- GetWindowText hWindow, VarPtr (buf), 256
-
- If IsWindowVisible (hWindow) {
- If StrLen (buf) != 0 {
- hWindows.windowCnt = hWindow
- GetWindowRect hWindow, VarPtr (windowRects.0.windowCnt)
-
- windowCnt++
- }
- }
-
- hWindowBefore = hWindow
- Loop
-
- If GetKey2 (KEY_MOUSE_L) {
- If gInfo_act = SCREEN_MAIN {
- If moving {
- nizikaX = LimitF (mouseX - offsetX, -NIZIKA_LEFT, gInfo_dispX - NIZIKA_RIGHT)
- nizikaY = LimitF (mouseY - offsetY, Null, gInfo_dispY - NIZIKA_BASE)
- }
- Else {
- moving = True
-
- offsetX = Double (mouseX - nizikaX)
- offsetY = Double (mouseY - nizikaY)
- }
- }
- }
- Else: If moving {
- moving = False
- falling = True
-
- fallVel = 0.
- }
- Else: If falling {
- nizikaY = LimitF (nizikaY + fallVel, Null, base - NIZIKA_BASE)
- fallVel += 9.8
-
- If nizikaY >= base - NIZIKA_BASE {
- fallVel = 0.
- }
-
- base = gInfo_dispY
-
- Repeat windowCnt
- If windowRects.LEFT.cnt <= nizikaX + (NIZIKA_WIDTH - NIZIKA_LEFT) {
- If nizikaX + NIZIKA_LEFT < windowRects.RIGHT.cnt {
- If nizikaY + NIZIKA_BASE <= windowRects.TOP.cnt {
- If windowRects.TOP.cnt < base {
- base = windowRects.TOP.cnt
- }
- }
- }
- }
- Loop
- }
-
- ReDraw False
- Color COLOUR_LIME
- BoxF
-
- Pos nizikaX, nizikaY
- GCopy SCREEN_NIZIKA, IIf (direction < 0, NIZIKA_WIDTH, 0), NIZIKA_HEIGHT * (frame \ 24), NIZIKA_WIDTH, NIZIKA_HEIGHT
- ReDraw True
-
- nizikaX += direction * 4
-
- If (nizikaX >= gInfo_dispX - NIZIKA_RIGHT) || (nizikaX < -NIZIKA_LEFT) {
- direction = -direction
- }
-
- Await 33
-
- frame++
- Loop
-
|