STC學習板程式設計 跑酷遊戲

2021-09-26 21:15:11 字數 3035 閱讀 4609

/**********************

jumpman v1.

型號:stc15f2k60s2 主頻:11.0592mhz

************************/

#include

#define uchar unsigned char

#define uint unsigned int

#include "stdlib.h"

int life=8;

int score=0;

int count=0;

int count_time=200; 

int level=1;

/*---------引腳別名定義---------*/

sbit sbtkey1 = p3 ^ 2;

sbit sbtkey2 = p3 ^ 3;

sbit sbtkey3 = p1 ^ 7;

sbit sbtledsel = p2 ^ 3;

sbit sbtbeep = p3 ^ 4; //蜂鳴器

sbit sbtsel0 = p2 ^ 0; //

sbit sbtsel1 = p2 ^ 1; //

sbit sbtsel2 = p2 ^ 2; //位選的三個引腳控制位

/*---------變數定義---------*/

uchar uctimerh, uctimerl;                       //定義定時器的重灌值

uchar code arrmusic =                         

;uchar code arrmusictotimernum =  

;/*---------延時子函式---------*/

void delayms( unsigned int xms )

/*---------取址子函式---------*/

//取出tem音符在arrmusictotimernum陣列中的位置值

uchar getposition( uchar tem ) 

/*---------初始化子函式---------*/

//功能是配置io口

void initsys()

/*---------定時器0初始化子函式---------*/

void initt0()

/*---------初始化函式---------*/

void init()

/*數碼管和led部分*/

uchar arrseg7select = ;    

//顯示0-8

uchar number = ;      

//顯示0-8

uchar jumpman=;

uchar arrdigitselect = ;         

//數碼管0-7位

uchar led = ;                      

//led顯示全熄滅——全點亮

uchar arrsegselect = ; 

//段選

uchar arrdigselect = ;           

//位選,選擇是0-7中的乙個數碼管

uchar gameover = ;

uchar levelup = ;

/*---------滾動顯示-變數定義---------*/

uchar ucdig1tmp;

uchar ucdig2tmp;

uchar ucdig3tmp;

uchar ucdig4tmp;

uchar ucdig5tmp;

uchar ucdig6tmp;

uchar ucdig7tmp;

uchar ucdig8tmp;            

//show_wi(i=1,2,3,4,……,8)分別是對應左到右的各個數碼管上的顯示的數字

uchar ucseg7state;

uchar uccount;

uchar uiled = 0x01;  //led燈值寄存

uint  uiledcnt = 0;  //led燈累計計數器

uchar i = 0;         //數碼管掃瞄顯示迴圈

/*---------延時函式---------*/

//下為生成1ms的延時函式,通過傳入引數n,函式可以延時n毫秒

void delay_ms( uint n )

while ( --i );

n--;}}

/*技能函式*/

void feedback()

else if(!sbtkey2)

else if(!sbtkey3)}}

/*關卡函式*/

void barrier1()

for(i=0;i<10;i++)

else if(i==1)

else if(i==2)

if(life==0)

goto over;

}if(score==10)    

if(i==30)

}if(count==1)

}}    

for(i=0;i<30;i++)

goto leveluuup;

}void t0_process() interrupt 1                     //計時器控制頻率

if( uccount == 100 )     

//考慮到掃瞄頻率很高這裡再次分頻,uccount加到100才執行

p0 = 0; //讓數碼管顯示更加好,不受上一次p0賦的值的影響

p2 = arrdigselect[ucseg7state]; //位選,選第ucseg7state個數碼管

switch( ucseg7state )           //每次中斷顯示乙個數碼管來顯示

/*---------定時器t0中斷服務函式 ---------*/

th0 = uctimerh;

tl0 = uctimerl;

sbtbeep = ~sbtbeep;

}

海賊跑酷 跑酷類遊戲 原始碼解析

原始碼目錄,如下 引擎 cocos2.2.6 語言 c 這幾個檔案,根據名字 就可以看出來 各個scene就是場景,都是ui堆疊,不細說 主要邏輯,位於 gamescene裡面 地圖使用 titlemap,裡面編輯了 地板,金幣等位置屬性 裡 解析 tmx地 件 然後得出 碰撞區域rect,以及en...

U3D學習 跑酷遊戲

1.製作場景cube預製件 新建cube 製作材質球 改變其顏色等 將改變好的cube放入assets中成為預製件用於製作遠景 以相同方法製作近景 建立empty gameobject命名managers 在managers下建立empty gameobject命名skylinenearmanage...

UNITY 跑酷學習2

今天又看了知乎,又看到了學習方法,裡面提到意志力的重要性,以及有效學習的概念,我看到了裡面說,寫部落格能增強我的意志力,所以我今天來將昨天的工作新增到部落格,算一次積累,訓練意志力的機會,以及熟悉unity 3d的機會。昨天主要實現了road的自動產生,以及人物運動的碰撞機制,以及簡單的ui的處理。...