@ -1,4 +0,0 @@
|
||||
{
|
||||
"12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true,
|
||||
"40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
node_modules/
|
||||
.expo/
|
||||
dist/
|
||||
npm-debug.*
|
||||
*.jks
|
||||
*.p8
|
||||
*.p12
|
||||
*.key
|
||||
*.mobileprovision
|
||||
*.orig.*
|
||||
web-build/
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
@ -1,6 +0,0 @@
|
||||
import React from 'react'
|
||||
import MainStackNavigator from './src/navigation/AppNavigator'
|
||||
|
||||
export default function App() {
|
||||
return <MainStackNavigator/>
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
{
|
||||
"expo": {
|
||||
"name": "bob_party",
|
||||
"slug": "bob_party",
|
||||
"version": "1.0.0",
|
||||
"orientation": "portrait",
|
||||
"icon": "./assets/icon.png",
|
||||
"userInterfaceStyle": "light",
|
||||
"splash": {
|
||||
"image": "./assets/splash.png",
|
||||
"resizeMode": "contain",
|
||||
"backgroundColor": "#ffffff"
|
||||
},
|
||||
"updates": {
|
||||
"fallbackToCacheTimeout": 0
|
||||
},
|
||||
"assetBundlePatterns": [
|
||||
"**/*"
|
||||
],
|
||||
"ios": {
|
||||
"supportsTablet": true
|
||||
},
|
||||
"android": {
|
||||
"adaptiveIcon": {
|
||||
"foregroundImage": "./assets/adaptive-icon.png",
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
"web": {
|
||||
"favicon": "./assets/favicon.png"
|
||||
}
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 743 B |
Before Width: | Height: | Size: 782 B |
Before Width: | Height: | Size: 758 B |
Before Width: | Height: | Size: 787 B |
Before Width: | Height: | Size: 781 B |
Before Width: | Height: | Size: 769 B |
Before Width: | Height: | Size: 835 B |
Before Width: | Height: | Size: 739 B |
Before Width: | Height: | Size: 533 B |
Before Width: | Height: | Size: 865 B |
Before Width: | Height: | Size: 693 B |
Before Width: | Height: | Size: 409 B |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 257 KiB |
Before Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 46 KiB |
@ -1,6 +0,0 @@
|
||||
module.exports = function(api) {
|
||||
api.cache(true);
|
||||
return {
|
||||
presets: ['babel-preset-expo'],
|
||||
};
|
||||
};
|
@ -1,26 +0,0 @@
|
||||
{
|
||||
"name": "bob_party",
|
||||
"version": "1.0.0",
|
||||
"main": "node_modules/expo/AppEntry.js",
|
||||
"scripts": {
|
||||
"start": "expo start",
|
||||
"android": "expo start --android",
|
||||
"ios": "expo start --ios",
|
||||
"web": "expo start --web"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-navigation/bottom-tabs": "^6.4.0",
|
||||
"@react-navigation/stack": "^6.3.2",
|
||||
"expo": "^46.0.15",
|
||||
"expo-status-bar": "~1.4.0",
|
||||
"react": "18.0.0",
|
||||
"react-is": "^18.2.0",
|
||||
"react-native": "0.69.6",
|
||||
"react-navigation": "^4.4.4",
|
||||
"yarn": "^1.22.19"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.12.9"
|
||||
},
|
||||
"private": true
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
import * as React from 'react'
|
||||
import { NavigationContainer } from '@react-navigation/native'
|
||||
import { createStackNavigator } from '@react-navigation/stack'
|
||||
|
||||
|
||||
import Home from '../screens/Home'
|
||||
import Store from '../screens/Store'
|
||||
|
||||
|
||||
// import Detail from '../screens/Detail'
|
||||
// import Settings from '../screens/Settings'
|
||||
// import Profile from '../screens/Profile'
|
||||
|
||||
const Stack = createStackNavigator()
|
||||
|
||||
|
||||
function MainStackNavigator() {
|
||||
return (
|
||||
<NavigationContainer>
|
||||
<Stack.Navigator
|
||||
|
||||
initialRouteName='Home'
|
||||
|
||||
screenOptions={{headerShown: false,}}
|
||||
>
|
||||
|
||||
<Stack.Screen
|
||||
name='Home'
|
||||
component={Home}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name='Store'
|
||||
component={Store}
|
||||
/>
|
||||
{/* <Stack.Screen
|
||||
name='Detail'
|
||||
component={Detail}
|
||||
options={({ route }) => ({
|
||||
title: route.params.item.name
|
||||
})}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name='Settings'
|
||||
component={Settings}
|
||||
options={{ title: 'Settings' }}
|
||||
/> */}
|
||||
</Stack.Navigator>
|
||||
</NavigationContainer>
|
||||
)
|
||||
}
|
||||
|
||||
export default MainStackNavigator
|
@ -1,160 +0,0 @@
|
||||
import { StatusBar } from 'expo-status-bar'
|
||||
import { StyleSheet, View, Text, Alert, Pressable, Image} from 'react-native'
|
||||
|
||||
const avatar = require('../../assets/Icons/BobClassic.png');
|
||||
const engrenage = require('../../assets/Icons/Engrenage.png');
|
||||
const gamepad = require('../../assets/Icons/Gamepad.png');
|
||||
const message = require('../../assets/Icons/Messages.png');
|
||||
const store = require('../../assets/Icons/Store.png');
|
||||
|
||||
function Home(props) {
|
||||
const { navigation } = props
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<View style={styles.header}>
|
||||
<Pressable onPress={() => Alert.alert('Profil Joueur')}>
|
||||
<Image
|
||||
style={styles.avatar}
|
||||
source={avatar}
|
||||
/>
|
||||
</Pressable>
|
||||
<Text style={styles.titre}>BOB PARTY</Text>
|
||||
<Pressable onPress={() => Alert.alert('Paramètres')}>
|
||||
<Image
|
||||
style={styles.engrenage}
|
||||
source={engrenage}
|
||||
/>
|
||||
</Pressable>
|
||||
</View>
|
||||
<View style={styles.buttons}>
|
||||
<Button
|
||||
title='Jouer Seul'
|
||||
onPress={() => Alert.alert('On Joue seul')}
|
||||
/>
|
||||
<Button
|
||||
title='Défier mes amis'
|
||||
onPress={() => Alert.alert('On Joue avec les potos')}
|
||||
/>
|
||||
</View>
|
||||
<View style={styles.footer}>
|
||||
<Pressable onPress={() => Alert.alert('Messagerie')}>
|
||||
<Image
|
||||
style={styles.iconFooter}
|
||||
source={message}
|
||||
/>
|
||||
</Pressable>
|
||||
<Pressable onPress={() => Alert.alert('Menu des jeux')}>
|
||||
<Image
|
||||
style={styles.iconFooter}
|
||||
source={gamepad}
|
||||
/>
|
||||
</Pressable>
|
||||
<Pressable onPress={() => navigation.navigate('Store')}>
|
||||
<Image
|
||||
style={styles.iconStore}
|
||||
source={store}
|
||||
/>
|
||||
</Pressable>
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function Button(props) {
|
||||
const { onPress, title = 'Save' } = props;
|
||||
return (
|
||||
<Pressable style={styles.button} onPress={onPress}>
|
||||
<Text style={styles.text}>{title}</Text>
|
||||
</Pressable>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
backgroundColor: '#45444E',
|
||||
flexDirection: "column",
|
||||
justifyContent: "flex-start",
|
||||
alignItems: "center",
|
||||
},
|
||||
button: {
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
height: '30%',
|
||||
width: '100%',
|
||||
marginTop: '10%',
|
||||
paddingVertical: 12,
|
||||
paddingHorizontal: 32,
|
||||
borderRadius: 10,
|
||||
elevation: 3,
|
||||
backgroundColor: '#0085FF',
|
||||
},
|
||||
text: {
|
||||
fontSize: 16,
|
||||
lineHeight: 21,
|
||||
fontWeight: 'bold',
|
||||
letterSpacing: 0.25,
|
||||
color: 'white',
|
||||
},
|
||||
header: {
|
||||
flex : 0.15,
|
||||
width: '100%',
|
||||
flexDirection: 'row',
|
||||
backgroundColor: '#2D2C33',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'space-around',
|
||||
},
|
||||
titre: {
|
||||
flex: 0.7,
|
||||
flexDirection: 'column',
|
||||
textAlign: 'center',
|
||||
fontSize: 30,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: 'bold',
|
||||
letterSpacing: 0.25,
|
||||
color: 'white',
|
||||
},
|
||||
engrenage: {
|
||||
borderRadius: '50%',
|
||||
width: 50,
|
||||
height: 50,
|
||||
},
|
||||
avatar: {
|
||||
borderRadius: '50%',
|
||||
width: 50,
|
||||
height: 50,
|
||||
},
|
||||
buttons: {
|
||||
flex: 1,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
width: '70%',
|
||||
},
|
||||
footer: {
|
||||
flex: 0.15,
|
||||
flexDirection: 'row',
|
||||
backgroundColor: '#2D2C33',
|
||||
flexWrap: 'wrap',
|
||||
width: '100%',
|
||||
justifyContent: 'space-evenly',
|
||||
},
|
||||
iconFooter: {
|
||||
marginBot: 25,
|
||||
marginTop: 10,
|
||||
width: 65,
|
||||
height: 50,
|
||||
},
|
||||
iconStore: {
|
||||
marginBot: 25,
|
||||
marginTop: 10,
|
||||
marginLeft: 7,
|
||||
marginRight: 8,
|
||||
width: 50,
|
||||
height: 50,
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
export default Home
|
@ -1,156 +0,0 @@
|
||||
import { StatusBar } from 'expo-status-bar'
|
||||
import { StyleSheet, View, Text, Alert, Pressable, Image} from 'react-native'
|
||||
|
||||
const avatar = require('../../assets/Icons/BobClassic.png');
|
||||
const engrenage = require('../../assets/Icons/Engrenage.png');
|
||||
const gamepad = require('../../assets/Icons/Gamepad.png');
|
||||
const message = require('../../assets/Icons/Messages.png');
|
||||
const store = require('../../assets/Icons/Store.png');
|
||||
|
||||
function Store(props) {
|
||||
const { navigation } = props
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<View style={styles.header}>
|
||||
<Pressable onPress={() => Alert.alert('Profil Joueur')}>
|
||||
<Image
|
||||
style={styles.avatar}
|
||||
source={avatar}
|
||||
/>
|
||||
</Pressable>
|
||||
<Text style={styles.titre}>BOB PARTY</Text>
|
||||
<Pressable onPress={() => Alert.alert('Paramètres')}>
|
||||
<Image
|
||||
style={styles.engrenage}
|
||||
source={engrenage}
|
||||
/>
|
||||
</Pressable>
|
||||
</View>
|
||||
<View style={styles.buttons}>
|
||||
<Button
|
||||
title='LE SHOP'
|
||||
onPress={() => Alert.alert('On Joue seul')}
|
||||
/>
|
||||
</View>
|
||||
<View style={styles.footer}>
|
||||
<Pressable onPress={() => Alert.alert('Messagerie')}>
|
||||
<Image
|
||||
style={styles.iconFooter}
|
||||
source={message}
|
||||
/>
|
||||
</Pressable>
|
||||
<Pressable onPress={() => navigation.navigate('Home')}>
|
||||
<Image
|
||||
style={styles.iconFooter}
|
||||
source={gamepad}
|
||||
/>
|
||||
</Pressable>
|
||||
<Pressable onPress={() => Alert.alert('le magasin')}>
|
||||
<Image
|
||||
style={styles.iconStore}
|
||||
source={store}
|
||||
/>
|
||||
</Pressable>
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function Button(props) {
|
||||
const { onPress, title = 'Save' } = props;
|
||||
return (
|
||||
<Pressable style={styles.button} onPress={onPress}>
|
||||
<Text style={styles.text}>{title}</Text>
|
||||
</Pressable>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
backgroundColor: '#45444E',
|
||||
flexDirection: "column",
|
||||
justifyContent: "flex-start",
|
||||
alignItems: "center",
|
||||
},
|
||||
button: {
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
height: '30%',
|
||||
width: '100%',
|
||||
marginTop: '10%',
|
||||
paddingVertical: 12,
|
||||
paddingHorizontal: 32,
|
||||
borderRadius: 10,
|
||||
elevation: 3,
|
||||
backgroundColor: '#0085FF',
|
||||
},
|
||||
text: {
|
||||
fontSize: 16,
|
||||
lineHeight: 21,
|
||||
fontWeight: 'bold',
|
||||
letterSpacing: 0.25,
|
||||
color: 'white',
|
||||
},
|
||||
header: {
|
||||
flex : 0.15,
|
||||
width: '100%',
|
||||
flexDirection: 'row',
|
||||
backgroundColor: '#2D2C33',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'space-around',
|
||||
},
|
||||
titre: {
|
||||
flex: 0.7,
|
||||
flexDirection: 'column',
|
||||
textAlign: 'center',
|
||||
fontSize: 30,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: 'bold',
|
||||
letterSpacing: 0.25,
|
||||
color: 'white',
|
||||
},
|
||||
engrenage: {
|
||||
borderRadius: '50%',
|
||||
width: 50,
|
||||
height: 50,
|
||||
},
|
||||
avatar: {
|
||||
borderRadius: '50%',
|
||||
width: 50,
|
||||
height: 50,
|
||||
},
|
||||
buttons: {
|
||||
flex: 1,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
width: '70%',
|
||||
},
|
||||
footer: {
|
||||
flex: 0.15,
|
||||
flexDirection: 'row',
|
||||
backgroundColor: '#2D2C33',
|
||||
flexWrap: 'wrap',
|
||||
width: '100%',
|
||||
justifyContent: 'space-evenly',
|
||||
},
|
||||
iconFooter: {
|
||||
marginBot: 25,
|
||||
marginTop: 10,
|
||||
width: 65,
|
||||
height: 50,
|
||||
},
|
||||
iconStore: {
|
||||
marginBot: 25,
|
||||
marginTop: 10,
|
||||
marginLeft: 7,
|
||||
marginRight: 8,
|
||||
width: 50,
|
||||
height: 50,
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
export default Store
|
@ -1,93 +0,0 @@
|
||||
import { StatusBar } from 'expo-status-bar'
|
||||
import { useState } from 'react';
|
||||
import { StyleSheet, View, Text, Alert, Pressable, Image, ImageBackground} from 'react-native'
|
||||
import { FlatList } from 'react-native-gesture-handler';
|
||||
|
||||
const BobClassic = require('../../assets/BobsSkins/BobClassic.png');
|
||||
const BobBW = require('../../assets/BobsSkins/BobBW.png');
|
||||
const BobBlue = require('../../assets/BobsSkins/BobBlue.png');
|
||||
const BobGreen = require('../../assets/BobsSkins/BobGreen.png');
|
||||
|
||||
|
||||
|
||||
function Test(props) {
|
||||
const { navigation } = props
|
||||
|
||||
const [skin, setSkin] = useState([
|
||||
{ name : 'BobClassic', image: BobClassic, price: 0, id: 's0001'},
|
||||
{ name : 'BobBW', image: BobBW, price: 150, id: 's0002'},
|
||||
{ name : 'BobBlue', image: BobBlue, price: 200, id: 's0003'},
|
||||
{ name : 'BobGreen', image: BobGreen, price: 200, id: 's0004'},
|
||||
]);
|
||||
|
||||
ItemSeprator = () => <View style={{
|
||||
height: 2,
|
||||
width: "100%",
|
||||
backgroundColor: "red",
|
||||
}}/>
|
||||
|
||||
return (
|
||||
<View style={styles.imageWrapper}>
|
||||
<FlatList
|
||||
numColumns={2}
|
||||
keyExtractor={( item ) => item.id }
|
||||
data={skin}
|
||||
ItemSeparatorComponent={ItemSeprator}
|
||||
renderItem={({ item }) => (
|
||||
<ImageBackground
|
||||
style={styles.theImage}
|
||||
source={item.image}
|
||||
>
|
||||
<Text>{item.price}</Text>
|
||||
<Text>{item.name}</Text>
|
||||
</ImageBackground>
|
||||
)}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
imageWrapper: {
|
||||
height: 200,
|
||||
width: 200,
|
||||
overflow : "hidden"
|
||||
},
|
||||
theImage: {
|
||||
flex: 1,
|
||||
alignItems: "flex-end",
|
||||
margin: 10,
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
resizeMode: "cover",
|
||||
},
|
||||
container: {
|
||||
flex: 1,
|
||||
backgroundColor: '#45444E',
|
||||
flex: 1,
|
||||
paddingTop: "50%",
|
||||
paddingBottom: "50%",
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
height: '100%',
|
||||
},
|
||||
Text: {
|
||||
margin: 15,
|
||||
paddingVertical: 12,
|
||||
width: '40%',
|
||||
borderRadius: 10,
|
||||
backgroundColor: '#0085FF',
|
||||
},
|
||||
item: {
|
||||
marginTop: 24,
|
||||
backgroundColor: 'pink',
|
||||
fontSize: 24,
|
||||
},
|
||||
debug:{
|
||||
flex: 0.2,
|
||||
backgroundColor: "red",
|
||||
padding: 50,
|
||||
},
|
||||
});
|
||||
|
||||
export default Test
|