博文
SDL在WINDOWS环境下的设置(DevCpp)(2007-10-23 10:35:00)
摘要:好多人问关于SDL在WINDOWS环境下的编译环境设置,
最近我有点“功课”,也必须在WINODWS下编译SDL程序,
有点心得,致那些热心于SDL 的朋友们。
以下是在DevCpp环境下的SDL设置(至于VC环境,没有实践,就不敢写了):
1.下载http://www.libsdl.org/release/SDL-1.2.12-win32.zip运行库,
运行SDL程序时压缩包里的sdl.dll要和程序在同一目录下。
2.下载http://www.libsdl.org/release/SDL-devel-1.2.12-mingw32.tar.gz开发库,
将解压后的SDL-1.2.xx目录下的include\SDL文件夹,及lib\*.*(下的所有文件)
分别拷到C:\devcpp(假设DevCPP装在C盘)文件夹下的include,lib文件夹下。
3.设置下DevCpp的连接器,写入 -lmingw32 -lSDLmain -lSDL -mwindows
就可以编译运行SDL程序了,头文件包含应该是<SDL/SDL.h>。......
GBK点阵字体的显示(2007-01-18 20:17:00)
摘要:下文转自SOHU论坛 , 软件开发 -> C/C++版原著者为该版副版主 爱在远方
一、汉字在计算机中的编码形式
我们都知道,在计算机中英文字符是用一个字节的ASCII码表示,该字节最高位一般用做奇偶校验,故实际是用7位码来代表128个字符的,但是对于众多的汉字,只有用两个字节才能表示,这样用两个字节来表示一个汉字的体制,国家制定了统一的标准,称为国标码。国标码规定,组成两个汉字代码的各字节最高位为0,这和英文字符表示方法相同,这就有可能把汉字的国标码看作两个ASCII码,为此又规定在计算机里表示汉字时,把最高位置1,表示该码是汉字,这种最高位为1的代码称为机器内的汉字代码,简称内码。计算机里汉字就是用内码表示的。
例如:“大”这个汉字,
国标码 3473 00110100 01110011
内码 B4F3 10110100 11110011
知道汉字在计算机里是用内码表示的以后,还需要知道具体汉字的结构。我国在1981年公布了《通讯用汉字字符集及其交换码标准》GB2312-80方案,里面规定了高频字、常用字、次常用字集合成汉字基本字符集(共6763个),再加上一些西文字母,希腊字母、日文字符、图形符号等一共700个。国家标准的汉字字符集在汉字......
SDL版本的扫雷程序(2007-01-01 23:53:00)
摘要:元旦才刚放假,说实话,我很闲……
所以又写了个扫雷,这个扫雷程序其实真要算是“初学者”级的了……
里面就用到了一个比较像样的算法,…
就是点一个空的时候把邻近的所有连通的空格全部显出……
其实聪明人一下子就知道是搜索了,深搜广搜都可以了……我用的是深搜……
呵呵,程序很简单,但我还是写了这么长,不知怎么搞地……
可能很多地方还可以精简吧……我没刻意去怎么精简它……
因为反正是好玩呀……呵呵,关键的深搜算法写得好一点就差不多了……
正好温习一下落了些时日的算法了……
程序运行状态:
源程序:bomb.cc
/***************************************************************************
* bomb.cc
* 扫雷
* Mon Jan 1 15:29:38 2007
* Copyright 2007 HuYinLin
* Email huyinlin@126.com
****************************************************************************/
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <iostream>
using namespace std;
#define FrameW 3 //边框厚
#define BASE_W 20 //小方块大小
#define LINE 16 //行数
#define COL 30 ......
SDL版本的俄罗斯方块程序(2007-01-01 00:49:00)
摘要:放元旦了……三天假,很闲……
其实要做的事实很多,都快期末考试了,可看着教材就不想看……
就花了点时间写了个俄罗斯方块程序了……
听有人说俄罗斯方块是初学程序设计语言去写的样本例子……
我真惭愧呀……我还花了两个下午来研究这个“初学者”级的程序……==||
不知道是那们人太牛了,还是我太逊了……
程序运行状态:
程序:tetris.cc
程序写得乱,我也懒得写注解了……因为总感觉人太逊了……
写得注解更要误导别人了……
可能受了那“牛人“打击了……
/***************************************************************************
* tetris.cc
*
* Sat Dec 30 19:31:35 2006
* Copyright 2006 HuYinLin
* Email huyinlin@126.com
****************************************************************************/
//俄罗斯方块程序
#include <SDL/SDL.h>
#include <iostream>
#include <SDL/SDL_image.h>
#include <SDL/SDL_mixer.h>
using namespace std;
#define HW 512
#define HH 704
#define BLOCK_W 32 //象素值
#define BLOCK_H 32
#define GAME_W 10 //BLOCK值
#define GAME_H 22
#define MAXUPDATES......
光栅图形显示模拟(2006-12-29 18:11:00)
摘要:为了学图形学方便,用SDL写了个光栅显示的模拟,
还花了几个下午来研究了下,主要就是坐标之间的
转换着实让人烦,开始写的一个因为烦透了,删了又重写过……
这个写得还算满意了,坐标之间的转换关系蛮方便地,
也可以从象素级别上刷写一张图象,作一堆杂七杂八的变换,
达到什么效果就看自己写的程序了……
这只是个学习的工具,自己写的图形程序可以直接用来试验,
没什么其它功能,就一个操作伪象素有点用……
呵呵,模拟的就是伪象素嘛……
两张图片:
//raster.h头文件
#include <SDL/SDL.h>
#include <stdlib.h>
#include <iostream>
#define SetR 100
#define SetG 255
#define SetB 255
#define FrameR 255
#define FrameG 0
#define FrameB 0
void init ();
void loop ();
void drawjay ();
void setpixel (int x, int y, Uint8 R = SetR, Uint8 G = SetG, Uint8 B = SetB);
void setpixel (int x, int y, Uint32 pixel);
void drawframe (int x, int y, Uint8 R = FrameR, Uint8 G = FrameG, Uint8 B =
FrameB);
void drawframe (int x, int y, Uint32 pixel);
int maxx ();
int minx ();
int maxy ();
int miny ();
//raster.cc程序文件
#include "raster.h"
#define HW 800 //hardware width
#define HH 600 //hardware high......
SDL 入门试验(2006-12-27 13:08:00)
摘要:一直想写图形方面的程序,又不想写窗口方面的,那种全是拖拉式控件,没什么
特别好玩地……,偶然间发现了SDL(Simple Directmedia Library)发现真是是我
想要地,呵呵,不像DirectX那样基于COM技术,我可不想为了写几个小程序就去
搞清烦透了的COM,最重要的是,我是LINUX系统,学COM没用场,呵呵……
最让人激动的是SDL竟然是跨平台的,WIN32下也可以用,这样,我在我的Gentoo
下写的程序完全就可以让别人在WIN32下编译运行了,真是PERFECT……
SDL是完全是C库,感觉蛮小地,很快就学会了……
只要会C,几乎一下午就可以写你自己的小游戏了(虽然这样,SDL算起来还是一个比较底层的库,你要自己控制所有的东西,一帧一帧的东西,你要全部自己来实现)……
虽然它是一个C库,但其它语言完全可以调用它……
下面是我在SDL网站上下的ALIENS游戏的自己重写,说我抄也无所谓了,
因为只要自己明白了其中的道理,都一样了(至少还花了一下午的写程序时间呀)……
算是SDL入门作品了(程序在Gentoo Linux 2006.1下SDL1.2.9编译运行通过,WIN32下没试,
没功夫去配置WIN下的SDL环境,网上很多这样的东西)
/***************************************************************************
* Copyright (C) 2006 by xhh *
* huyinlin@XHH *
* &nbs......