Pixilang/命令詳細列表
(引數在括號內)
dot (x,y,color) - 繪製一個點。例如:dot(10,20,#FFFF00)
get_dot (x,y) - 獲取座標x,y處的畫素顏色
fps - 獲取當前的幀率
frame (delay,clip_x,clip_y,clip_xsize,clip_ysize) - 重繪螢幕並暫停,尤其用於幀切換。1000 - 一秒,500 - 半秒,0 - 不暫停。請注意,在第一次呼叫frame()之前,螢幕上不會顯示任何內容。示例
frame(500) //Full screen redraw after 0.5 seconds frame(500,10,10,32,32) //Redraw region with coordinates x=10,y=10,xsize=32,ysize=32
clear (color) - 清除螢幕。例如:clear(#FFFF00)
print (text,x,y,color) - 在x, y座標處列印文字。例如:print("HELLO!",10,10,#ffffff) 您也可以列印變數的值。只需在字串中寫入$X,其中X是變數的名稱。例如:print("VALUE OF b=$b",10,10,#ffffff)
line (x1,y1,x2,y2,color) - 繪製一條線。例如:line(0,0,10,10,#FFFF00)
box (x1,y1,xsize,ysize,color) - 繪製一個矩形。例如:box(0,0,10,10,#FFFF00)
fbox (x1,y1,xsize,ysize,color) - 繪製一個填充矩形。例如:box(0,0,10,10,#FFFF00)
triangle (x1,y1,x2,y2,x3,y3,color) - 繪製一個填充三角形
pixi_triangle (x1,y1,tx1,ty1,x2,y2,tx2,ty2,x3,y3,tx3,ty3,image,frame) - 繪製一個紋理三角形。紋理座標:tx1, ty1, tx2, ty2, tx3, ty3。紋理來源是“image”引數。
triangles3d (vertexes,triangles), pixi_triangles3d (vertexes,triangles,pixi,frame) - 從數值陣列vertexes和triangles繪製顏色或pixi紋理三角形。
//structure of array "vertexes": X, Y, Z, texture_X, texture_Y, 0, 0, 0, X, Y, Z, texture_X, texture_Y, 0, 0, 0, ... //structure of array "triangles": V1, V2, V3, COLOR, TRANSPARENCY, 0, 0, ORDER, V1, V2, V3, COLOR, TRANSPARENCY, 0, 0, ORDER, ... //V1..V3 - numbers of vertexes. ORDER - number of triangle (use sort_triangles for automatic fill this value) //X,Y,Z - fixed point integers
sort_triangles (vertexes,triangles) - 根據Z座標對三角形進行排序(在triangles陣列中填充ORDER值)。
save_screen(filename,x,y,xsize,ysize) - 將螢幕的一部分儲存到文字檔案
set_screen (some_image) - 將螢幕緩衝區設定為選定的影像。0 - 預設螢幕
make_pixi (text_source,alpha_pixi,transparent_color) - 將文字字串轉換為具有選定透明顏色和alpha通道的彩色影像。
警告:此命令將黑色畫素轉換為深藍色(我們將其視為黑色)。
輸入文字字串的符號
0,1,2,3,4,5,6,7,8,9 - 灰度;
.(點) - 透明顏色;
其他符號 - 具有顏色的變數的名稱
make_ascii_pixi (text_source,color_pixi) - 與前面的命令相同,但影像將以ASCII文字模式顯示。每個符號的顏色都在color_pixi中。示例
text = "Hello World!" text_color = "123456789123" make_ascii_pixi( text, text_color )
new_pixi (xsize,ysize,frames) - 建立一個具有選定大小和幀數的新影像。例如:bird = new_pixi( 32, 32, 4 )
load_pixi (filename) - 從GIF或JPG檔案載入影像
remove_pixi (pixi) - 刪除pixi容器
resize_pixi (pixi,xsize,ysize,mode) - 調整圖形pixi容器的大小;xsize,ysize - 新尺寸(畫素)。模式:0 - 調整大小後清除pixi。
clone_pixi (pixi,clone_alpha) - 克隆pixi容器。clone_alpha值:0 - 不克隆alpha通道影像;1 - 克隆alpha通道影像。例如:new_image = clone_pixi( dog, 1 )
get_pixi_xsize (image) - 獲取影像寬度(畫素)。例如:xsize = get_pixi_xsize( dog )
get_pixi_ysize (image) - 獲取影像高度(畫素)。例如:ysize = get_pixi_ysize( dog )
get_pixi_frames (image) - 獲取影像中的幀數。例如:frames = get_pixi_frames( dog )
get_pixi_alpha (image) - 獲取用作選定影像的alpha通道的影像。例如:alpha = get_pixi_alpha( dog ) pixi( alpha, 10, 10, 1 )
pixi_alpha (image,new_alpha) - 為選定影像設定alpha通道(new_alpha)影像
pixi_transp (image,transp,transp_color) - 設定選定影像的透明顏色。transp - 透明度開/關(1/0)。transp_color - 透明顏色
pixi (image,x,y,pixel_size,pixel_size_correction), fpixi (image,x,y,pixel_size,pixel_size_correction,frame) - 繪製圖像。frame - 幀編號(0是第一幀)。在“pixi”命令中,幀編號自動計算。畫素 - 它是文字字串,將被識別為畫素陣列。pixel_size - 畫素大小(1,2,3,4,5...)。pixel_size_correction - 固定點(1=256)新增到pixel_size。警告:帶有畫素陣列的文字字串將轉換為更方便pixi/fpixi命令的特殊格式。讓我們看看例子
//LETS CREATE AN ANIMATION THAT CONTAINS 5 FRAMES. SOMETHING LIKE A SMALL FLYING BIRD :) //FRAMES MUST BE DIVIDED BY "+" SYMBOL //SYMBOL "." - TRANSPARENT PIXEL //OTHER SYMBOLS - NAMES OF VARIABLES WITH COLORS //OK. NOW ASSIGN RED COLOR TO THE "B" VARIABLE: B = #FF0000 //BIRD: t = " B......B .B....B. ..BBBB.. + ........ BB....BB ..BBBB.. + ........ ........ BBBBBBBB + ........ ........ ...BB... BBB..BBB + ........ BB....BB ..BBBB.. " //CONVERT IT TO IMAGE: make_pixi( t ) //AND DRAW RESULTING THING TO THE SCREEN: loop_marker: clear(BLACK) pixi(t,10,10) frame(100) go loop_marker
get_window_xsize - 獲取使用者視窗寬度(畫素)
get_window_ysize - 獲取使用者視窗高度(畫素)
get_color (r,g,b) - 返回從r,g,b(紅、綠、藍)值轉換的顏色值
get_red (color) - 獲取選定顏色的紅色分量(0..255)
get_green (color) - 獲取選定顏色的綠色分量(0..255)
get_blue (color) - 獲取選定顏色的藍色分量(0..255)
get_blend (color1,color2,val) - 獲取一個新的顏色,該顏色介於color1和color2之間。val - 與color1和color2的接近程度:0 - 與color1最接近;256 - 與color2最接近
transp (value) - 設定後續命令的透明度。值可以從0到255;0 - 無可見... 255 - 可見
effector (color,power,type,x,y,xsize,ysize,xadd) - 用於使用標準圖形效果的命令。color - 效果的顏色。power - 效果的強度(從0到256)。type:0 - 噪聲;1 - 水平模糊;2 - 垂直模糊。x,y,xsize,ysize - 工作區域。xadd - 點之間的距離。
pixel_shader (pixel_shader_subprogram) - 為所有pixi和紋理三角形啟用軟體畫素著色器(版本PS1)。pixel_shader_subprogram - 使用者定義的子程式。pixel_shader_subprogram的輸入引數:PS_T - 帶有紋理的pixi容器編號;PS_TX - 紋理上的當前X座標(定點);PS_TY - 紋理上的當前Y座標(定點);PS_TP - 紋理中的當前指標;PS_P - 螢幕上的當前指標。輸出引數:PS_R - 結果顏色。
示例
pixel_shader( GLASS_PIXEL_SHADER ) //Enable glass pixel shader ... pixel_shader( -1 ) //Disable pixel shaders GLASS_PIXEL_SHADER: v = get_red( PS_T[ PS_TP - 1 ] ) - get_red( PS_T[ PS_TP + 1 ] ) PS_R = get_blend( scr0[ PS_P + get_red( PS_T[ PS_TP ] ) / 8 ], WHITE, v ) ret
pixi_font (image) - 設定新的字型影像(動畫pixi容器)。字型是等寬字型。字型中的每個符號 - 動畫pixi容器中的幀。
get_pixi_font - 獲取當前字型影像
t_reset - 重置變換
t_rotate_x (angle,x,y,z), t_rotate_y (angle,x,y,z), t_rotate_z (angle,x,y,z) - 新增旋轉變換(圍繞X、Y或Z軸)。角度為整數:512 = 2*PI。旋轉中心為x,y,z
t_translate (x,y,z) - 新增平移變換。x,y,z是定點整數。
t_scale (x,y,z) - 新增縮放變換。x,y,z是定點整數:256 = 1.0(正常縮放);512 = 2.0(2倍縮放)
t_get_matrix (m), t_set_matrix (m), t_mul_matrix (m) - 對變換矩陣進行操作(4x4單元格 - 16個整數的陣列)。t_get_matrix - 將矩陣獲取到陣列m中。t_set_matrix - 從陣列m中設定矩陣。t_mul_matrix - 將當前矩陣與陣列m中的矩陣相乘。
t_get_x (x,y,z), t_get_y (x,y,z), t_get_z (x,y,z) - 使用座標x,y,z(定點整數)變換點並返回新的座標x、y或z。
new_string (size) - 建立空字串。size - 此字串中的符號數。例如:str = new_string( 10 )
get_string_size (string) - 獲取字串的大小(字元數)。例如:strsize = get_string_size( "nothing but here" )
陣列是任何資料儲存(pixi容器)。陣列示例
- 影像 - 畫素儲存;
- 字串 - 符號儲存;
- 數字 - 數字儲存。
new_array (len) - 建立一個新的32位數字陣列(數值pixi容器)。len - 數字的數量。請注意,如果您在使用陣列之前沒有使用new_array先建立它,Pixilang不會報錯,但您會得到垃圾資料。例如:array = new_array( 256 )
get_array_size (array) - 獲取數值陣列的大小(數字數量)
start_timer (t) - 啟動計時器 t。例如:start_timer(3)
get_timer (t) - 獲取計時器 t 的值。例如:get_timer(3) 例如值:1000 - 一秒,500 - 半秒。
get_seconds - 獲取當前秒數
get_minutes - 獲取當前分鐘數
get_hours - 獲取當前小時數
handle_pen_keys (button_down_handler,pen_move_handler,button_up_handler), handle_keys (...) - 處理當前幀中發生的所有滑鼠(觸控筆)事件。這些命令的引數是使用者定義的程式(子程式) - 處理程式。
例如:handle_pen_keys( {x=get_pen_x}, 0, 0 )
get_pen_x, gpx - 獲取滑鼠(或觸控筆)的當前 x 座標
get_pen_y, gpy - 獲取滑鼠(或觸控筆)的當前 y 座標
get_pen_region (x,y,xsize,ysize), gpr (x,y,xsize,ysize) - 如果滑鼠(或觸控筆)指標在選定區域內,則返回 1
get_pen_key, gpk - 獲取滑鼠(或觸控筆)的當前按鍵狀態;1 - 按下按鍵,或 0 - 未按下按鍵
handle_hard_keys (button_down_handler,button_up_handler) - 處理當前幀中發生的所有鍵盤事件。工作方式類似於 handle_pen_keys。使用 get_hard_key(或 ghk)獲取當前按鍵程式碼。
例如:handle_hard_keys( {key_code=get_hard_key}, 0, 0 )
get_hard_key, ghk - 獲取當前按鍵程式碼。按鍵程式碼是標準的 ASCII 程式碼或以下之一
256: F1 257: F2 258: F3 259: F4 260: F5 261: F6 262: F7 263: F8 264: UP 265: DOWN 266: LEFT 267: RIGHT 268: INSERT 269: DELETE 270: HOME 271: END 272: PAGEUP 273: PAGEDOWN 274: CAPS
如果按下 SHIFT,則將 512 新增到按鍵程式碼。如果按下 CTRL,則將 1024 新增到按鍵程式碼。
video_export_gif (filename,x,y,xsize,ysize), video_export_avi (filename,x,y,xsize,ysize) - 開啟將所有幀匯出到選定動畫的功能。GIF 檔案或 AVI 檔案(目前 AVI 僅在 Windows 上工作)。
示例
//Save full screen:
video_export_gif("my_video.gif")
//Save selected region:
video_export_gif("my_video.gif",-10,-10,32,32)
每執行一次 "frame" 命令,幀將儲存到 GIF 檔案中。
pause_video_export - 暫停影片匯出。
resume_video_export - 恢復影片匯出。
stop_video_export - 停止影片匯出並儲存到檔案。
video_export_fps (fps) - 設定匯出到 AVI 檔案的每秒幀數(預設 FPS 為 30)。
video_export_realtime (rt) - 設定即時 AVI 匯出模式。
示例
video_export_realtime( 1 ) //Set realtime export mode. AVI file will be without sound video_export_realtime( 0 ) //Set non-realtime export mode. AVI file will be with sound
video_export_dither (dither) - 在影片匯出期間開啟/關閉抖動。開啟示例:video_export_dither(1) 關閉示例:video_export_dither(0)
video_export_hq (highquality) - 開啟/關閉 GIF 的高質量影片匯出。開啟示例:video_export_hq(1) 關閉示例:video_export_hq(0)
load_music (filenamem,slot) - 載入 XM 或 MOD 格式的音樂。slot - 同時播放音樂的插槽編號(從 0 到 15)。
play_music (slot)
stop_music (slot)
music_volume (volume,slot) - 設定音樂音量(從 0 到 255)
get_music_pattern (slot)
get_music_position (slot)
send_sound (sound_pixi,freq,channels,loop) - 將 sound_pixi(包含某些聲音片段的 pixi 容器)傳送到全域性聲音緩衝區。freq - 選定聲音片段的取樣頻率。channels - 通道數(1 - 單聲道,2 - 立體聲)。loop - 播放後是否從全域性聲音緩衝區中刪除選定聲音片段?如果 loop = 1,則選定聲音片段將無限迴圈播放。此命令的返回值是選定聲音片段在全域性聲音緩衝區中的 ID。send_sound_to (sound_id, sound_pixi, freq, channels, loop) - 與上一條命令相同,但手動設定全域性聲音緩衝區中的位置(buffer_id)。
示例
sound_id = send_sound( some_sound, 44100, 2, 0 ) send_sound_to( sound_id, new_sound, 44100, 2, 0 ) //Overwrite some_sound with new_sound
get_sound_status (sound_id) - 獲取選定聲音中當前的播放位置。
示例
sound_id = send_sound(sound,44100,2,0) position = get_sound_status( sound_id )
sound_volume (volume) - 設定聲音音量(從 0 到 256)
示例。建立 8 位聲音
snd = new_string( 256 ) //Sound size is 256 samples //Amplitude in 8bit sound is a value from -127 to 127 send_sound( snd, 44100, 1, 1 )
建立 32 位聲音
snd = new_array( 256 ) //Amplitude in 32bit sound is a value from -32767 to 32767 send_sound( snd, 44100, 1, 1 )
fopen, fclose, fgetc, fputc, fseek, ftell, feof - 用於處理檔案的標準 POSIX 函式。有關更多資訊,請參閱任何 C/C++ 手冊。
set_disk0 (TAR_file_name) - 設定將載入為虛擬磁碟 0 的 TAR 歸檔檔案的名稱。
示例
set_disk0( "archive.tar" ) //archive.tar contains some files and PIC.JPG img = load_pixi( "0:/PIC.JPG" ); //Load PIC.JPG from the virtual disk 0
file_dialog (filename,dialogname,mask,id) - 開啟檔案選擇對話方塊。filename - 選擇的檔名的目標容器。dialogname - 對話方塊名稱。mask - 檔案型別掩碼(例如:“gif/jpg”)。id - 用於儲存當前對話方塊狀態的檔名稱。返回值:1 - 檔案選擇成功;0 - 檔案未選擇。
示例
filename = "................................"
if( file_dialog( filename, "Select graphics file", "jpg/gif", "gfx_files_dialog" ) )
{ /* file selected. Name in the filename variable now*/ }
else
{ /* file not selected */ }
sin (angle) - 獲取整數正弦值。角度值:512 = 2*PI。返回值:-256...0...256
cos (angle) - 獲取整數餘弦值。角度值:512 = 2*PI。返回值:-256...0...256
csin (angle), ccos (angle) - 與 sin 和 cos 相同,但精度較低。角度值:256 = 2*PI。返回值:-128...0...128
rand - 獲取隨機數(從 0 到 32768)
rand_seed (seed) - 設定隨機種子
stop - 停止程式執行 :(
halt - 與 stop 相同。
exit (exit_code) - 退出到作業系統;exit(1) - 以退出程式碼 1 退出到作業系統。
noesc (no) - 啟用/停用 ESC 退出;noesc(0) - ESC 退出;noesc(1) - ESC 不退出。