回 帖 发 新 帖 刷新版面

主题:动画求助

谁能不能编一些动画的程序给我看一看。[em15]

回复列表 (共18个回复)

沙发

试试我编的这个
用w,a,s,d键操纵红球去追绿球~
CLS
RANDOMIZE TIMER
SCREEN 12
DIM x1, y1, x2, y2 AS INTEGER
DIM a1, b1, a2, b2 AS INTEGER
DIM q, b, c AS INTEGER
LINE (50, 50)-(600, 400), 11, B
x1 = INT(RND * 330) + 60
y1 = INT(RND * 530) + 60
FOR i = 1 TO 10
CIRCLE (y1, x1), i, 12
NEXT i
DO
x2 = INT(RND * 330) + 60
y2 = INT(RND * 530) + 60
LOOP UNTIL SQR((x1 - x2) ^ 2 + (y1 - y2) ^ 2) > 60
FOR i = 1 TO 10
CIRCLE (y2, x2), i, 10
NEXT i
c = 50
DO
LINE (50, 50)-(600, 400), 11, B
q = q + 1
IF q = c THEN
  b = INT(RND * 4) + 1
  IF b = 1 THEN
   a2 = 1
   b2 = 0
  ELSEIF b = 2 THEN
   a2 = 0
   b2 = -1
  ELSEIF b = 3 THEN
   a2 = 0
   b2 = 1
  ELSEIF b = 4 THEN
   a2 = -1
   b2 = 0
  END IF
  c = INT(RND * 50) + 50
  q = 0
END IF
s$ = INKEY$
x1 = x1 + a1
y1 = y1 + b1
x2 = x2 + a2
y2 = y2 + b2
IF x1 > 390 THEN x1 = 60
IF x1 < 60 THEN x1 = 390
IF y1 < 60 THEN y1 = 590
IF y1 > 590 THEN y1 = 60
IF x2 > 390 THEN x2 = 60
IF x2 < 60 THEN x2 = 390
IF y2 < 60 THEN y2 = 590
IF y2 > 590 THEN y2 = 60

IF s$ = "s" OR s$ = "S" THEN
  a1 = 1
  b1 = 0
ELSEIF s$ = "a" OR s$ = "A" THEN
  a1 = 0
  b1 = -1
ELSEIF s$ = "d" OR s$ = "D" THEN
  a1 = 0
  b1 = 1
ELSEIF s$ = "w" OR s$ = "W" THEN
  a1 = -1
  b1 = 0
END IF
FOR i = 1 TO 10
  CIRCLE (y1, x1), i, 12
  CIRCLE (y2, x2), i, 10
NEXT i
FOR i = 1 TO 10000: NEXT i
IF s$ = "p" OR s$ = "P" THEN
  DO
   s$ = INKEY$
   IF s$ = CHR$(27) THEN GOTO l1
  LOOP UNTIL s$ = "p" OR s$ = "P"
END IF
FOR i = 1 TO 10
  CIRCLE (y1, x1), i, 0
  CIRCLE (y2, x2), i, 0
NEXT i
IF SQR((x1 - x2) ^ 2 + (y1 - y2) ^ 2) < 20 THEN GOTO L2
l1: LOOP UNTIL s$ = CHR$(27)
L2: FOR i = 1 TO 10
CIRCLE (y1, x1), i, 12
CIRCLE (y2, x2), i, 10
NEXT i
END

板凳

这个小游戏很好,不错![em2]

3 楼

这个游戏怎么样?简单的打蜜蜂

COMMON SHARED BEE(), PX
DECLARE SUB DRAWSCR (BX AS INTEGER)
TYPE ZDSX
  X AS INTEGER
  Y AS INTEGER
  P AS INTEGER
END TYPE
DIM PBEEX AS INTEGER  '蜜蜂群的位置                                                      
DIM BEE(20, 5)  '定义蜜蜂的数组                                             
DIM SHARED ZD(45) AS ZDSX   '定义子弹的数组                                                
RANDOMIZE TIMER
CLS
LOCATE 5, 30
PRINT "BEES    SHOOTING"
LOCATE 10, 30
PRINT "  <  =MOVE  LEFT"
LOCATE 15, 30
PRINT "  >  =MOVE RIGHT"
LOCATE 20, 30
PRINT "BLANK=   SHOOT"
WHILE K$ = "": K$ = INKEY$: WEND
PX = 40
FOR N1 = 1 TO 5
  FOR N2 = 1 TO 20
    BEE(N2, N1) = 1 '初始化蜜蜂的生命                               
  NEXT N2
NEXT N1
FOR N11 = 1 TO 44
  ZD(N11).P = 0
NEXT N11
FOR N12 = 1 TO 44
  ZD(N12).Y = 45 - N12
NEXT N12
PBEEX = 30 - 2
CALL DRAWSCR(PBEEX)
DO
  ZY = SGN(FIX(RND(1) * 9) - 4)
  IF NOT ((PBEEX <= 10 AND ZY < 0) OR (PBEEX >= 50 AND ZY > 0)) THEN PBEEX = PBEEX + ZY * INT(10 * RND(1))
  FOR N15 = 44 TO 1 STEP -1
    ZD(N15 + 1).P = ZD(N15).P
    ZD(N15 + 1).X = ZD(N15).X
  NEXT N15
  ZD(1).P = 0
  FOR N16 = 1 TO 5
    FOR N17 = 1 TO 20
      FOR N18 = 39 TO 44
        IF ZD(N18).X = PBEEX + N17 AND ZD(N18).Y = N16 AND ZD(N18).P = 1 AND BEE(N17, N16) = 1 THEN
        ZD(N18).P = 0
        BEE(N17, N16) = 0
        END IF
      NEXT N18
    NEXT N17
  NEXT N16
  FOR N19 = 1 TO 5
    FOR N20 = 1 TO 20
      IF BEE(N20, N19) = 1 THEN GOTO NOWIN
    NEXT N20
  NEXT N19
  LOCATE 20, 35: PRINT "BEES WERE ALL KILLED!!"
  WHILE K$ = "": K$ = INKEY$: WEND
  END
NOWIN:                                                                      
  CALL DRAWSCR(PBEEX)
  N14 = 0
  DO
    K$ = INKEY$: N14 = N14 + 1
  LOOP UNTIL K$ <> "" OR N14 = 50000
  SELECT CASE K$
    CASE ","
      IF PX > 1 THEN PX = PX - 1
    CASE "."
      IF PX < 79 THEN PX = PX + 1
    CASE CHR$(32)
      ZD(1).P = 1
      ZD(1).X = PX
  END SELECT
LOOP UNTIL A = 1

SUB DRAWSCR (BX AS INTEGER)
CLS
FOR N3 = 1 TO 5
  FOR N4 = 1 TO 20
    IF BEE(N4, N3) = 1 THEN
      LOCATE 1 + N3, BX + N4: PRINT "*"
    END IF
  NEXT N4
NEXT N3
LOCATE 45, PX: PRINT "^"
FOR N5 = 1 TO 44
  IF ZD(N5).P = 1 THEN
    LOCATE ZD(N5).Y, ZD(N5).X
    PRINT "."
  END IF
NEXT N5
END SUB

4 楼

楼上的:你回复的2个主题都是我发的。(动画求助,游戏求助)

5 楼

sorry,我只看贴,没看人。

6 楼

动画动画吗,就是画一个擦一个
暴力法~

7 楼

不知道QB能不能调DirectX,vb是可以的,如果能调的话三维动画也可以做[em9]

8 楼

我没有调用,也许有高手能
不过,我看过QB做的3D动画,很不错的!

9 楼

用qb做太麻烦 了 啊
    做动话还不如用   动画软件做啊
        什么好用什么 简单用什么 啊

10 楼

rem 生日蛋糕(有音乐)
name1$ = "CHEN XIAOLEI"
age = 26
text$ = "HAPPY BIRTHDAY TO CHEN XIAOLEI! "
name2$ = "DAD AND MUM"
d$ = "1999,10,26"
CLS
SCREEN 9
COLOR 15, 5
LOCATE 12, 22
PRINT "HAPPY BIRTHDAY TO"; name1$; "!"
LOCATE 14, 22
PRINT "BE READY TO ACCEPT THE CAKE FOR YOU!"
FOR i = 1 TO 250000: NEXT
FOR g = 0 TO 320
LINE (320 - g, 0)-(320 + g, 349), 2, BF
NEXT
COLOR 15, 2
pi = 3.14159
FOR y = 265 TO 240 STEP -1
CIRCLE (320, y), 180, 6, pi, 0, 5 / 16
NEXT
FOR y = 241 TO 231 STEP -1
CIRCLE (320, y), 180, 7, pi, 0, 5 / 16
NEXT
CIRCLE (320, 230), 180, 15, , , 5 / 16
PAINT (320, 230), 15
FOR k = 1 TO 18
x = 320 - 130 * COS(2 * pi * (k / 18))
y = 230 - 130 * SIN(2 * pi * (k / 18)) * 5 / 16
CIRCLE (x, y), 8, 12, , , 5 / 16
CIRCLE (x, y), 3, 10, , , 5 / 16
NEXT
FOR k = 1 TO 12
x = 320 - 50 * COS(2 * pi * (k / 12))
y = 230 - 50 * SIN(2 * pi * (k / 12)) * 5 / 16
LINE (320, 230)-(x, y), 10
CIRCLE (x, y), 6, 13, , , 5 / 16
NEXT
FOR k = 1 TO 60
x = 320 - 170 * COS(2 * pi * (k / 60))
y = 230 - 170 * SIN(2 * pi * (k / 60)) * 5 / 16
CIRCLE (x, y), 4, 9, , , 5 / 16
CIRCLE (x, y), 8, 13, , , 5 / 16
NEXT
FOR i = 1 TO 100000: NEXT
FOR n = 1 TO 2
r = 0
IF age <= 20 THEN candle = age ELSE candle = CINT(age * 2 / 5)
r: IF age > 20 AND r = 1 THEN
candle = age - candle
rcake = 150
  ELSE rcake = 95
END IF
FOR k = 1 TO candle
x = 320 - rcake * COS(2 * pi * (k / candle - 1 / (candle * 1.3)))
y = 230 - rcake * SIN(2 * pi * (k / candle - 1 / (candle * 1.3))) * 5 / 16
IF age = 1 THEN x = 320: y = 230
IF n = 2 THEN
y = y - 54
PRESET (x, y), 14
FOR i = 180 TO 50 STEP -10
DRAW "R1TA" + STR$(i)
NEXT
FOR i = 60 TO 150 STEP 10
DRAW "R1TA" + STR$(i)
NEXT
FOR i = 0 TO -140 STEP -10
DRAW "R2TA" + STR$(i)
NEXT
PAINT (x, y - 7), 14
PAINT (x, y - 2), 14
END IF
IF n <> 2 THEN
SOUND 40, 1
FOR height = 1 TO 50
CIRCLE (x, y - height), 4, 4, , , 5 / 16
PAINT (x, y - height), 4
NEXT
LINE (x, y - 50)-(x, y - 54), 10
END IF
FOR i = 1 TO 100000: NEXT
NEXT
IF r <> 1 AND age > 20 THEN r = 1: GOTO r
NEXT
PLAY "T100MN"
PLAY "O2G8G8A4G4>C4<B4P4"
PLAY "G8G8A4G4>D4C4P4"
PLAY "<G8G8>G4E4C4<B4A4"
PLAY ">F8F8E4C4D4C2"
FOR i = 1 TO 100000: NEXT
COLOR 4, 2
FOR n = 1 TO LEN(text$)
SOUND 100, .2
LOCATE 5, 16
PRINT LEFT$(text$, n);
FOR i = 1 TO 50000: NEXT
NEXT
PRINT : PRINT
COLOR 4, 2
FOR n = 1 TO LEN(name2$)
SOUND 100, .2
LOCATE 7, 50
PRINT LEFT$(name2$, n)
FOR i = 1 TO 50000: NEXT
NEXT
COLOR 4, 2
FOR n = 1 TO LEN(d$)
SOUND 100, .2
LOCATE 8, 55
PRINT LEFT$(d$, n)
FOR i = 1 TO 50000: NEXT
NEXT
FOR i = 1 TO 250000: NEXT
FOR i = 0 TO 320
LINE (0, 0)-(i, 479), 5, BF
LINE (639, 0)-(639 - i, 349), 5, BF
NEXT
FOR i = 1 TO 100000: NEXT
COLOR 14, 5
LOCATE 14, 30
PRINT "HOW ABOUT THE CAKE?"
LOCATE 16, 30
PRINT "GOOD-BYE!"
FOR i = 1 TO 250000: NEXT
END

我来回复

您尚未登录,请登录后再回复。点此登录或注册