12864+Arduino自制小游戏半成品
兴起买了一块屏幕 一直沉睡者不知道做什么用,周四突然想搞个游戏试试?游戏过程就是简单的就是跳过障碍。希望大手给予指导。
样子就是视频里那样了,现在的问题是不知道怎么判断和障碍撞上了,是判断人物和障碍物的坐标吗?
还有就是我按下按钮如果不松开,人物就不会掉下来,不掉下来就不能判断游戏失败啊。。。。求解。还有程序不知道算是个
显示程序还是算是个游戏程序,总觉得哪里不对。。。{:soso_e144:}
不会在程序里添加中文,装插件太麻烦了,对程序做几点解释吧:
drawtre就是屏幕中过往的树也就是障碍物,
drawpeople就是游戏主人公了,请自动脑补人物形象 这里已一条竖线代替。
drawpeoplejump,jump2,jump3是想做一个人物跳起并落下的动画,结果很不是理想。。。
u8g.drawLine(x,50,x,63);
u8g.drawCircle(x,50,8);此处的X就是大树移动的坐标了。。。
求赐教!{:soso_e150:} http://v.youku.com/v_show/id_XODg4NzA4OTI0.html
#include "U8glib.h"
U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8);
int x;
void setup()
{
pinMode (14,INPUT);
}
//////////////////////////////////////
void drawtree()
{
u8g.drawLine(x,50,x,63);
u8g.drawCircle(x,50,8);
}
void drawpeople()
{
u8g.drawLine(20,50,20,63);
}
////////////////////////////////////
void drawpeoplejump()
{
u8g.drawLine(20,29,20,42);
}
////////////////////////////////
void drawpeoplejump1()
{
u8g.drawLine(20,35,20,46);
}
//////////////////////////////
void drawpeoplejump2()
{
u8g.drawLine(20,40,20,51);
}
//////////////////////////////
void loop(void)
{
for (x =127;x > 0;x--)
{
u8g.firstPage();
do
{
if ( digitalRead (14) == LOW )
{
drawpeoplejump();
//drawpeoplejump1();
//drawpeoplejump2();
}
else {
drawpeople();
}
drawtree();
}
while( u8g.nextPage() );
delay(30);
}
}
屏还算不错,就是有点耗电,如果是E-ink,E-paper之类的就更炫了 wing 发表于 2015-2-8 11:33 static/image/common/back.gif
屏还算不错,就是有点耗电,如果是E-ink,E-paper之类的就更炫了
{:3_55:}电纸书啊 没接触过 本帖最后由 leicheng 于 2015-2-9 08:51 编辑
赞一个,有创意。 确实需要碰撞检测,加个判断函数,具体的检测方法与你构建的物理模型有关。你这里仅仅只是个二维场景,对象也简单,因此可以用纵坐标之差进行判断,横坐标在设定的范围内才算得分。按住按钮不放,人物不下来,可以采用时间间隔检测的办法来避免。如果两次按按钮的时间差小于某一设定值,对第二次按的按钮无视,即直接drawpeople。判断时间差利用millis()或micros()。另外建议适当延长小人每一跳的空中滞留时间。 leicheng 发表于 2015-2-8 22:49 static/image/common/back.gif
赞一个,有创意。 确实需要碰撞检测,加个判断函数,具体的检测方法与你构建的物理模型有关。你这里仅仅只是 ...
{:3_59:}感谢感谢很有启发!!!
页:
[1]