- 博客(3)
- 资源 (23)
- 收藏
- 关注
原创 vs2015静态编译Qt5.7.1及使用
参考教程Qt 5.7.1/5.8.0/5.9.0 在 msvc2015/mingw32 方式下的静态编译过程
2017-08-04 14:42:59 5276 1
基于Tiny210开发板的led--流水灯
编写裸板程序 , 在 tiny210 开发板上 , 用核心板上的 4 个 LED 灯 , 生成一个 4 位 2 进制数计数器 , 以大约 1Hz 的频率 (1 次 / 秒 ) 计数 ( 显示 0,1,2,3...) 。
2014-10-21
c语言文件读写函数
字符读写函数:(fgetc和fputc)
fputc函数:把一个字符写到磁盘文件上。具体格式如下:fputc(ch,fp)
fgetc函数:从磁盘文件读取一个字符。其格式如下:ch=fgetc(fp)
字符串读写函数:(fgets和fputs)
fputs函数:一般格式为:fputs(str,fp)
fgets函数:一般格式为:fgets(str,n,fp)
读写数据块函数(fread和fwrite)
一般调用形式为:fread(buffer,size,count,fp)
fwrite(buffer,size,count,fp)
2014-09-28
飞翔的小鸟
#include "world.h"
#include <QPainter>
#include <QFile>
#include <QTextStream>
#include <QDataStream>
#include "bird.h"
#include <QDebug>
World::World(QWidget* parent): QWidget(parent)
{
//this->resize(432, 644);
this->setGeometry(400,200, 432,644);
bird = new Bird;
ground = new Ground;
c1 = new Column(0);
c2 = new Column(1);
gameoverImage.load(":gameover");
bgImage.load(":bg");
startImage.load(":start");
gameOver = false;
startGame = false;
score = 0;
score_label = new QLabel(this);
score_label->setGeometry(QRect(270,10,120,40));
score_label->setStyleSheet(QString::fromUtf8("font: 20pt \"Khmer OS System\";\n"
"color: rgb(85, 0, 255);"));
timer.setInterval(1000/70);
connect(&timer, SIGNAL(timeout()),
this, SLOT(run())); //一会写run
// timer.start();
QFile file("./score.dat");
if(!file.open(QFile::ReadOnly | QFile::Text)){
best_score = 0;
}else{
//QTextStream in(&file);
QDataStream in(&file);
in >> best_score;
qDebug() << "read...";
}
file.close();
}
World::~World(){
if(score > best_score)
save(score);
}
void World::save(unsigned short best){
QFile file("./score.dat");
if(!file.open(QFile::WriteOnly | QFile::Text)){
return;
}else{
// QTextStream out(&file);
QDataStream out(&file);
out << best;
//qDebug() << "write";
}
file.close();
}
//哑元函数
void World::paintEvent(QPaintEvent*){
QPainter painter(this);
painter.drawImage(0,0,bgImage);
//将画笔传给bird对象,由bird对象画出当前小鸟的图片
c1->paint(&painter);
c2->paint(&painter);
bird->paint(&painter);
ground->paint(&painter);
if(!startGame){
painter.drawImage(0,0,startImage);
}
if(gameOver){
painter.drawImage(0,0,gameoverImage);
}
if(!startGame){
painter.setFont(QFont("Khmer OS System",20,QFont::Bold));
painter.drawText(QRect(QPoint(145,390),
QPoint(320,445)),
QString::fromUtf8("历史最高:")+=QString::number(best_score));
}
score_label->setText(QString("score:")+=QString::number(score));
}
void World::run(){
bird->fly();//飞
bird->step();//小鸟下落
c1->step();
c2->step();
ground->step();
if(bird->pass(*c1) || bird->pass(*c2)){
qDebug("pass");
score++;
}
if(bird->hit(*c1,*c2,*ground)){
timer.stop();
gameOver = true;
//gameover ...
//TODO
/**
1)加载gameover图片,实现点击图片
的开始按钮重新开始游戏。
2)将开始画面加入,点击鼠标或者键盘的
空格键才开始游戏
完成上两步后做以下工作:
3)加入评分机制。 通过一根柱子得1分
*/
}
this->repaint();//重新绘制
}
void World::mousePressEvent(QMouseEvent *p){
//点击鼠标让当前速度保持为初始速度
//speed = v0;
//bird->speed = bird->v0;
bird->flappy();
//restart()之前 starGame = false;
if(!startGame){
startGame = true;
timer.start();
}
if(gameOver){
QRect rect(QPoint(135,331), QPoint(281,408));
QPoint point = p->pos();
if(rect.contains(point)){
restart();
}
}
}
//实现restart
void World::restart(){
gameOver = false;
startGame = false;
if(score > best_score){
best_score = score;
save(best_score);
}
score = 0;
delete bird;
delete c1; delete c2;
bird = new Bird;
c1 = new Column(0);
c2 = new Column(1);
qDebug()<< "restart...";
this->repaint();//定时器停止需要手动重绘
}
2014-09-15
文件的读写操作
1.fgetc/fputc(fgetc结束标记EOF)
//从fp指向的文件中一次读取一个字符
fgetc(fp)
//读取n个字符到屏幕上
fputc(n,stdout);
2.fgets/fputs(fgets结束标记NULL)
//从fp指向的文件中读文件的读写
文件起始处取信息到数组buf中,最大读取500字节,按行读取
fgets(buf, 500, fp);
2014-09-15
静态库和动态库制作和使用方法
静态库的制作:(inc/lib/src/main.c)
gcc -c src/*.c(编译src目录下的.c文件生成.o文件)
ar rs libmath.a *.o(生成静态库:libmath.a(命名规则:必须以lib开头,以.a结尾,中间是库名:math))
静态库的使用:
gcc main.c -L ./lib -l math -I ./inc -o main(-L:指定库名所在路径,-l:指定库名,-I:指定头文件路径)
2014-09-15
针对vim编辑器的vimrc文件配置
syntax on "语法高亮"
set nocompatible "使用vim的键盘模式"
set nu "设置行号"
"set nobackup "不需要备份"
set confirm "未保存或者只读时,弹出确认"
set mouse=a "鼠标可用"
set selection=exclusive
set selectmode=mouse,key
set showcmd "显示未完成命令"
set tabstop=4 "tab为4个空格"
2014-09-15
C语言基础知识
float类型最少能精确到小数点后6位,通常是32位的。
double类型最少能精确到小数点后10位,通常是64位的。
通常double是最好的选择,因为其精度比较高,当然运行速度要比float要多不少。
double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多
scanf函数,与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
2014-09-15
Linux基本命令
ubuntu系统终端的基本操作命令
which ls 查看要执行的命令所在位置
wc l file(其后可跟多个文件) 查看file文件的行数
whoami 查看用户
su wukong 切换用户
chmod 0664 file
chmod go+w go+x file 修改权限(u:user g:group o:other)
sudo chgrp police a 改变指定文件a所属的组为police
sudo chown panda b 改变文件或目录b的属主为panda和属组
sudo chown +用户名+组名+文件
vi etc group 查看组
vi etc passwd 查看用户
addgroup 添加组
adduser 添加用户
delgroup 删除组
deluser 删除用户
exit 退出用户">ubuntu系统终端的基本操作命令
which ls 查看要执行的命令所在位置
wc l file(其后可跟多个文件) 查看file文件的行数
whoami 查看用户
su wukong 切换 [更多]
2014-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人