少年啊,來一發昆特嗎(二) 昆特牌的基礎定義

2021-07-05 04:55:32 字數 2074 閱讀 3019

既然是昆特牌遊戲那麼毫無疑問,昆特牌無疑就是重點需要關注的地方,本節主要講解怎樣實現昆特牌

對於昆特牌來說,總共有四種型別的卡,單位卡(包括普通單位卡和英雄單位卡),天氣卡,特殊卡,領導卡,並且單位卡還具有力量值,能力,所屬勢力,卡牌的名稱等屬性,所以單純的sprite是無法實現這些的,需要自定義類來實現,既然是自定義類,那麼就需要有自己的構造方法和create方法,cocos2dx當然也提供了建立create方法的靜態巨集,但create_func巨集為無參巨集,只能處理不放置引數的巨集,所以既然是自定義昆特牌的類,肯定需要傳入引數來初始化卡牌,所以這裡並不能使用巨集,而需要自己寫乙個create函式,這個create函式可以參照巨集的寫法來寫,create_func巨集的寫法如下:

#define create_func(__type__) \

//type即為類名

static __type__* create() \

\ else \

\}

所以自己的create函式可以這麼寫,就是將上面的type全部替換為自己所建立的類名,並填上引數

gwentcard* gwentcard::create(dictionary *dictionary)

cc_safe_delete(card);

return card;

}

接一下是類的構造,這個類的目的是為了建立一張昆特牌,那麼昆特牌的屬性一共有基礎力量,能力,卡牌名稱,卡牌的種類,儲存改變後的力量值,攻擊的範圍,大致需要用到如上所述的幾種屬性,對於這個類來說就必須具備上述引數,並提供外部訪問函式,而cocos恰好提供了乙個非常方便的巨集cc_synthesize,此巨集可以同時定義乙個變數,並提供對該變數進行set和get的函式,定義方法如下:

cc_synthesize(bool,m_isselect,select);//是否已選    

//bool為變數的型別,m_isselect為變數名稱,select為函式名稱,使用時的函式為setselect和getselect

基礎部分完畢後,就是需要用到的函式了,完整的類定義如下:

#pragma once

#include "cocos2d.h"

class gamescene;

using_ns_cc;

class gwentcard : public layer

;

首先是init函式,該函式在create中呼叫,目的是初始化卡片的影象要素,以layer為基礎,建立乙個sprite並將其新增到layer上,具體過程如下:

auto layer=layer::create();//建立乙個layer

auto sprite=sprite::create(this->m_imgpath);建立乙個sprite,引數為影象路徑

string

*pow=

string

::createwithformat("%d",newpow);

sprite->setanchorpoint(point::zero);//設定描點

layer->addchild(sprite);

this->addchild(layer);

this->setcontentsize(sprite->getcontentsize());

return

true;

其次就是觸控函式,因為在昆特牌中需要用到多種觸控形式,如果單純只用乙個觸控函式來處理會變得很麻煩,所以在這裡用了多種觸控函式來處理,並提供乙個引數btype來進行控制,具體使用哪種觸控函式,下面是cocos2dx的觸控機制定義,因為要通過引數來控制,而在呼叫create的過程中init函式和建構函式都已經呼叫過了,所以這裡放在onenter中進行定義。

void gwentcard::onenter()else

if(spritetype==

1)else

if(spritetype==

2)else

if(spritetype==

3)}

昆特牌1.0版源**

B S備忘錄22 少年,不來一發彈幕嗎

最近做專案做的火熱,自己的學習反而有些落後了,但是沒關係,畢竟現在學習的東西都是以後要一直使用的,在專案中多寫寫調調還是有用的。首先在vs預設的mvc 中加了點東西,把彈出彈幕要用的標籤都寫完。x x之後寫了乙個樣式表,算是給這個簡單的彈幕螢幕加了些預設的樣式。barrage screen barr...

Java面試來一發(一)TopN問題

1 topn問題描述 問題一 找出海量資料 現次數最多的n個資料。問題二 找出兩個超大檔案中的相同字串。問題三 找出超多整數中沒有重複出現的整數,或多少以內沒出現的整數。2 解決方案 通用方案 分而治之的思想,先拆分成很多小檔案,每個檔案分別統計和排序,然後歸併排序。問題一 除分而治之方案外,如果無...

南郵CTF 騷年來一發嗎

來一發!正過程 先翻轉字串 a for b 0 b最後一步,base64加密end,在翻轉字串,在rot13 end 解密 第一步 rot13解密,翻轉字串,base64解密 第二步 把字串中的每個都取出,向前移動一位 第三步 翻轉字串 import base64 codingstr iejqak3...