日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用SDL打造游戏世界之入门篇 - 6

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用SDL打造游戏世界之入门篇 - 6 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本例中的源代碼如下:

#include <stdio.h>
#include <stdlib.h>
#include "SDL.h"

void Slock(SDL_Surface *screen)
{
if ( SDL_MUSTLOCK(screen) )
{
if ( SDL_LockSurface(screen) < 0 )
{
return;
}
}
}
void Sulock(SDL_Surface *screen)
{
if ( SDL_MUSTLOCK(screen) )
{
SDL_UnlockSurface(screen);
}
}
void DrawPixel(SDL_Surface *screen, int x, int y,
Uint8 R, Uint8 G, Uint8 B)
{
Uint32 color = SDL_MapRGB(screen->format, R, G, B);
switch (screen->format->BytesPerPixel)
{
case 1: // Assuming 8-bpp
{
Uint8 *bufp;
bufp = (Uint8 *)screen->pixels + y*screen->pitch + x;
*bufp = color;
}
break;
case 2: // Probably 15-bpp or 16-bpp
{
Uint16 *bufp;
bufp = (Uint16 *)screen->pixels + y*screen->pitch/2 + x;
*bufp = color;
}
break;
case 3: // Slow 24-bpp mode, usually not used
{
Uint8 *bufp;
bufp = (Uint8 *)screen->pixels + y*screen->pitch + x * 3;
if(SDL_BYTEORDER == SDL_LIL_ENDIAN)
{
bufp[0] = color;
bufp[1] = color >> 8;
bufp[2] = color >> 16;
} else {
bufp[2] = color;
bufp[1] = color >> 8;
bufp[0] = color >> 16;
}
}
break;
case 4: // Probably 32-bpp
{
Uint32 *bufp;
bufp = (Uint32 *)screen->pixels + y*screen->pitch/4 + x;
*bufp = color;
}
break;
}
}
void DrawScene(SDL_Surface *screen)
{
Slock(screen);
for(int x=0;x<640;x++)
{
for(int y=0;y<480;y++)
{
DrawPixel(screen, x,y,y/2,y/2,x/3);
}
}
Sulock(screen);
SDL_Flip(screen);
}

int main(int argc, char *argv[])
{
if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 )
{
printf("Unable to init SDL: %s"n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
SDL_Surface *screen;
screen=SDL_SetVideoMode(640,480,32,SDL_HWSURFACE|SDL_DOUBLEBUF);
if ( screen == NULL )
{
printf("Unable to set 640x480 video: %s"n", SDL_GetError());
exit(1);
}
int done=0;
while(done == 0)
{
SDL_Event event;
while ( SDL_PollEvent(&event) )
{
if ( event.type == SDL_QUIT ) { done = 1; }
if ( event.type == SDL_KEYDOWN )
{
if ( event.key.keysym.sym == SDLK_ESCAPE ) { done = 1; }
}
}
DrawScene(screen);
}
return 0;
}

程序運行結果如下:

更多內容請看游戲開發、網絡游戲攻略、Solaris基礎知識入門專題,或進入討論組討論。

轉載于:https://www.cnblogs.com/Henrya2/archive/2009/03/24/1420868.html

總結

以上是生活随笔為你收集整理的使用SDL打造游戏世界之入门篇 - 6的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产无码精品久久久 | 全黄一级播放 | 日韩在观看线 | 先锋资源av网 | 欧美日韩一区三区 | 日韩欧美在线观看一区二区三区 | 国产美女黄色片 | 激情av中文字幕 | 亚洲欧美综合一区 | 免费精品在线视频 | 美国做爰xxxⅹ性视频 | 91色在线观看 | 日本成人黄色 | 婷婷俺也去| 亚洲黄色精品视频 | av日韩一区| 国产又爽又黄的视频 | 嫩草综合 | 日本老妇性生活 | 一区二区三区在线播放视频 | 能直接看的av网站 | a级片在线播放 | 久久久性色精品国产免费观看 | 日本在线看片 | 天天天操 | 91久久久久国产一区二区 | 亚洲国产三区 | 男人天堂影院 | 精品国产伦一区二区三区 | 日韩网站免费观看 | 最污的网站| 在线观看av黄色 | 精产国品一二三区 | 香蕉久久av一区二区三区 | 26uuu欧美日本 | 色婷久久| 免费国产在线视频 | 精品无码人妻一区 | 亚洲最大成人综合网 | 91免费网站在线观看 | 免费的黄色片 | 欧美老肥妇做爰bbww | 操天天操 | 黄色日韩| 九九视频精品在线 | jizz日本18 | 丝袜黄色片 | 九九精品免费 | 日日操夜夜草 | 欧美啪啪网站 | 中文字幕一区二区人妻 | 中文字幕av久久 | 日韩在线播放视频 | 国产 日韩 欧美 精品 | 老外黄色一级片 | 天堂在线视频免费 | 国产伦精品一区二区三区千人斩 | 国产手机av | 亚洲精品v天堂中文字幕 | 成人h视频 | 午夜欧美成人 | 午夜视频福利在线 | 人人干97| 久久九九色 | 成人h片 | 美女十八毛片 | 黄色片欧美 | 夜色伊人| 91福利网| 四虎免费久久 | 国产1区2区3区 | 亚洲大尺度视频 | 制服丝袜先锋 | 日韩狠狠操 | 中日精品一色哟哟 | 一边顶弄一边接吻 | 欧美高清视频一区二区 | 亚洲国产精品成人av | 国产在线免费视频 | 精品女同一区二区 | 一级视频黄色 | 国产精品老熟女视频一区二区 | 欧美成人性生活片 | 2017狠狠干| a猛片免费播放 | 在线免费视频一区 | 国产日韩欧美亚洲 | 91香蕉嫩草 | 日韩乱码视频 | 国产高清一区在线观看 | 亚洲黄色一级大片 | 黄色91免费版 | 欧美日本另类 | 亚洲第一黄色片 | 国产高清自拍视频 | 国内国产精品天干天干 | 成人三级图片 | 国产视频福利在线 | 欧美成人一二三区 |