Copyright © All rights reserved | This template is made with by Colorlib

Next Big Event:

บทความในหมวด

HANDS ON DARKBASIC PRO V1

Hands On Darkbasic Pro V1

คำสั่งจัดการกรอบรูปภาพ

2010-05-09 Games 2,004

การสร้างกรอบรูป

SPRITE spriteno, x, y, imgno

เป็นการสร้างกรอบรูปเพื่อเก็บ image และนำไปแสดงผลที่ตำแหน่งใดๆ
spriteno เลขกำกับของกรอบรูป
imgno เลขกำกับของภาพ

load image "house.bmp",1
sprite 1,0,0,1
wait key
end


การเคลื่อนย้ายกรอบรูป

SPRITE spriteno, x, y, imgno

นำมาใช้ในการย้ายตำแหน่งอ้างอิงและการแสดงผลของ sprite ก็ได้

PASTE SPRITE spriteno, x, y

ใช้ในการเปลี่ยนตำแหน่งแสดงผลของ sprite โดยที่ไม่เปลี่ยนตำแหน่งอ้างอิง (ตำแหน่งอ้างอิงมีความสำคัญในการเช็คการชนของ sprite)

MOVE SPRITE spriteno, distance

ใช้เปลี่ยนตำแหน่งของ sprite โดย distance คือระยะทางในหน่วย pixel ซึ่งค่า + จะเป็นการขยับขึ้น ส่วนค่า - จะเป็นการขยับลง

ROTATE SPRITE spriteno, angle

ใช้หมุน sprite ค่า angle คือค่ามุมในหน่วย องศา ซึ่งค่า + จะเป็นมุมตามเข็มนาฬิกา ส่วนค่า - จะเป็นมุมทวนเข็มนาฬิกา



การย้ายจุดอ้างอิงกรอบรูป

โดยทั่วไปจุดอ้างอิงของ sprite จะอยู่ที่มุมซ้ายบนของ sprite เราสามารถเปลี่ยนจุด origin ของ sprite ด้วยคำสั่ง

 

OFFSET SPRITE spriteno, xoffset, yoffset


xoffset คือค่าระยะในแนวแกนx ที่เราต้องการเปลี่ยนให้เป็นจุด origin ของ sprite
yoffset คือค่าระยะในแนวแกนy ที่เราต้องการเปลี่ยนให้เป็นจุด origin ของ sprite

 

 

Sprite Reflection

MIRROR SPRITE spriteno ใช้ทำการกลับรูปจากซ้ายไปขวา

FLIP SPRITE spriteno ใช้ทำการกลับรูปบนลงล่าง

ในกรณีที่ sprite มีการหมุนผลของคำสั่ง MIRROR และ FLIP ยังคงได้ผลตามเดิม

 

 

Sprite Background Transparency

กรณี sprite ของเรามีพื้นหลังสีดำ จะทำให้ พื้นหลังของ sprite กลายเป็นภาพโปร่งแสง

 

 

Resizing Sprites (เปลี่ยนขนาดของ Sprite)

SCALE SPRITE spriteno, percentage

percentage ขนาดของภาพใหม่ในหน่วย %

STRETCH SPRITE spriteno, wperc, hperc

wperc, hperc ความกว้าง - สูงของภาพใหม่ในหน่วย %

SIZE SPRITE spriteno, wsize, hsize

wsize, hsize ความกว้าง - สูงของภาพใหม่ในหน่วย %



Changing Transparency and Colour Brightness (การเปลี่ยนค่าโปร่งแสง และความสว่างของสี)

SET SPRITE ALPHA spriteno, alphavalue

alphavalue ค่าความโปร่งแสง 0 - 255 (ค่า 0 โปร่งแสงมากที่สุด)

SET SPRITE DIFFUSE spriteno, red, green,blue

red, green, blue ค่าความสว่างของสี 0 - 255 (ค่า 0 จะไม่แสดงสีนั้นๆ)

 

 

Showing and Hiding Sprites (การแสดงและซ่อน sprite)

HIDE SPRITE spriteno
SHOW SPRITE spriteno
HIDE ALL SPRITES
SHOW ALL SPRITES


Duplicating a Sprite ( การเพิ่ม sprite )

CLONE SPRITE origspriteno, newspriteno

origspriteno เลขกำกับของ sprite ต้นฉบับ
newspriteno เลขกำกับของ sprite ใหม่

เมื่อทำการ clone sprite จะยังคงแสดงผลทับกันอยู่ เราต้องกำหนดตำแหน่งให้ sprite ใหม่อีกทีหนึ่ง

 

 

ตัวอย่างการควบคุม sprite จากผู้เล่น

1. Free Movement

load image "neo101.bmp",1
rem *** ใช้ตัวแปร x,y กำหนดตำแหน่งของ sprite ***
x=200
y=200
sprite 1,x,y,1
offset sprite 1,sprite width(1)/2,sprite height(1)/2

do
key=scancode()
select key
   rem up (f)
   case 33
   rem เป็นการลดค่าตัวแปร
      dec y,5
   endcase
   rem down (c)
   case 46
   rem เป็นการเพิ่มค่าตัวแปร
      inc y,5
   endcase
   rem left (z)
   case 44
      dec x,5
   endcase
   rem right (x)
   case 45
      inc x,5
   endcase
endselect
sprite 1,x,y,1
loop

2. Velocity ( อัตราเร็ว )

type PositionType
 x as integer
 y as integer
endtype

type VelocityType
 xoffset as float
 yoffset as float
endtype

set display mode 1024,768,32
screenwidth=1024
screenheight=768

load image "pig.png",1

post as PositionType
velocity as VelocityType

post.x=1024/2
post.y=768/2
velocity.xoffset=6
velocity.yoffset=-8

sprite 1,post.x,post.y,1
offset sprite 1,sprite width(1)/2,sprite height(1)/2

do
inc post.x,velocity.xoffset
inc post.y,velocity.yoffset

rem *** เช็คให้เปลี่ยนทิศทางเมื่อมี sprite ชนขอบจอแนวแกนx
if post.x < sprite width(1)/2 or post.x > screenwidth-sprite width(1)/2
velocity.xoffset = -velocity.xoffset
endif

rem *** เช็คให้เปลี่ยนทิศทางเมื่อมี sprite ชนขอบจอแนวแกนy
if post.y < sprite height(1)/2 or post.y > screenheight-sprite height(1)/2
velocity.yoffset = -velocity.yoffset
endif

sprite 1,post.x,post.y,1
wait 10
loop


sprite command | Hands On Darkbasic Pro V1

เข้าชมแล้ว 2,935,779 ครั้ง | ทั้งเว็บออนไลน์   4 ท่าน | หน้านี้ออนไลน์   1 ท่าน
Page generated in 0.0274 seconds ! ( 13 query)