cocos2d & Chipmunk Tworzenie gier 2D pod ios Konrad Kołakowski, Playsoft

Podobne dokumenty
GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Temat 4. Storyboard i element interfejsu użytkownika Gra w kulki- część 1

programowanie w oparciu o platformę netbeans w praktyce

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

Programowanie dla iphone projektowanie interfejsu użytkownika

Programowanie dla iphone Storyboarding i własne elementy interfejsu użytkownika

Grafika Komputerowa Materiały Laboratoryjne

JAVA W SUPER EXPRESOWEJ PIGUŁCE

SpriteKit. Biblioteka do tworzenia gier wbudowana w SDK. Wspiera grafikę 2D w oparciu o sprite y

Unity 3D - podpowiedzi w grze. System cząstek

dnia jeszcze nie wiem M a riusz L isieck i student UAM, programista iphone niefanatyczny użytkownik produktów Apple :)

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Unity 3D - pierwsze skrypty

Informatyka I : Tworzenie projektu

Zacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie:

Języki i metody programowania Java Lab2 podejście obiektowe

Symulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007

Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty.

Ćwiczenie 1 Automatyczna animacja ruchu

Ćwiczenie 1 Galeria zdjęć

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień Uniwersytet Warszawski

Laboratorium programowania urządzeń mobilnych

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Kl 7-8 Szkoła Podstawowa

Innowacja pedagogiczna Pasja programowania ZESPÓŁ SZKÓŁ W CHOROSZCZY

SKĄD WYWODZI SIĘ NAZWA PROGRAMU?

Programowanie obiektowe

Unity 2D - prosta gra

Spora część kodu programu jest dla nas nieprzydatna. Dokonaj zmian tak, aby kod miał postać:

ios7 bezpieczniejszy dla dziecka

INTELIGENTNE STEROWANIE Z FIBARO OFERTA WSPÓŁPRACY

Zarządzanie projektami informatycznymi

Sterowanie, uczenie i symulacja robotów przemysłowych Kawasaki

Analiza i projektowanie aplikacji Java

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

1. Tworzenie nowego projektu.

Słowa kluczowe jak góry lodowe

Wprowadzenie do Doctrine ORM

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Animacje cz. 2. Rysujemy koło zębate

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Programowanie i struktury danych

Podstawy MATLABA, cd.

Fragmenty są wspierane od Androida 1.6

Dźwięk w IOS. Wykład 8. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.

Projektowanie systemów zrobotyzowanych

Zajęcia z grafiki komputerowej Pov Ray część 2

Temat 13. Czujniki Dlaczego Twój Smartfon jest taki smart?

Techniki wizualizacji. Ćwiczenie 10. System POV-ray tworzenie animacji

Frameworki IOS. Wykład 14. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.

Zad. 5: Sterowanie robotem mobilnym

media Blitz wydajne sytemy szablonów

Wprowadzenie do programowania aplikacji mobilnych

GSMONLINE.PL dla zainteresowanych nowymi technologiami

BT180 CLASS I USB BLUETOOTH ADAPTER Informacje na temat produktu

Rysowanie skosów, okien dachowych, otworów w skośnych sufitach

Sieciowe Technologie Mobilne. Laboratorium 2

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Przechowywanie danych w IOS

KURSY PROGRAMOWANIA DLA DZIECI

C-geo definicja/edycja obiektów, zapis danych w formacie shape

1 Zrozumieć Flasha... 1 Co można zrobić za pomocą Flasha?... 2 Tworzenie obrazków do strony 3 Animowanie witryny 4 Tworzenie filmów

Przewodnik użytkownika aplikacji mobilnej

W celu uruchomienia kontrolera należy w katalogu głównym kontrolera z wiersza poleceń wydać następujące polecenie: $ java -jar target/floodlight.

1. Tworzenie integracji

Sposoby zdalnego sterowania pulpitem

CG SYSTEM. CENA: zł netto

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie obiektowe

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Gry Komputerowe - laboratorium 2. Kamera FPP / TPP. mgr inż. Michał Chwesiuk 1/11. Szczecin, r

GUI - projektowanie interfejsów

Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Konfiguracja zapory Firewall w systemie Debian.

xmlns:prism= c. <ContentControl prism:regionmanager.regionname="mainregion" />

Laboratorium 9 (Więcej Aktywności, w Androidzie)

Aplikacje w środowisku Java

Laboratorium Badanie topologii i budowa małej sieci

Przewodnik dla Użytkownika

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Gostai URBI Power Swith

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Skryptowanie w ANSYS SpaceClaim Marek Zaremba

FLEX ( ) Przygotowanie środowiska developerskiego Hello world w MXML Hello world w ActionScript

LABORATORIUM SIECI. Zakład Cyberbezpieczeństwa IT PW. Instrukcja do ćwiczenia: Switching, VLAN & Trunking Przedmiot: Sieci Lokalne (LAN)

Zad. 6: Sterowanie robotem mobilnym

Podstawy języka skryptowego Lua

PRZEWODNIK UŻYTKOWNIKA

Ćwiczenie 3: Rysowanie obiektów w programie AutoCAD 2010

Konfiguracja połączenia szerokopasmowego na Windows98/98SE Instalacja PPPoE w systemie Windows 98 i 98SE

Brain Game. Wstęp. Scratch

PRZEWODNIK UŻYTKOWNIKA

INSTRUKCJA UŻYTKOWNIKA

Transkrypt:

cocos2d & Chipmunk Tworzenie gier 2D pod ios Konrad Kołakowski, Playsoft

cocos2d Co to?

cocos2d - co na tym powstało? Kingdom Rush

cocos2d - co na tym powstało? Robot Unicorn Attack

cocos2d - co na tym powstało? League of Evil

Chipmunk Co to?

Chipmunk - co na tym powstało? Waking Mars

Chipmunk - co na tym powstało? Feed me Oil

Chipmunk - co na tym powstało? I Dig It

Stworzenie projektu w Xcode 1. Ściągamy cocos2d-iphone: www.cocos2diphone.org/download 2. Aby móc wygodnie tworzyć nowe projekty, po rozpakowaniu paczki instalujemy szablony projektów dla Xcode ( odpalamy tą komendę w Terminalu, w katalogu frameworka ):./install-templates.sh -f -u

Stworzenie projektu w Xcode To wszystko, w tym momencie po stworzeniu nowego projektu, powinny być takie opcje:

Stworzenie projektu w Xcode Jak możecie zauważyć, cocos2d dostarcza już kod Chipmunka w swoich szablonach projektów. Na potrzeby laboratorium, projekt będzie już gotowy, wystarczy otworzyć i można działać.

Podstawy cocos2d - warstwy, węzły cocos2d logicznie jest podzielony na sceny. Scena stanowi główny węzeł do którego podłączamy kolejne ( warstwy, sprite'y, efekty cząsteczkowe itd. ) Każdy element dodawany do gry, oprócz scen, musi być dodany do jakiegoś elementu nadrzędnego.

Podstawy cocos2d - warstwy, węzły

Podstawy cocos2d - warstwy, węzły

Podstawy cocos2d - układ współrzędnych Układ współrzędnych, punkty zaczepienia.

Podstawy cocos2d - dołączanie i rysowanie elementów Jak narysować takiego kosmitę? // GameScene.h #import "cocos2d.h" @interface GameScene : CCScene @end

Podstawy cocos2d - dołączanie i rysowanie elementów // GameScene.m #import "GameScene.h" @implementation GameScene -(id) init { self = [super init]; if(self) { // 1 CGSize s = [CCDirector shareddirector].winsize; // 2 CCSprite* invader = [ CCSprite spritewithfile: @"invader.png" ]; invader.position = ccp(s.width/ 2, s.height/ 2); // 3 [self addchild: invader]; } return self; } @end

Podstawy cocos2d - obsługa dotyku Aby włączyć przechwytywanie zdarzeń dotykowych na naszej warstwie: [self setistouchenabled: YES]; Następnie należy zaimplementować te metody protokołu CCStandardTouchDelegate: - (void)cctouchesended:(nsset*)touches withevent:(uievent*)event; (void)cctouchesbegan:(nsset*)touches withevent:(uievent*)event; (void)cctouchesmoved:(nsset*)touches withevent:(uievent*)event; (void)cctouchesended:(nsset*)touches withevent:(uievent*)event; (void)cctouchescancelled:(nsset*)touches withevent:(uievent*)event;

Podstawy cocos2d - obsługa dotyku - (void)cctouchesended:(nsset*)touches withevent:(uievent*) event { for( UITouch *touch in touches ) { CGPoint pos = [touch locationinview: [touch view]]; pos = [[CCDirector shareddirector] converttogl: location]; // Do something with position // (...) } }

Podstawy cocos2d - akcje Akcje są wygodnym elementem frameworku cocos2d. Pozwalają w prosty sposób tworzyć nieskomplikowane animacje, czy proste powtarzalną logikę. Akcje można łączyć, oraz dodawać im easing.

Podstawy cocos2d - akcje

Podstawy cocos2d - akcje

Podstawy cocos2d - akcje Podany niżej kod sprawi że nasz invader się obróci o 360º oraz przesunie w prawo o 50 pikseli. Wszystko to w 1 sekundę. -(void) roll { CCMoveBy* move = [ CCMoveTo actionwithduration: 1.0f position: ccp( 50.0f, 0.0f)]; CCRotateBy* rotate = [ CCRotateBy actionwithduration: 1.0f angle: 360.0f]; [invader_ runaction: move]; [invader_ runaction: rotate]; }

Podstawy Chipmunk - inicjalizacja oraz stworzenie przestrzeni symulacji - alokowanie/dealokowanie wszelkich obiektów powinno się odbywać poprzez funkcje typu cpspacenew, cpspacefree etc. - do konfiguracji i odpalenia silnika wystarczy: cpinitchipmunk(); cpspace* space = cpspacenew(); cpspacesetgravity(space, ccp(0.0f, -500.0f));

Podstawy Chipmunk - obiekty fizyczne Koncepcja shape (kształt) oraz body (ciało): W skrócie: jedno ciało może mieć podłączonych do siebie wiele kształtów

Podstawy Chipmunk - obiekty fizyczne Tworzenie "podłogi" // 1 CGSize s = [CCDirector shareddirector].winsize; CGPoint lowerleft = ccp(0, 0); CGPoint lowerright = ccp(s.width, 0); float height = 20.0f; // 2 cpbody* groundbody = cpbodynewstatic(); // 3 cpshape* groundshape = cpsegmentshapenew(groundbody, lowerleft, lowerright, height); cpshapesetelasticity(groundshape, 0.2f); cpshapesetfriction(groundshape, 1.0f); // 4 cpspaceaddshape(space, groundshape);

Podstawy Chipmunk - obiekty Dodawanie obiektu w kształcie kwadratu: static const float boxw = 30.0f; static const float boxh = 50.0f; static const float mass = 2.5f; cpbody* body = cpbodynew(mass, cpmomentforbox(mass, boxw, boxh)); cpbodysetposition(body, ccp(s.width/2, s.height/2)); cpspaceaddbody(space, body); cpshape* shape = cpboxshapenew(body, boxw, boxh); cpshapesetelasticity(shape, 0.8f); cpshapesetfriction(shape, 1.0f); cpspaceaddshape(space, shape);

Podstawy Chipmunk - odpalenie symulacji // W metodzie 'init' [self scheduleupdate]; // W metodzie update wywolywanej co klatke -(void) update:(cctime)dt { cpspacestep(space, dt); }

Podsumowanie Poznaliśmy tylko podstawy tych dwóch frameworków. Na laboratoriach dowiemy się więcej. Dokumentacja oficjalna: chipmunk-physics. net/release/chipmunklatest-docs www.cocos2d-iphone.org/api-ref/latest-stable

Pytania?

Konrad Kołakowski konrad.kolakowski@playsoft.fr