Weekly Qbasic and Qb64 Lesson Topics
April 18, 2024, 05:22:38 pm
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Want to see a specific Tutorial? ASK!
 
  Home Help Search Arcade Links Staff List Login Register  

PacMan2f This one moves with arrow keys

Pages: 1 2 [3] 4
  Print  
Author Topic: PacMan2f This one moves with arrow keys  (Read 3634 times)
Guest
Guest
« Reply #30 on: March 19, 2011, 10:45:25 am »


    Here's an example of the new PacMan graphics. They are 40x40 and once decided the exact size they will be scaled to we will incorporate them. I was thinking of 20x20 but that may be too small. We may have to go a bigger window like 1200 x 800 and keep them as 40x40. Anyway here's a demo of them.
Code:
REM
DEFLNG A-Z

Sprites& = _LOADIMAGE("Pacmanss-2-40x40.bmp", 32)
Video& = _NEWIMAGE(640, 480, 32)
SCREEN Video&
GPlace = 1: gx = 320: gy = 10: GCycle = 0
PPlace = 1: px = 320: py = 100: PCycle = 0
DO
  _LIMIT 30
  GOSUB GMove
  GOSUB PMove
  CLS
  GCycle = GCycle + 1: IF GCycle = 3 THEN GCycle = 1
  PCycle = PCycle + 1: IF PCycle >= 4 THEN PCycle = 1
  'move ghost
  SELECT CASE GPlace
    CASE 1 '-----------------------------------------------------------------------------Face right
      IF GCycle = 1 THEN
        _PUTIMAGE (gx, gy)-(gx + 39, gy + 39), Sprites&, Video&, (82, 0)-(121, 39)
      ELSE
        _PUTIMAGE (gx, gy)-(gx + 39, gy + 39), Sprites&, Video&, (123, 0)-(162, 39)
      END IF
    CASE 2 '-----------------------------------------------------------------------------Face down
      IF GCycle = 1 THEN
        _PUTIMAGE (gx, gy)-(gx + 39, gy + 39), Sprites&, Video&, (246, 0)-(285, 39)
      ELSE
        _PUTIMAGE (gx, gy)-(gx + 39, gy + 39), Sprites&, Video&, (287, 0)-(326, 39)
      END IF
    CASE 3 '-----------------------------------------------------------------------------Face left
      IF GCycle = 1 THEN
        _PUTIMAGE (gx, gy)-(gx + 39, gy + 39), Sprites&, Video&, (0, 0)-(39, 39)
      ELSE
        _PUTIMAGE (gx, gy)-(gx + 39, gy + 39), Sprites&, Video&, (41, 0)-(80, 39)
      END IF
    CASE 4 '-----------------------------------------------------------------------------Face up
      IF GCycle = 1 THEN
        _PUTIMAGE (gx, gy)-(gx + 39, gy + 39), Sprites&, Video&, (164, 0)-(203, 39)
      ELSE
        _PUTIMAGE (gx, gy)-(gx + 39, gy + 39), Sprites&, Video&, (205, 0)-(244, 39)
      END IF
  END SELECT
  'move pac man
  SELECT CASE PPlace
    CASE 1
      IF PCycle = 1 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (164, 164)-(203, 203)
      IF PCycle = 2 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (205, 164)-(244, 203)
      IF PCycle = 3 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (246, 164)-(285, 203)
    CASE 2
      IF PCycle = 1 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (164, 164)-(203, 203)
      IF PCycle = 2 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (205, 164)-(244, 203)
      IF PCycle = 3 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (246, 164)-(285, 203)

    CASE 3
      IF PCycle = 1 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (203, 164)-(164, 203)
      IF PCycle = 2 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (244, 164)-(205, 203)
      IF PCycle = 3 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (285, 164)-(246, 203)
    CASE 4
      IF PCycle = 1 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (203, 164)-(164, 203)
      IF PCycle = 2 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (244, 164)-(205, 203)
      IF PCycle = 3 THEN _PUTIMAGE (px, py)-(px + 39, py + 39), Sprites&, Video&, (285, 164)-(246, 203)
  END SELECT
  _DISPLAY
LOOP UNTIL _KEYDOWN(27)
SLEEP
SYSTEM

GMove:
SELECT CASE GPlace
  CASE 1
    gx = gx + 4
    IF gx >= 590 THEN gx = 590: GPlace = 2
  CASE 2
    gy = gy + 4
    IF gy >= 430 THEN gy = 430: GPlace = 3
  CASE 3
    gx = gx - 4
    IF gx <= 10 THEN gx = 10: GPlace = 4
  CASE 4
    gy = gy - 4
    IF gy <= 10 THEN gy = 10: GPlace = 1
END SELECT
RETURN

PMove:
SELECT CASE PPlace
  CASE 1
    px = px + 4
    IF px >= 540 THEN px = 540: PPlace = 2
  CASE 2
    py = py + 4
    IF py >= 380 THEN py = 380: PPlace = 3
  CASE 3
    px = px - 4
    IF px <= 100 THEN px = 100: PPlace = 4
  CASE 4
    py = py - 4
    IF py <= 100 THEN py = 100: PPlace = 1
END SELECT
RETURN
Here's the url to the image:http://dl.dropbox.com/u/10291175/PacManSS-2-40x40.rar


« Last Edit: September 17, 2011, 09:59:10 am by GarrisonRicketson » Report Spam   Logged

Pages: 1 2 [3] 4
  Print  
 
Jump to:  

Powered by EzPortal
Bookmark this site! | Upgrade This Forum
SMF For Free - Create your own Forum


Powered by SMF | SMF © 2016, Simple Machines
Privacy Policy